Validation procedures#
Validation procedures can be used to validate input such as HTTP requests. Its normal usage is during authentication or registration, where form parameters need special validation. A phone number needs a certain format, or additional fields during registration needs validation.
A validation procedure has the following structure:
function result(validationContext) {
var errors = {};
// validate the object
return errors;
}
The main function of a validation procedure must be called result.
Common API#
Validation procedures have access to all of the Common Procedure API .
Function#
The result function takes one argument, which is the context object that gives access to the request
to be validated.
The type of the context object is ValidationProcedureContext.
result(validationContext)#
The main function of a transformation procedure
Parameters:
validationContext- The context object for validation procedures
Returns: a map of errors if validation fails, or an empty map on successful validation.
Return Value#
The returned value should be a JavaScript object representing the validation errors that were found. If the object is valid, an empty object should be returned. Otherwise, the object should contain entries of the form:
{ "fieldName" : "message.key" }
These message keys are then used in the localization templates shown to the end user to present a localized error message.
Examples#
A good example is during registration when a Form is validated and the username field is expected to contain a String with at least 2 characters. If that data fails to validate we want to show a localized message to the user. For this we return a message key that we define validation.username_too_short.
function result(validationContext) {
var errors = {};
var username = validationContext.request.getFormParameter("userName");
if ((typeof username == "string") && username.length < 2) {
errors.username = "validation.username_too_short";
}
return errors;
}
Another common scenario is to add additional parameters to the form that the user should enter. A good example is a checkbox for accepting license terms. A validation procedure can be added to validate that the checkbox is checked before accepting the request.
function result(validationContext) {
var errors = {};
var acceptTerms = validationContext.request.getFormParameter("agreeToTerms");
if (acceptTerms !== 'on')
{
errors.terms = "error.validation.terms";
}
return errors;
}