Script validators API

Sample validator code

Below is sample code that shows how to use the input and how to return data:

function callService(context) {
    let input1 = context.getFirstParameter("input1");
    if (input1 === "api") {
        return [{
                'key': 'pl.error',
                'parameters': [input1, "parameter {0} is incorrect"]
            }
            ];
    } else if (input1 != null && input1 !== "") {
        return [{
                'key': 'pl.error',
                'parameters': [input1, "another hardcoded parameter"]
            }];
    } else {
        return [];
    }
}

Input to the script validator

As input (the parameter context in the code above) there is an object that provides the following methods:

  • List<String> getParameters(final String name) - retrieves a specific list from the input data map,

  • String getFirstParameter(final String name) - retrieves the first element from a specific list in the input data map or returns the value "null",

  • String getFirstParameter(final String name, final String defaultIfEmpty) - retrieves the first element from a specific list in the input data map, and if it is missing or empty returns the value "defaultIfEmpty",

  • Map<String, List<String>> getInputParameters() - returns the whole input data map it stores,

  • String isVisible(final String id) - gets information whether the component with the specified id is visible,

  • String getValue(final String id) - gets the value of the component (also a session variable) with the specified id,

  • String getData(final String id, final String attribute) - retrieves the value of a specific attribute for the component with the specified id (NOTE! The retrievable attributes depend on the component),

  • List<Map<String, String>> callService(String name, Map<String, List<String>> input) - allows calling the ServiceProxy,

  • ValidatorOutput validate(String name, Map<String, List<String>> input) - allows calling a validator,

Example of retrieving a list (e.g., for fields in a repeatable section):

Validator output

  1. List of maps: an array of objects containing the fields "key" and "parameters".

  2. Optional fields:

    1. type - the validator type is set to INLINE by default, another option is POPUP,

    2. parameters - variables that we can send to the validation script message

    3. attributes - e.g. POPUP attributes adding a 'next' button and changing e.g. the value of a component after pressing 'next':

e.g. attributes for row validation in GesTable:

Example INLINE validation - GesTable rows

Logging

Logging of input data is automatic.

Manual logging should comply with the description in Logging in ScriptCode

Throwing business exceptions

Business errors are described in detail on the page Error pages.

circle-info

Validator examples:

demoEmailValidator, demoPESELValidator, demoIDCardValidator, demoMinMaxValidator

Last updated

Was this helpful?