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

cl.transbank.pos.responses.common.BasicResponse Maven / Gradle / Ivy

package cl.transbank.pos.responses.common;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

import cl.transbank.pos.utils.ResponseCodes;
import lombok.AccessLevel;
import lombok.Getter;

import static cl.transbank.pos.utils.ParameterParser.parseIntParameter;

@Getter
public class BasicResponse {

    @Getter(AccessLevel.NONE)
    private final Map parameterMap;

    @Getter(AccessLevel.NONE)
    protected final String baseResponse;
    private final int functionCode;
    private final String responseMessage;
    private final int responseCode;
    private final Boolean success;

    public BasicResponse(String response)
    {
        baseResponse = response.substring(1, response.length()-2);
        parameterMap = initializeParameterMap();

        functionCode = parseIntParameter(baseResponse, parameterMap, "FunctionCode");
        responseCode = parseIntParameter(baseResponse, parameterMap, "ResponseCode");
        responseMessage = ResponseCodes.getResponseMessage(responseCode);
        success = isSuccess();
    }

    @Override
    public String toString() {
        return "\nFunction: " + functionCode + "\n" +
            "Response code: " + responseCode + "\n" +
            "Response message: " + responseMessage + "\n" +
            "Success?: " + success;
    }

    private static Map initializeParameterMap() {
        Map baseMap = new HashMap<>();
        baseMap.put("FunctionCode", 0);
        baseMap.put("ResponseCode", 1);
        return Collections.unmodifiableMap(baseMap);
    }

    private boolean isSuccess() {
        return ResponseCodes.getResponseMessage(0).equals(responseMessage)
                || ResponseCodes.getResponseMessage(90).equals(responseMessage);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy