All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.n2oapp.framework.ui.controller.action.ValidationController Maven / Gradle / Ivy

package net.n2oapp.framework.ui.controller.action;

import net.n2oapp.framework.api.StringUtils;
import net.n2oapp.framework.api.data.DomainProcessor;
import net.n2oapp.framework.api.data.InvocationProcessor;
import net.n2oapp.framework.api.rest.ControllerType;
import net.n2oapp.framework.api.rest.ControllerTypeAware;
import net.n2oapp.framework.api.rest.ValidationDataResponse;
import net.n2oapp.framework.api.ui.ValidationRequestInfo;
import net.n2oapp.framework.api.ui.ValidationResponseInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * Контроллер получения выборки данных
 */
public class ValidationController implements ControllerTypeAware {

    private static final Logger logger = LoggerFactory.getLogger(ValidationController.class);
    private final InvocationProcessor serviceProvider;
    private final DomainProcessor domainProcessor;

    public ValidationController(InvocationProcessor serviceProvider,
                                DomainProcessor domainProcessor) {
        this.serviceProvider = serviceProvider;
        this.domainProcessor = domainProcessor;
    }

    public ValidationDataResponse execute(ValidationRequestInfo requestInfo, ValidationResponseInfo responseInfo) {
        ValidationDataResponse response = new ValidationDataResponse();
        requestInfo.getValidation().validate(requestInfo.getData(), serviceProvider, message -> {
            response.setId(requestInfo.getValidation().getId());
            response.setField(requestInfo.getValidation().getFieldId());
            response.setSeverity(requestInfo.getValidation().getSeverity().name());
            response.setStatus(500);
            response.setText(StringUtils.resolveLinks(requestInfo.getValidation().getMessage(), requestInfo.getData()));
            responseInfo.setSuccess(false);
            logger.error(String.format("For field %s validation fail:%s", response.getField(), response.getText()));
        }, domainProcessor);
        return response;
    }

    @Override
    public ControllerType getControllerType() {
        return ControllerType.validation;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy