web/server: interaction with messages (plural, list or queue, ...) (more to come later)

This commit is contained in:
Helmut Merz 2024-07-23 12:00:43 +02:00
parent 01bb322a6a
commit 81ce777444
2 changed files with 9 additions and 7 deletions

View file

@ -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")))

View file

@ -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 "<interaction ~s>" (message ia)))
(format s "<interaction ~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