@mia-burton/klarna-node
Version:
A Node.js module for Klarna
55 lines (54 loc) • 2.51 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.OrderBodyBuilder = void 0;
const utils_1 = require("../utils");
class OrderBodyBuilder {
build(session) {
return {
billing_address: session.billingAddress ? {
city: session.billingAddress.city,
country: session.billingAddress.country,
email: session.billingAddress.email,
family_name: session.billingAddress.lastName,
given_name: session.billingAddress.firstName,
phone: session.billingAddress.phone,
postal_code: session.billingAddress.postalCode,
region: session.billingAddress.region,
street_address: session.billingAddress.streetAddress,
street_address2: session.billingAddress.streetAddress2,
} : {},
shipping_address: session.shippingAddress ? {
city: session.shippingAddress.city,
country: session.shippingAddress.country,
email: session.shippingAddress.email,
family_name: session.shippingAddress.lastName,
given_name: session.shippingAddress.firstName,
phone: session.shippingAddress.phone,
postal_code: session.shippingAddress.postalCode,
region: session.shippingAddress.region,
street_address: session.shippingAddress.streetAddress,
street_address2: session.shippingAddress.streetAddress2,
} : {},
locale: session.locale,
merchant_reference1: session.mertchantReference,
merchant_urls: {
confirmation: session.urls.confirmation,
authorization: session.urls.authorization,
notification: session.urls.notification,
push: session.urls.push
},
order_amount: utils_1.Utils.formatPrice(session.amount),
order_lines: session.lines.map((line) => {
return {
name: line.name,
total_amount: utils_1.Utils.formatPrice(line.totalAmount),
quantity: line.quantity,
unit_price: utils_1.Utils.formatPrice(line.unitPrice)
};
}),
purchase_country: session.country,
purchase_currency: session.currency,
};
}
}
exports.OrderBodyBuilder = OrderBodyBuilder;