fix: use raw defun httpd/add for proper redirect handling

This commit is contained in:
2026-06-21 08:21:53 -04:00
parent 9259c1139d
commit 16bbccf67b
+20 -18
View File
@@ -312,27 +312,29 @@ Set by test harnesses that only need the model functions.")
(spine-index-model books (cadr (assoc "id" query))))) (spine-index-model books (cadr (assoc "id" query)))))
(insert (spine-render-empty-state))))) (insert (spine-render-empty-state)))))
(defservlet add text/html (path query request) (defun httpd/add (proc uri-path query request)
(let ((method (cadr (car request)))) "Handle /add: GET shows form, POST creates a book."
(let ((method (caar request)))
(if (equal method "POST") (if (equal method "POST")
(progn (progn
(spine-add-book (spine-add-book
:title (cdr (assoc "title" query)) :title (cadr (assoc "title" query))
:author (cdr (assoc "author" query)) :author (cadr (assoc "author" query))
:category (cdr (assoc "category" query)) :category (cadr (assoc "category" query))
:format (cdr (assoc "format" query)) :format (cadr (assoc "format" query))
:isbn (cdr (assoc "isbn" query)) :isbn (cadr (assoc "isbn" query))
:cover (cdr (assoc "cover" query)) :cover (cadr (assoc "cover" query))
:rec_by (cdr (assoc "rec_by" query)) :rec_by (cadr (assoc "rec_by" query))
:rec_note (cdr (assoc "rec_note" query)) :rec_note (cadr (assoc "rec_note" query))
:date_added (cdr (assoc "date_added" query)) :date_added (cadr (assoc "date_added" query))
:initial_note (cdr (assoc "initial_note" query))) :initial_note (cadr (assoc "initial_note" query)))
(httpd-redirect t "/index" 303)) (httpd-redirect proc "/index" 303))
(let* ((books (spine-books)) (httpd-with-buffer proc "text/html"
(model (if books (let* ((books (spine-books))
(spine-add-form-model books) (model (if books
(ht ("app_title" "spine"))))) (spine-add-form-model books)
(insert (spine-render "add.mustache" model)))))) (ht ("app_title" "spine")))))
(insert (spine-render "add.mustache" model)))))))
(defun httpd/ (proc uri-path query request) (defun httpd/ (proc uri-path query request)
"Redirect root to /index." "Redirect root to /index."