uk.gov.gds.locate.api.frontend.validation.ValidationCreateUserRequest.java Source code

Java tutorial

Introduction

Here is the source code for uk.gov.gds.locate.api.frontend.validation.ValidationCreateUserRequest.java

Source

package uk.gov.gds.locate.api.frontend.validation;

import com.google.common.base.Strings;
import org.apache.commons.validator.routines.EmailValidator;
import uk.gov.gds.locate.api.frontend.model.CreateUserRequest;

import java.util.ArrayList;
import java.util.List;

public abstract class ValidationCreateUserRequest {

    public static final int MAX_LENGTH = 255;
    public static final String APP_NAME_ERROR = "Application name must be present and shorter than 255 letters";
    public static final String NAME_ERROR = "Name must be present and shorter than 255 letters";
    public static final String ORGANISATION_ERROR = "Organisation must be present and shorter than 255 letters";
    public static final String EMAIL_ERROR = "Email must be a valid government address";
    public static final String PSMA_ERROR = "PSMA license number must be valid";

    public static List<String> validateRequest(CreateUserRequest request) {
        List<String> errors = new ArrayList<String>();

        if (Strings.isNullOrEmpty(request.getAppName()) || request.getAppName().length() > MAX_LENGTH) {
            errors.add(APP_NAME_ERROR);
        }

        if (Strings.isNullOrEmpty(request.getName()) || request.getName().length() > MAX_LENGTH) {
            errors.add(NAME_ERROR);
        }

        if (!EmailValidator.getInstance().isValid(request.getEmail()) || !request.getEmail().endsWith(".gov.uk")
                || request.getEmail().length() > MAX_LENGTH) {
            errors.add(EMAIL_ERROR);
        }

        if (Strings.isNullOrEmpty(request.getOrganisation()) || request.getOrganisation().length() > MAX_LENGTH) {
            errors.add(ORGANISATION_ERROR);
        }

        if (Strings.isNullOrEmpty(request.getPSMA()) || request.getPSMA().length() > MAX_LENGTH) {
            errors.add(PSMA_ERROR);
        }

        return errors;
    }

}