From 16bbccf67b9b7690510bce455168bbab5676e66d Mon Sep 17 00:00:00 2001 From: James Brechtel Date: Sun, 21 Jun 2026 08:21:53 -0400 Subject: [PATCH] fix: use raw defun httpd/add for proper redirect handling --- spine.el | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/spine.el b/spine.el index f6b0694..a4d0316 100644 --- a/spine.el +++ b/spine.el @@ -312,27 +312,29 @@ Set by test harnesses that only need the model functions.") (spine-index-model books (cadr (assoc "id" query))))) (insert (spine-render-empty-state))))) -(defservlet add text/html (path query request) - (let ((method (cadr (car request)))) +(defun httpd/add (proc uri-path query request) + "Handle /add: GET shows form, POST creates a book." + (let ((method (caar request))) (if (equal method "POST") (progn (spine-add-book - :title (cdr (assoc "title" query)) - :author (cdr (assoc "author" query)) - :category (cdr (assoc "category" query)) - :format (cdr (assoc "format" query)) - :isbn (cdr (assoc "isbn" query)) - :cover (cdr (assoc "cover" query)) - :rec_by (cdr (assoc "rec_by" query)) - :rec_note (cdr (assoc "rec_note" query)) - :date_added (cdr (assoc "date_added" query)) - :initial_note (cdr (assoc "initial_note" query))) - (httpd-redirect t "/index" 303)) - (let* ((books (spine-books)) - (model (if books - (spine-add-form-model books) - (ht ("app_title" "spine"))))) - (insert (spine-render "add.mustache" model)))))) + :title (cadr (assoc "title" query)) + :author (cadr (assoc "author" query)) + :category (cadr (assoc "category" query)) + :format (cadr (assoc "format" query)) + :isbn (cadr (assoc "isbn" query)) + :cover (cadr (assoc "cover" query)) + :rec_by (cadr (assoc "rec_by" query)) + :rec_note (cadr (assoc "rec_note" query)) + :date_added (cadr (assoc "date_added" query)) + :initial_note (cadr (assoc "initial_note" query))) + (httpd-redirect proc "/index" 303)) + (httpd-with-buffer proc "text/html" + (let* ((books (spine-books)) + (model (if books + (spine-add-form-model books) + (ht ("app_title" "spine"))))) + (insert (spine-render "add.mustache" model))))))) (defun httpd/ (proc uri-path query request) "Redirect root to /index."