diff options
| author | ckonstanski <kostcarl@isu.edu> | 2026-09-06 22:04:28 -0600 |
|---|---|---|
| committer | ckonstanski <kostcarl@isu.edu> | 2026-09-06 22:04:28 -0600 |
| commit | e774d11af63764a7457d842ecd74b30a183fa71e (patch) | |
| tree | 7e0237cf69236ca14a7ad954dc083355b8f30e4a /lisp/service/messages-service.lisp | |
| parent | beb0bed0b615ebcfdc0415cc9d7aff656964c427 (diff) | |
Diffstat (limited to 'lisp/service/messages-service.lisp')
| -rw-r--r-- | lisp/service/messages-service.lisp | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/lisp/service/messages-service.lisp b/lisp/service/messages-service.lisp index e03c04c..9e2a419 100644 --- a/lisp/service/messages-service.lisp +++ b/lisp/service/messages-service.lisp @@ -12,25 +12,28 @@ :accessor form)) (:documentation "")) +(defclass messages/view-service (messages-service) + ((results :initarg :results + :initform nil + :accessor results) + (location-p :initform nil)) + (:documentation "")) + +(defclass messages/mark-service (messages-service) + ((location-p :initform nil)) + (:documentation "")) + (defun messages-json () (with-auth (instance messages-service "messages-view") (setf (title instance) "Messages Administration") (setf (form instance) (make-form "messages-select-mode-form" nil nil - `((:name "read" :field-type "hidden" :required "required" :value ,(session-value :messages-read)) - (:label "View Unread" :field-type "button" :onclick "on_messages_mode_clicked('unread')") + `((:label "View Unread" :field-type "button" :onclick "on_messages_mode_clicked('unread')") (:label "View Read" :field-type "button" :onclick "on_messages_mode_clicked('read')")))))) -(defclass messages/results-service (messages-service) - ((results :initarg :results - :initform nil - :accessor results) - (location-p :initform nil)) - (:documentation "")) - -(defun messages-results-json (read) - (with-auth (instance messages/results-service "messages-view") +(defun messages-view-json (read) + (with-auth (instance messages/view-service "messages-view") (when read (setf (session-value :messages-read) read)) (with-bogenherr-database (let ((contact-pkg (make-instance 'contact-pkg))) @@ -41,17 +44,17 @@ (loop for result in (results instance) do (sanitize-json result)))) -(defclass messages/mark-service (messages-service) - ((location-p :initform nil)) - (:documentation "")) - (defun messages-mark-json (read id) (with-auth (instance messages/mark-service "messages-view") (with-bogenherr-database (handler-case (let ((contact-pkg (make-instance 'contact-pkg))) (mark-contact-us-post contact-pkg id (id (get-user)) (string= read "read")) - (setf (session-value :message) (format nil "Message marked ~a successfully." read))) + (setf (message instance) (format nil "Message marked ~a successfully." read))) (error (e) (declare (ignore e)) - (setf (session-value :errormsg) (format nil "Error marking message ~a." read))))))) + (setf (errormsg instance) (format nil "Error marking message ~a." read))))))) + +(define-endpoint ("/messages" :method :get) () messages-json) +(define-endpoint ("/messages/view" :method :post) (&post (read :parameter-type 'string)) messages-view-json read) +(define-endpoint ("/messages/mark" :method :post) (&post (read :parameter-type 'string) (id :parameter-type 'integer)) messages-mark-json read id) |
