diff --git a/src/snippets/infra/api.clj b/src/snippets/infra/api.clj index a7d31bb..1e2622a 100644 --- a/src/snippets/infra/api.clj +++ b/src/snippets/infra/api.clj @@ -22,13 +22,15 @@ {:status 200, :body "snippet created"}) (defn handle-edit-snippet [{body :body-params params :query-params}] - (let [slug (get params "slug")] + (let [slug (get params "slug")] (t/log! {:level :info, :data {:body body :slug slug}} "Received request to edit snippet") - (let [{success :success :as res} (snippets.use-cases.edit/edit-snippet slug body)] - (cond - success {:status 200, :body "snippet updated"} - (= (:reason res) :invalid-patch) {:status 400, :body "invalid patch"} - :else {:status 500, :body "internal server error"})))) + (if-let [slug (not-empty slug)] + (let [{success :success :as res} (snippets.use-cases.edit/edit-snippet slug body)] + (cond + success {:status 200, :body "snippet updated"} + (= (:reason res) :invalid-patch) {:status 400, :body "invalid patch"} + :else {:status 500, :body "internal server error"})) + {:status 400, :body "missing slug param"}))) (defn handle-view-snippets [{params :query-params}] (if-let [limit (get params "limit")]