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