Another tip when using seq then: cljs.user=> (or (seq [1 2 3]) false) (1 2 3) cljs.user=> (or (seq []) false) false cljs.user=>
> On 13 Nov 2015, at 14:09, Brian <brian.fores...@gmail.com> wrote: > > I think I like 'seq' better than 'empty?'. I'm sure my opinions will firm > up after writing some more clojure. > > > Also, in no-errors branch you probably want to return status: 200? > I picked the function where I knew there was a better way. This validation > function is called from this bit code. > (POST "/usagelog" req > (let [errors (validate-request req)] > (if (seq errors) > errors > (ring.util.response/response (grep-log-and-response req))) > ) > ) > > > On Thu, Nov 12, 2015 at 4:08 PM, Colin Yates <colin.ya...@gmail.com > <mailto:colin.ya...@gmail.com>> wrote: > 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 >> <mailto: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 >> <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.