diff options
Diffstat (limited to 'web/panettone/src/panettone.lisp')
-rw-r--r-- | web/panettone/src/panettone.lisp | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/web/panettone/src/panettone.lisp b/web/panettone/src/panettone.lisp index 5c8afc2ca7e9..87c7b0659e35 100644 --- a/web/panettone/src/panettone.lisp +++ b/web/panettone/src/panettone.lisp @@ -429,16 +429,20 @@ updated issue" ("/issues/:id/comments" :decorators (@auth) :method :post) (&path (id 'integer) &post body) - (handler-case - (progn - (cl-prevalence:execute-transaction - (add-comment *p-system* id - :body body - :author-dn (dn *user*))) - (cl-prevalence:snapshot *p-system*) - (hunchentoot:redirect (format nil "/issues/~A" id))) - (issue-not-found (_) - (render/not-found "Issue")))) + (flet ((redirect-to-issue () + (hunchentoot:redirect (format nil "/issues/~A" id)))) + (if (string= body "") + (redirect-to-issue) + (handler-case + (progn + (cl-prevalence:execute-transaction + (add-comment *p-system* id + :body body + :author-dn (dn *user*))) + (cl-prevalence:snapshot *p-system*) + (redirect-to-issue)) + (issue-not-found (_) + (render/not-found "Issue")))))) (defroute close-issue ("/issues/:id/close" :decorators (@auth) |