One other minor point (if (seq some-sequence) true false) is preferred by some (I won’t say more idiomatic) than (if (empty? some-sequence) true false). Also, in no-errors branch you probably want to return status: 200?
> On 12 Nov 2015, at 19:44, Brian <brian.fores...@gmail.com> wrote: > > Thanks Colin, Thanks Erik > Exactly what I was looking for. > > I've updated the gist with Colin's suggestion and a bit of destructuring. > If this project gets any bigger I will definitely look at vlad > <https://github.com/logaan/vlad> and Prismatic Schema > <https://github.com/Prismatic/schema>. > > BDF. > > On Thu, Nov 12, 2015 at 12:02 PM, Erik Assum <e...@assum.net > <mailto:e...@assum.net>> wrote: > There is also https://github.com/logaan/vlad <https://github.com/logaan/vlad> > which helps with validation. > > Erik. > -- > i farta > > Den 12. nov. 2015 kl. 17.12 skrev Colin Yates <colin.ya...@gmail.com > <mailto:colin.ya...@gmail.com>>: > >> A nicer equivalent form would be: >> >> (cond-> [] >> this-error? (conj “It failed with this error”) >> that-error? (conj “It failed with that error”)) >> >> However, purely for validation there are a few utilities out there already. >> Checkout the ‘Validation’ section on http://www.clojure-toolbox.com >> <http://www.clojure-toolbox.com/> >> >> Also, in terms of enforcing contracts - Prismatic Schema is highly >> recommended but hard to ‘englishify’ the errors. Failures are considered API >> failures rather than happy-case failures. >> >>> On 12 Nov 2015, at 16:09, Brian Forester <brian.fores...@gmail.com >>> <mailto:brian.fores...@gmail.com>> wrote: >>> >>> I'm writing a very small REST application in clojure using compojure and >>> ring. One problem is that I don't have anyone who can review my work or >>> provide feedback. >>> >>> I've written a small function to validate a simple JSON request. I'm >>> validating the three values that are in the post and collecting the errors >>> for return. >>> The core mechanic I've used >>> (swap! errors str "'grepString' must not be null or empty.\n")) >>> does not seem to be a very idiomatic clojure way to solve this simple >>> problem. >>> >>> https://gist.github.com/BDF/8e61daf8fe8b602a248a >>> <https://gist.github.com/BDF/8e61daf8fe8b602a248a> >>> >>> Any feedback is appreciated. >>> BDF. >>> >>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Clojure" group. >>> To post to this group, send email to clojure@googlegroups.com >>> <mailto:clojure@googlegroups.com> >>> Note that posts from new members are moderated - please be patient with >>> your first post. >>> To unsubscribe from this group, send email to >>> clojure+unsubscr...@googlegroups.com >>> <mailto:clojure+unsubscr...@googlegroups.com> >>> For more options, visit this group at >>> http://groups.google.com/group/clojure?hl=en >>> <http://groups.google.com/group/clojure?hl=en> >>> --- >>> You received this message because you are subscribed to the Google Groups >>> "Clojure" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to clojure+unsubscr...@googlegroups.com >>> <mailto:clojure+unsubscr...@googlegroups.com>. >>> For more options, visit https://groups.google.com/d/optout >>> <https://groups.google.com/d/optout>. >> >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clojure@googlegroups.com >> <mailto:clojure@googlegroups.com> >> Note that posts from new members are moderated - please be patient with your >> first post. >> To unsubscribe from this group, send email to >> clojure+unsubscr...@googlegroups.com >> <mailto:clojure+unsubscr...@googlegroups.com> >> For more options, visit this group at >> http://groups.google.com/group/clojure?hl=en >> <http://groups.google.com/group/clojure?hl=en> >> --- >> You received this message because you are subscribed to the Google Groups >> "Clojure" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to clojure+unsubscr...@googlegroups.com >> <mailto:clojure+unsubscr...@googlegroups.com>. >> For more options, visit https://groups.google.com/d/optout >> <https://groups.google.com/d/optout>. > > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > <mailto:clojure@googlegroups.com> > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > <mailto:clojure%2bunsubscr...@googlegroups.com> > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > <http://groups.google.com/group/clojure?hl=en> > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com > <mailto:clojure+unsubscr...@googlegroups.com>. > For more options, visit https://groups.google.com/d/optout > <https://groups.google.com/d/optout>. > > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > <http://groups.google.com/group/clojure?hl=en> > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com > <mailto:clojure+unsubscr...@googlegroups.com>. > For more options, visit https://groups.google.com/d/optout > <https://groups.google.com/d/optout>. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.