Просмотр исходного кода

Return an error if query parameter is missing.

Lucas Stadler лет назад: 12
Родитель
Сommit
4c7c5b5d08
1 измененных файлов с 8 добавлено и 1 удалено
  1. 8 1
      clj/clarity/clarity/server.clj

+ 8 - 1
clj/clarity/clarity/server.clj

17
(defn read-tx-data [str]
17
(defn read-tx-data [str]
18
  (edn/read-string {:readers {'db/id (partial apply d/tempid)}} str))
18
  (edn/read-string {:readers {'db/id (partial apply d/tempid)}} str))
19
19
20
(defn http-error [status body & {:as attrs}]
21
  (into {:status status
22
         :body body}
23
        attrs))
24
20
(defroutes app-routes
25
(defroutes app-routes
21
  (GET "/" []
26
  (GET "/" []
22
       {:status 200
27
       {:status 200
28
                     [:textarea {:name "facts" :cols 80 :rows 20}]
33
                     [:textarea {:name "facts" :cols 80 :rows 20}]
29
                     [:input {:type "submit" :value "transact!"}]])})
34
                     [:input {:type "submit" :value "transact!"}]])})
30
  (GET "/facts" {{query :q} :params}
35
  (GET "/facts" {{query :q} :params}
31
       (pr-str (d/q (edn/read-string query) (d/db conn))))
36
       (if query
37
         (pr-str (d/q (edn/read-string query) (d/db conn)))
38
         (http-error 400 (pr-str {:error "Missing required `q` parameter"}))))
32
  (POST "/facts" [facts]
39
  (POST "/facts" [facts]
33
        (pr-str (d/transact conn (read-tx-data facts)))))
40
        (pr-str (d/transact conn (read-tx-data facts)))))
34
41