UNPKG

@mia-burton/klarna-node

Version:
53 lines (52 loc) 2.11 kB
import { PaymentSession } from "../types" import { OrderInput } from "../types/klarna" import { Utils } from "../utils" export class OrderBodyBuilder { public build(session: PaymentSession): OrderInput { 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.formatPrice(session.amount), order_lines: session.lines.map((line) =>{ return { name: line.name, total_amount: Utils.formatPrice(line.totalAmount), quantity: line.quantity, unit_price: Utils.formatPrice(line.unitPrice) } }), purchase_country: session.country, purchase_currency: session.currency, } } }