@mia-burton/klarna-node
Version:
A Node.js module for Klarna
51 lines (50 loc) • 2.71 kB
text/typescript
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
}
}