Plaster
New
List
Login
common-lisp
default
anonymous
2024.01.16 14:09:36
(defmacro with-json-params ((json-params &rest json-keys) &body body) `(let* ((,json-params (UTILS.GENERAL-UTILS:GET-PARAMS)) ,@(loop for json-key in json-keys collect `(,json-key (get-request-json-value ,(cl-case-to-camel-case json-key))))) ,@body)) @export (defmacro defjson-route-with-preflight-params (url-details json-params-name route-params &body body) (declare (ignorable ,json-params-name)) `(defpost-route-with-preflight ,url-details NIL (setf (getf (caveman2:response-headers caveman2:*response*) :content-type) "application/json") (with-json-params (,json-params-name ,@route-params) ,@body))) (DEFROUTE (*WEB* "/api/list.json" :METHOD :POST) NIL (DECLARE (IGNORABLE JSON-PARAMS)) (SETF (GETF (RESPONSE-HEADERS *RESPONSE*) :CONTENT-TYPE) "application/json") (UTILS.CONTROLLER.ROUTE-MACROS:WITH-JSON-PARAMS (JSON-PARAMS JOBPOST-ID) (WITH-LOGGED-IN-JWT-USER GIVEN-USER (AUTO-SERVER-RESPONSE (DB-MANAGER:SELECT-DAO 'JOBPOST-APPLICATION (MITO.DAO:INCLUDES 'JOBPOST) (IF JOBPOST-ID (WHERE (:= :JOBPOST-ID JOBPOST-ID)) (WHERE (:= :USER-ID (MITO.DAO.MIXIN:OBJECT-ID GIVEN-KKUSER)))))))))
Raw
Annotate
Repaste
Edit