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.

Reply via email to