channelape-sdk
Version:
A client for interacting with ChannelApe's API
84 lines • 3.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const trimObject_1 = require("../../utils/trimObject");
class JsonOrderFormatterService {
static formatOrder(rawOrder) {
let order;
if (typeof rawOrder === 'string') {
order = JSON.parse(rawOrder);
}
else {
order = rawOrder;
}
order.purchasedAt = new Date(order.purchasedAt);
if (order.canceledAt != null) {
order.canceledAt = new Date(order.canceledAt);
}
order.updatedAt = new Date(order.updatedAt);
order.createdAt = new Date(order.createdAt);
order.status = order.status;
order.totalPrice = Number(order.totalPrice);
order.subtotalPrice = Number(order.subtotalPrice);
order.totalShippingPrice = Number(order.totalShippingPrice);
if (typeof order.totalShippingTax !== 'undefined') {
order.totalShippingTax = Number(order.totalShippingTax);
}
order.totalTax = Number(order.totalTax);
order.totalGrams = Number(order.totalGrams);
order.lineItems = order.lineItems.map(JsonOrderFormatterService.formatLineItem);
order.fulfillments = order.fulfillments.map((f) => JsonOrderFormatterService.formatFulfillment(f));
if (order.refunds) {
order.refunds = order.refunds.map((r) => JsonOrderFormatterService.formatRefund(r));
}
else {
order.refunds = [];
}
return (0, trimObject_1.default)(order);
}
static formatFulfillment(fulfillment) {
fulfillment.lineItems = fulfillment.lineItems.map(JsonOrderFormatterService.formatLineItem);
if (fulfillment.shippedAt) {
fulfillment.shippedAt = new Date(fulfillment.shippedAt);
}
return fulfillment;
}
static formatLineItem(lineItem) {
if (typeof lineItem.grams !== 'undefined') {
lineItem.grams = Number(lineItem.grams);
}
if (typeof lineItem.price !== 'undefined') {
lineItem.price = Number(lineItem.price);
}
if (typeof lineItem.taxes !== 'undefined') {
lineItem.taxes = lineItem.taxes.map(JsonOrderFormatterService.formatLineItemTax);
}
return lineItem;
}
static formatLineItemTax(tax) {
tax.price = Number(tax.price);
tax.rate = tax.rate ? Number(tax.rate) : undefined;
return tax;
}
static formatRefund(refund) {
if (typeof refund.lineItems !== 'undefined') {
refund.lineItems = refund.lineItems.map(JsonOrderFormatterService.formatLineItem);
}
if (typeof refund.transactions !== 'undefined') {
refund.transactions = refund.transactions.map(JsonOrderFormatterService.formatTransaction);
}
if (typeof refund.adjustments !== 'undefined') {
refund.adjustments = refund.adjustments.map(JsonOrderFormatterService.formatAdjustment);
}
return refund;
}
static formatTransaction(transaction) {
transaction.amount = Number(transaction.amount);
return transaction;
}
static formatAdjustment(adjustment) {
adjustment.amount = Number(adjustment.amount);
return adjustment;
}
}
exports.default = JsonOrderFormatterService;
//# sourceMappingURL=JsonOrderFormatterService.js.map