Merge remote-tracking branch 'upstream/main'
This commit is contained in:
commit
c198775083
|
|
@ -16,8 +16,11 @@
|
|||
;; configuration logic. Probably using 'ubiquity
|
||||
(defparameter *server-port* 8080)
|
||||
(defparameter *music-library-path*
|
||||
(merge-pathnames "music/library/"
|
||||
(asdf:system-source-directory :asteroid)))
|
||||
(or (uiop:getenv "MUSIC_LIBRARY_PATH")
|
||||
;; Default to /app/music/ for production Docker, but check if music/library/ exists for local dev
|
||||
(if (probe-file (merge-pathnames "music/library/" (asdf:system-source-directory :asteroid)))
|
||||
(merge-pathnames "music/library/" (asdf:system-source-directory :asteroid))
|
||||
"/app/music/")))
|
||||
(defparameter *supported-formats* '("mp3" "flac" "ogg" "wav"))
|
||||
(defparameter *stream-base-url* "http://localhost:8000")
|
||||
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@
|
|||
(error 'authentication-error :message "Not authenticated"))
|
||||
|
||||
;; Verify current password
|
||||
(unless (verify-user-credentials username current-password)
|
||||
(unless (authenticate-user username current-password)
|
||||
(error 'authentication-error :message "Current password is incorrect"))
|
||||
|
||||
;; Update password
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Reference in New Issue