In MVC pattern, Model should take responsibility for business logic.
Therefore I write validate function for creating in the model.
If creating a instance of the model should be safe, I must validate a
parameter in the create function.
My problem is that a controller have to validate a parameter twice in
the validate function and the create function.
Ring handler example
(defn handler [{:keys [params] :as req}]
(if (person/valid? params)
{:status 200 :body (json/generate-string (person/create params))}
{:status 400}))
I think this might be suited to monads, which I don't fully
understand.
On Jan 4, 4:35 am, Mark Engelberg <[email protected]> wrote:
> Some of the most common uses for monads have pre-existing mechanisms
> with Clojure to handle them, e.g.:
> sequence monad (for)
> state monad (Clojure has many stateful mechansisms)
> maybe monad (Clojure programmers usually just return nil for failure,
> and use something like when-let to process it)
>
> In terms of higher-level DSLs constructed out of monads, the most
> useful monadic frameworks I've seen are monads for parsing, and monads
> for representing probability distributions. If I needed to do one of
> those things in Clojure, I'd look closely at monad options. But since
> I haven't needed to do those things, and the common uses for monads
> are already covered, I haven't found a need to do any monadic style
> programming in my own code.
>
> --Mark
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en