diff --git a/web/response.lisp b/web/response.lisp index bc3d7ea..cbd1f44 100644 --- a/web/response.lisp +++ b/web/response.lisp @@ -51,14 +51,15 @@ (defun html-response-class (html-responder) (or html-responder *html-response-class* 'html-response)) -(defun render (resp msg) +(defun render (resp msgs) ; process special message heads, e.g. (:system :error ...) ; => set status code, provide additional data elements ; set additional headers (let ((headers (list :content-type (ctype resp))) (rcode 200) - (content (render-content resp msg))) - (list rcode headers (list content)))) + (content (mapcar #'(lambda (m) (render-content resp m)) msgs))) + ;(content (render-content resp msg))) + (list rcode headers content))) (defun render-not-found(resp) (list 404 '(:content-type "text/plain") '("Not found"))) diff --git a/web/server.lisp b/web/server.lisp index ffef7a1..a5aa54a 100644 --- a/web/server.lisp +++ b/web/server.lisp @@ -89,20 +89,21 @@ (log:debug "msg ~s" msg) ; (check-auth ctx msg env) => (response:render-unauthorized resp) (if (core:handle-message ctx msg) - (response:render resp (message iact)) + (response:render resp (messages iact)) (response:render-not-found resp)))) ;;;; server interaction - receive response message from action processing chain (defclass interaction () - ((message :accessor message :initform nil))) + ((messages :accessor messages :initform nil))) (defmethod print-object ((ia interaction) s) - (format s "" (message ia))) + (format s "" (messages ia))) (defmethod core:send ((ia interaction) msg) (log:debug "receiving ~s" msg) - (setf (message ia) msg)) + (push msg (messages ia))) + ;(setf (message ia) msg)) ;;;; helper functions