UNPKG

@mia-burton/klarna-node

Version:
51 lines (50 loc) 2.71 kB
import { Address, FraudStatus, Order, OrderLine } from "../types"; import { Order as KlarnaOrder } from "../types/klarna/order.interface" export class OrderMapper { public map(klarnaOrder: KlarnaOrder): Order { const order = new Order() order.capturedAmount = klarnaOrder.captured_amount order.fraudStatus = klarnaOrder.fraud_status as unknown as FraudStatus if (klarnaOrder.billing_address) { order.billingAddress = new Address() order.billingAddress.city = klarnaOrder.billing_address.city order.billingAddress.country = klarnaOrder.billing_address.country order.billingAddress.email = klarnaOrder.billing_address.email order.billingAddress.firstName = klarnaOrder.billing_address.given_name order.billingAddress.lastName = klarnaOrder.billing_address.family_name order.billingAddress.phone = klarnaOrder.billing_address.phone order.billingAddress.postalCode = klarnaOrder.billing_address.postal_code order.billingAddress.region = klarnaOrder.billing_address.region order.billingAddress.streetAddress = klarnaOrder.billing_address.street_address order.billingAddress.streetAddress2 = klarnaOrder.billing_address.street_address2 } if (klarnaOrder.shipping_address) { order.shippingAddress = new Address() order.shippingAddress.city = klarnaOrder.shipping_address.city order.shippingAddress.country = klarnaOrder.shipping_address.country order.shippingAddress.email = klarnaOrder.shipping_address.email order.shippingAddress.firstName = klarnaOrder.shipping_address.given_name order.shippingAddress.lastName = klarnaOrder.shipping_address.family_name order.shippingAddress.phone = klarnaOrder.shipping_address.phone order.shippingAddress.postalCode = klarnaOrder.shipping_address.postal_code order.shippingAddress.region = klarnaOrder.shipping_address.region order.shippingAddress.streetAddress = klarnaOrder.shipping_address.street_address order.shippingAddress.streetAddress2 = klarnaOrder.shipping_address.street_address2 } order.locale = klarnaOrder.locale order.mertchantReference = klarnaOrder.merchant_reference1 order.amount = klarnaOrder.order_amount / 100 order.lines = klarnaOrder.order_lines.map((line) => { const orderLine = new OrderLine() orderLine.name = line.name orderLine.totalAmount = line.total_amount / 100 orderLine.quantity = line.quantity orderLine.unitPrice = line.unit_price / 100 return orderLine }) order.country = klarnaOrder.purchase_country order.currency = klarnaOrder.purchase_currency order.status = klarnaOrder.status return order } }