Database Reference
In-Depth Information
4.
Now, we can start deining some validation rules. Rules are vector triples, each listing
a ield, a predicate, and an error message:
(defn validate-user [user]
(validate user
[:given-name present? "Given name required."]
[:surname present? "Surname required."]
[:age number-present? "Age required."]
[:age (over 0) "Age should be positive."]
[:age (under 150) "Age should be under 150."]
[:badge present?
"The badge number is required."]
[:badge valid-badge
"The badge number is invalid."]))
Now, we can easily validate data against this set of rules:
user=> (validate-user (assoc user :age -42))
{:age ["Age should be positive."]}
user=> (validate-user (assoc user :age -42 :surname nil))
{:age ["Age should be positive."],
:surname ["Surname required."]}
How it works…
Valip provides an easy-to-use DSL to deine validation rules. It then breaks the incoming map
structures and validates each ield against the rules given. Finally, it returns error messages
for any problem data. This system is simple to integrate into a data processing worklow.
 
Search WWH ::




Custom Search