From 559187df2ea04c7e01ffac1467bbb9c4caadd38f Mon Sep 17 00:00:00 2001 From: Luis Pereira Date: Mon, 17 Nov 2025 06:13:59 +0000 Subject: [PATCH] fix: with-error-handling using inner message This fix some issues where, on the client, `response.message` was `Ok.` for error responses and real error message needed to be extracted from `response.data.message`, which made a weird API. --- conditions.lisp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/conditions.lisp b/conditions.lisp index f16464a..d010aa6 100644 --- a/conditions.lisp +++ b/conditions.lisp @@ -109,39 +109,47 @@ (not-found-error (e) (api-output `(("status" . "error") ("message" . ,(error-message e))) + :message (error-message e) :status 404)) (authentication-error (e) (api-output `(("status" . "error") ("message" . ,(error-message e))) + :message (error-message e) :status 401)) (authorization-error (e) (api-output `(("status" . "error") ("message" . ,(error-message e))) + :message (error-message e) :status 403)) (validation-error (e) (api-output `(("status" . "error") ("message" . ,(error-message e))) + :message (error-message e) :status 400)) (database-error (e) (format t "Database error: ~a~%" e) (api-output `(("status" . "error") ("message" . "Database operation failed")) + :message "Database operation failed" :status 500)) (asteroid-stream-error (e) (format t "Stream error: ~a~%" e) (api-output `(("status" . "error") ("message" . "Stream operation failed")) + :message "Stream operation failed" :status 500)) (asteroid-error (e) (format t "Asteroid error: ~a~%" e) (api-output `(("status" . "error") ("message" . ,(error-message e))) + :message (error-message e) :status 500)) (error (e) (format t "Unexpected error: ~a~%" e) (api-output `(("status" . "error") ("message" . "An unexpected error occurred")) - :status 500)))) + :status 500 + :message "An unexpected error occurred")))) (defmacro with-db-error-handling (operation &body body) "Wrap database operations with error handling.