-
Notifications
You must be signed in to change notification settings - Fork 127
Open
Description
http://clojure-liberator.github.io/liberator/doc/decisions.html should include something like
BTW, where does the source for the page live? I do not see it in this repo.
Implementing a decision
A decision is a (fn [{:keys [request resource] :as context}] ...) that is expected to return a truthy value. In addition, it can also update the context - if the returned value is a map then it is merged into the context, if it is a function than the context is passed through it, if it is a vector then its second element is checked for being a map/function. Example:
(defresource foo
:allowed-methods [:get]
:allowed? (fn [{:keys [request resource]}]
(let [user (my/fetch-user! request)]
(when (my/authorized? user resource)
{::user user})))
:handle-ok (fn [ctx]
(log/info "user" (-> ctx ::user :name) "accessed foo")
(foo/get (:request ctx))))```Metadata
Metadata
Assignees
Labels
No labels