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

com.commercetools.payment.payone.methods.PayonePaypalCreatePaymentMethodProvider Maven / Gradle / Ivy

package com.commercetools.payment.payone.methods;

import com.commercetools.payment.actions.HandlingTask;
import com.commercetools.payment.actions.OperationResult;
import com.commercetools.payment.actions.ShopAction;
import com.commercetools.payment.domain.PaymentCreationResultBuilder;
import com.commercetools.payment.model.CreatePaymentData;
import com.commercetools.payment.model.PaymentCreationResult;
import io.sphere.sdk.payments.PaymentDraftBuilder;

import java.util.concurrent.CompletionStage;
import java.util.function.Function;

import static com.commercetools.payment.payone.config.PayoneConfigurationNames.*;
import static com.commercetools.payment.payone.methods.PayonePaymentMethodType.PAYMENT_WALLET;

/**
 * Created by mgatz on 7/26/16.
 */
public class PayonePaypalCreatePaymentMethodProvider extends PayoneCreatePaymentMethodBase {

    private PayonePaypalCreatePaymentMethodProvider() {
    }

    @Override
    protected String getMethodType() {
        return PAYMENT_WALLET.getValue();
    }

    public static PayoneCreatePaymentMethodBase of() {
        return new PayonePaypalCreatePaymentMethodProvider();
    }

    @Override
    public Function> create() {
        return cpd ->
                addNewPayment(cpd)
                .thenApply(payment -> null != payment
                        ? PaymentCreationResultBuilder
                            .of(OperationResult.SUCCESS)
                            .payment(payment)
                            .handlingTask(HandlingTask.of(ShopAction.CONTINUE))
                            .build()
                        : PaymentCreationResultBuilder.ofError("An error occured during creation of the payment object."));
    }

    @Override
    protected PaymentDraftBuilder createPaymentDraft(CreatePaymentData cpd) {

        return super.createPaymentDraft(cpd)
                .custom(createCustomFieldsBuilder(cpd)
                        .addObject(SUCCESS_URL, cpd.getConfigByName(SUCCESS_URL))
                        .addObject(ERROR_URL, cpd.getConfigByName(ERROR_URL))
                        .addObject(CANCEL_URL, cpd.getConfigByName((CANCEL_URL)))
                    .build());
    }
}






© 2015 - 2025 Weber Informatics LLC | Privacy Policy