write response directly in action handler => get rid of response:messages slot

This commit is contained in:
Helmut Merz 2025-05-19 17:07:16 +02:00
parent 84ce2c9e3a
commit 2d59317980

View file

@ -17,9 +17,9 @@
;;;; predefined action handlers / default actions
(defun render-msg (resp msg)
(if msg
(push msg (messages resp)))
(prepare resp)
(if msg
(funcall (writer resp) (render-content resp msg)))
(finish resp))
(defun set-cookie (resp msg)
@ -43,14 +43,13 @@
((context :reader context :initarg :context)
(core:actions :initform *default-actions*)
(env :reader env :initarg :env)
(messages :accessor messages :initform nil)
(headers :accessor headers :initform nil)
(ctype :reader ctype :allocation :class)
(responder :accessor responder)
(writer :accessor writer)))
(defmethod print-object ((resp response) s)
(shape:print-fields resp s 'messages))
(shape:print-fields resp s))
(defgeneric render-content (resp msg))
@ -95,8 +94,6 @@
(setf (writer resp) (funcall (responder resp) (list rcode headers)))))
(defun finish (resp)
(dolist (msg (messages resp))
(funcall (writer resp) (render-content resp msg)))
(funcall (writer resp) nil :close t)
(actor:stop resp))