diff options
author | colin <colin@cicadas.surf> | 2024-11-28 11:52:05 -0800 |
---|---|---|
committer | colin <colin@cicadas.surf> | 2024-11-28 11:52:05 -0800 |
commit | dd99f55b19fef478e792c6c6a6b5d360d679c8fa (patch) | |
tree | 41fd75679c72c844f5afae6c4bea3d54afc0958f /src/endpoint.lisp | |
parent | 3e9649aad509ff6e7fd7e7e4cd8a87b154737443 (diff) |
Added thread-safe debug logging when debugging is on
Diffstat (limited to 'src/endpoint.lisp')
-rw-r--r-- | src/endpoint.lisp | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/src/endpoint.lisp b/src/endpoint.lisp index 8189572..eeb536e 100644 --- a/src/endpoint.lisp +++ b/src/endpoint.lisp @@ -373,17 +373,24 @@ the ;." 1. in path extractors 2. in query parameters 3. in the request body." - (let ((extracted-args - (process-extractors class)) - (params-args - (extract-initargs args (http:get-parameters*))) - (body-args - (extract-initargs args (collect-body class)))) - (apply #'make-instance class + (debug-print :instantiate-endpoint (class-name class) args) + (let* ((extracted-args + (process-extractors class)) + + (params-args + (extract-initargs args (http:get-parameters*))) + + (body-args + (extract-initargs args (collect-body class))) + + (collected-args (apply-slot-value-mappers class (reduce #'merge-plists - (list extracted-args params-args body-args)))))) + (list extracted-args params-args body-args))))) + + (debug-print :initargs-collected collected-args) + (apply #'make-instance class collected-args))) (defun build-handler (class) "Create a hunchentoot dispatch function that instantiates and handles @@ -397,9 +404,14 @@ the ;." (content-type (content-type class))) (lambda () - (check-request-compliance class) - (setf (http:content-type*) content-type) - (handle (instantiate-endpoint class init-slots))))) + (let ((*debug-indent* 0)) + (debug-print + (http:request-method*) + (http:request-uri*) + :dispatched-on (class-name class)) + (check-request-compliance class) + (setf (http:content-type*) content-type) + (handle (instantiate-endpoint class init-slots)))))) (defun create-class-dispatcher (class) "Creates a function that dispatches a handler function if a request |