@viyet/magento-client
Version:
Sotheby's Home Custom Magento API Client
179 lines • 7.26 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
var Checkout;
(function (Checkout) {
class API {
/**
* Products handler class
*
* @param transport - API transport handler
*/
constructor(transport) {
this.transport = transport;
}
/**
* Gets current order
*
* @param headers - Request headers
* @param session - Checkout Session
*
* @returns A Promise that resolves to an object with product create result
*/
getCurrentOrder(headers, session) {
return __awaiter(this, void 0, void 0, function* () {
const route = {
key: "checkout.getCurrentOrder",
params: { form_key: session.form_key },
transforms: { formKey: session.form_key },
};
return yield this.transport.getFromApiRoute(route, headers);
});
}
/**
* Applies coupon code to current order
*
* @param headers - Request headers
* @param session - Checkout Session
* @param couponCode - Coupon Code to apply
*
* @returns A Promise that resolves to an apply coupon result
*/
applyCouponCode(headers, session, couponCode) {
return __awaiter(this, void 0, void 0, function* () {
headers["Content-Type"] = "application/x-www-form-urlencoded";
const route = {
key: "checkout.applyCoupon",
params: { form_key: session.form_key },
transforms: { formKey: session.form_key },
};
const data = {
couponCode,
remove: 0,
};
return yield this.transport.postToApiRoute(route, data, headers);
});
}
/**
* Removes coupon from current order
*
* @param headers - Request headers
* @param session - Checkout Session
*
* @returns A Promise that resolves to an apply coupon result
*/
removeCoupon(headers, session) {
return __awaiter(this, void 0, void 0, function* () {
headers["Content-Type"] = "application/x-www-form-urlencoded";
const route = {
key: "checkout.removeCoupon",
params: { form_key: session.form_key },
transforms: { formKey: session.form_key },
};
const data = {
remove: 1,
};
return yield this.transport.postToApiRoute(route, data, headers);
});
}
/**
* Gets saved payments
*
* @param headers - Request headers
* @param session - Checkout Session
*
* @returns A Promise that resolves to an object with product create result
*/
getPayments(headers, session) {
return __awaiter(this, void 0, void 0, function* () {
const route = {
key: "checkout.getPayments",
params: { form_key: session.form_key },
transforms: { formKey: session.form_key },
};
return yield this.transport.getFromApiRoute(route, headers);
});
}
/**
* Gets form_key
*
* @param headers - Request headers
*
* @returns form_key value as a string
*/
getFormKey(headers) {
return __awaiter(this, void 0, void 0, function* () {
const route = {
key: "checkout.getFormKey",
};
return yield this.transport.getFromApiRoute(route, headers).then(res => res.data.form_key);
});
}
/**
* Create new shipping address
*
* @param headers - Request headers
* @param session - Checkout Session
* @param addressFormInput - Address Form Input
*
* @returns A Promise that resolves to the newly created shipping address
*/
createAddress(headers, session, addressFormInput) {
return __awaiter(this, void 0, void 0, function* () {
const route = {
key: "checkout.saveAddress",
transforms: { formKey: session.form_key },
};
const data = addressFormInput;
return yield this.transport.postToApiRoute(route, data, headers);
});
}
/**
* Edit shipping address
*
* @param headers - Request headers
* @param session - Checkout Session
* @param addressFormInput - Address Form Input
* @param shippingAddressId - Shipping Address Id
*
* @returns A Promise that resolves to the edited shipping address
*/
editAddress(headers, session, shippingAddressId, addressFormInput) {
return __awaiter(this, void 0, void 0, function* () {
const route = {
key: "checkout.saveAddress",
transforms: { formKey: session.form_key },
};
const data = Object.assign({}, addressFormInput, { shipping_address_id: shippingAddressId });
return yield this.transport.postToApiRoute(route, data, headers);
});
}
/**
* Get all shipping address
*
* @param headers - Request headers
* @param session - Checkout Session
*
* @returns A Promise that resolves to all of a logged in customer's shipping addresses
*/
getAddresses(headers, session) {
return __awaiter(this, void 0, void 0, function* () {
const route = {
key: "checkout.getAddresses",
params: { form_key: session.form_key },
transforms: { formKey: session.form_key },
};
return yield this.transport.getFromApiRoute(route, headers);
});
}
}
Checkout.API = API;
})(Checkout = exports.Checkout || (exports.Checkout = {}));
//# sourceMappingURL=Checkout.js.map