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

com.github.marcoblos.mastercardmpgssdk.factory.MastercardObjectRequestFactory Maven / Gradle / Ivy

package com.github.marcoblos.mastercardmpgssdk.factory;

import com.github.marcoblos.mastercardmpgssdk.dto.MastercardRequestDTO;
import com.github.marcoblos.mastercardmpgssdk.dto.MastercardRequestResponseDTO;
import com.github.marcoblos.mastercardmpgssdk.validator.MastercardCreateCheckoutSessionRequestValidator;
import com.github.marcoblos.mastercardmpgssdk.validator.MastercardPayRequestValidator;
import com.github.marcoblos.mastercardmpgssdk.validator.MastercardRefundRequestValidator;
import com.github.marcoblos.mastercardmpgssdk.validator.MastercardRetrieveRequestValidator;
import com.github.marcoblos.mastercardmpgssdk.validator.MastercardValidator;

/**
 * 
 * @author marcoblos 2018-02-22
 *
 */
public class MastercardObjectRequestFactory {

	private static MastercardValidator payValidator = new MastercardPayRequestValidator();
	private static MastercardValidator retrieveValidator = new MastercardRetrieveRequestValidator();
	private static MastercardValidator refundValidator = new MastercardRefundRequestValidator();
	private static MastercardValidator createCheckoutSessionValidator = new MastercardCreateCheckoutSessionRequestValidator();

	public static MastercardRequestResponseDTO build(MastercardRequestDTO dto) {
		dto = getValidMastercardRequestDTO(dto);
		MastercardRequestResponseDTO responseRequestDTO = new MastercardRequestResponseDTO();
		switch (dto.getApiOperation()) {
			case PAY:
				responseRequestDTO.setRequest(MastercardPayRequestFactory.build(dto));
				responseRequestDTO.setResponse(payValidator.validate(responseRequestDTO.getRequest()));
				return responseRequestDTO;
			case RETRIEVE:
				responseRequestDTO.setRequest(MastercardRetrieveRequestFactory.build(dto));
				responseRequestDTO.setResponse(retrieveValidator.validate(responseRequestDTO.getRequest()));
				return responseRequestDTO;
			case REFUND:
				responseRequestDTO.setRequest(MastercardRefundRequestFactory.build(dto));
				responseRequestDTO.setResponse(refundValidator.validate(responseRequestDTO.getRequest()));
				return responseRequestDTO;
			case CREATE_CHECKOUT_SESSION:
				responseRequestDTO.setRequest(MastercardCreateCheckoutSessionRequestFactory.build(dto));
				responseRequestDTO.setResponse(createCheckoutSessionValidator.validate(responseRequestDTO.getRequest()));
				return responseRequestDTO;
			default:
				return responseRequestDTO;
		}
	}

	private static MastercardRequestDTO getValidMastercardRequestDTO(MastercardRequestDTO dto) {
		if (dto == null) {
			dto = new MastercardRequestDTO();
		}
		return dto;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy