Skip to content

Instantly share code, notes, and snippets.

@stevebuik
Created November 1, 2015 22:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stevebuik/f97901dda45926313e1c to your computer and use it in GitHub Desktop.
Save stevebuik/f97901dda45926313e1c to your computer and use it in GitHub Desktop.
An example of logging and sanitizing server parsers exceptions
(defn handle
[env params]
(let [p (parser {:read readf
:mutate mutatef})
result (p env params)
errors (->> result
(filter (fn [[k v]] (instance? Throwable v))))]
(if (seq errors)
(do
(doseq [[req res] errors]
(error res))
(->> result
(map (fn [[k v]]
[k (if (instance? Throwable v)
:operation-failed
v)]))
(into {})))
result)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment