function postShippingMethod(args) { const validator = new InputValidator(args, ERROR_TYPE); validator .checkArguments() .mandatoryParameter('id') .mandatoryParameter('shippingMethodId'); if (validator.error) { return validator.buildErrorResponse(); } let languageParser = new LanguageParser(args); let cartMapper = new CartMapper(languageParser); const cart = new CommerceToolsCart(args, createClient, cartMapper.mapCart.bind(cartMapper)); // cart data for cart update action const data = { actions: [{ action: 'setShippingMethod', shippingMethod: { typeId: 'shipping-method', id: args.shippingMethodId } }] }; return cart .byId(args.id) .postCartData(args.id, data); }
/** * This action adds a new entry to a cart. When the cart id is empty a new cart will be created with the new cart entry. * * @param {string} args.CT_PROJECTKEY commerceTools project key * @param {string} args.CT_CLIENTID commerceTools client id * @param {string} args.CT_CLIENTSECRET commerceTools client secret * @param {string} args.CT_API_HOST optional commerceTools API host uri * @param {string} args.CT_AUTH_HOST optional commerceTools AUTH host uri * * @param {string} args.id cart id * @param {string} args.cartEntryId cart entry id * * @return {Promise} the cart containing the remaining cart entries */ function deleteCartEntry(args) { const validator = new InputValidator(args, ERROR_TYPE); validator .checkArguments() .mandatoryParameter('id') .mandatoryParameter('cartEntryId') .matchRegexp('cartEntryId', InputValidator.CART_ENTRY_ID_REGEXP); if (validator.error) { return validator.buildErrorResponse(); } let languageParser = new LanguageParser(args); let cartMapper = new CartMapper(languageParser); const cart = new CommerceToolsCart(args, createClient, cartMapper.mapCart.bind(cartMapper)); // cart data for cart remove action const data = { actions: [ { action: 'removeLineItem', lineItemId: args.cartEntryId } ] }; return cart.postCartData(args.id, data); }
/** * This action gets the available payment methods for a cart that exists in commerce tools. * * @param {string} args.CT_PROJECTKEY commerceTools project key * @param {string} args.CT_CLIENTID commerceTools client id * @param {string} args.CT_CLIENTSECRET commerceTools client secret * @param {string} args.CT_API_HOST optional commerceTools API host uri * @param {string} args.CT_AUTH_HOST optional commerceTools AUTH host uri * * @param {string} args.id the id of a cart */ function getPaymentMethods(args) { const validator = new InputValidator(args, ERROR_TYPE); validator .checkArguments() .mandatoryParameter('id'); if (validator.error) { return validator.buildErrorResponse(); } return Promise.resolve(_generateMockResponse()); }
/** * This action retrieves a customer by id. * * @param {string} args.CT_PROJECTKEY commerceTools project key * @param {string} args.CT_CLIENTID commerceTools client id * @param {string} args.CT_CLIENTSECRET commerceTools client secret * @param {string} args.CT_API_HOST optional commerceTools API host uri * @param {string} args.CT_AUTH_HOST optional commerceTools AUTH host uri * @param {string} args.id the id of the customer * * @return {Customer} a Customer object */ function getCustomerById(args) { const validator = new InputValidator(args, ERROR_TYPE); validator.checkArguments().mandatoryParameter('id') if (validator.error) { return validator.buildErrorResponse(); } let languageParser = new LanguageParser(args); let customerMapper = new CustomerMapper(languageParser); const commerceToolsCustomer = new CommerceToolsCustomer(args, createClient, customerMapper.mapCustomer.bind(customerMapper)); return commerceToolsCustomer .byId(args.id) .get(); }
/** * This action creates a payment and adds it to a cart. * * @param {string} args.CT_PROJECTKEY commerceTools project key * @param {string} args.CT_CLIENTID commerceTools client id * @param {string} args.CT_CLIENTSECRET commerceTools client secret * @param {string} args.CT_API_HOST optional commerceTools API host uri * @param {string} args.CT_AUTH_HOST optional commerceTools AUTH host uri * * @param {string} args.id cart id * @param {Payment} args.payment a CCIF payment object * */ function postPayment(args) { const validator = new InputValidator(args, ERROR_TYPE); validator .checkArguments() .mandatoryParameter('id') .mandatoryParameter('payment'); if (validator.error) { return validator.buildErrorResponse(); } let languageParser = new LanguageParser(args); let cartMapper = new CartMapper(languageParser); let paymentMapper = new PaymentMapper(); const cartPaymentClient = new CommerceToolsCartPayment(args, createClient, cartMapper.mapCart.bind(cartMapper), paymentMapper.mapPayment.bind(paymentMapper), paymentMapper.mapPaymentDraft.bind(paymentMapper), false); return cartPaymentClient.addCartPayment(args.id, args.payment); }