Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
import { client } from 'src/bootstrap/client/apolloClient';
import { isObjectWithKeys, isSafe } from 'exotic';
import { isErrorLikeResponse } from '@skava/is-error-like-response';
//
import { cartContainer } from '@skava/packages/core/cart/state';
import { errorContainer } from '@skava/packages/core/notifications';
import { getAddressInfo, setShippingAddressParams } from '@skava/packages/core/addressAndPayment';
//
import { toCreditCard } from '@skava/packages/ui/forms';
import { AddPayment, DeletePayment } from '../queries';
const FIXTURE_PARAMS = {
    type: 'CREDITCARD',
    creditCard: {
        number: '4111111111111111',
        type: '001',
        cvv: '123',
        expirationMonth: '12',
        expirationYear: '23',
        name: '001',
    },
    address: {
        addressLine1: '5999 eh street',
        addressLine2: '',
        postalCode: '111222',
        phone: '6253761523',
        city: 'Courtenay',
        state: 'BC',
        firstName: 'ssadas',
        lastName: 'dasd',
        middleName: '',
        country: 'US',
        email: 'james.rue21@skava.com',
    },
    amount: '44.68',
};
function propsToPaymentParams(params = FIXTURE_PARAMS) {
    const { total } = cartContainer;
    // was `cards` @@packages
    const { card = FIXTURE_PARAMS.creditCard, address = FIXTURE_PARAMS.address } = params;
    const shippingAddressDetails = isObjectWithKeys(address) ? address : getAddressInfo();
    const shippingAddressParams = setShippingAddressParams(shippingAddressDetails);
    const creditCardParams = toAddPaymentParams(card);
    const cardType = card.cardNumber
        ? 'CREDITCARD'
        : card.purchaseOrder
            ? 'PURCHASEORDER'
            : 'CREDITCARD';
    const paymentParams = {
        creditCard: creditCardParams,
        address: shippingAddressParams,
        type: cardType,
        amount: total,
    };
    return paymentParams;
}
export async function addPaymentBinding(params) {
    // const paymentParams = propsToPaymentParams(params)
    const paymentParams = params;
    console.log({ params, paymentParams });
    const response = await client.mutate({
        mutation: AddPayment,
        variables: {
            creditCard: paymentParams.creditCard,
            address: paymentParams.address,
            type: paymentParams.type,
            // amount: '45.98',
            amount: paymentParams.amount,
        },
    });
    console.debug('[CheckoutPayment] addPayment');
    console.dir({ params, response });
    if (isErrorLikeResponse(response)) {
        errorContainer.notifyFor('updatePaymentFailure');
    }
    else {
        errorContainer.setMessage('added card');
    }
    return response;
}
// @todo add nevers
function toAddPaymentParams(params) {
    const { cardId, cardType, cardNumber, purchaseOrder, firstName, lastName, 
    // @todo deprecate these @@packages
    securityCode = params.securitycode, expirationMonth = params.expirationmonth || params.expiryMonth, expirationYear = params.expirationyear || params.expiryYear, } = params;
    const cardDetails = isSafe(cardType) === false ? toCreditCard(cardNumber) : [];
    const type = cardType || cardDetails.owns;
    const creditCardDetails = {
        id: cardId && cardId,
        number: cardNumber || purchaseOrder,
        cvv: securityCode,
        name: type,
        type,
        expirationMonth,
        expirationYear,
        firstName,
        lastName,
    };
    return creditCardDetails;
}
export async function deletePaymentBinding() {
    const response = await client.mutate({
        mutation: DeletePayment,
    });
    // await updateCart()
    return { response };
}
export async function deleteThenAddAddPaymentBinding(variables) {
    await deletePaymentBinding();
    const paymentResponse = await addPaymentBinding(variables);
    return paymentResponse;
}
export { deletePaymentBinding as deleteAllPaymentsBinding };
//# sourceMappingURL=bindings.js.map