Validate form input fields with clear Groovy errors
Groovy
def validate(Map input) {
Map<String, String> errors = [:]
String name = input.name?.trim()
if (!name) errors.name = 'is required'
else if (name.length() > 40) errors.name = 'must be at most 40 characters'
String email = input.email?.trim()
if (!email || !(email ==~ /^[^@ ]+@[^@ ]+[.][^@ ]+$/)) errors.email = 'is not a valid email'
if (!(input.age instanceof Number) || input.age < 18) errors.age = 'must be a number of at least 18'
errors
}
def payload = [name: ' ', email: 'nope', age: '30']
def errors = validate(payload)
if (errors) {
errors.each { field, message -> println "$field $message" }
} else {
println 'ok'
}