double negatives are bad

This commit is contained in:
Gered 2015-02-14 20:27:45 -05:00
parent faecfe712d
commit 28377f0ef2

View file

@ -11,13 +11,13 @@
[clj-webtoolbox.routes.core :refer [destructure-route-bindings]]
[clj-webtoolbox.utils :refer [pred-> request?]]))
(defn no-errors? [request]
(not (seq (:validation-errors request))))
(defn has-errors? [request]
(seq (:validation-errors request)))
(defmacro threaded-checks [request checks fail-response]
`(let [result# (pred-> ~request no-errors? ~@checks)]
`(let [result# (pred-> ~request #(not (has-errors? %)) ~@checks)]
(if (and (request? result#)
(not (no-errors? result#)))
(has-errors? result#))
(if (response? ~fail-response)
~fail-response
(~fail-response result#))