UNPKG

@mia-burton/klarna-node

Version:
57 lines (56 loc) 3.11 kB
import { Address, OrderLine, PaymentSession } from "../types" import { PaymentSession as KlarnaPaymentSession } from "../types/klarna" export class PaymentSessionMapper { public map(klarnaSession: KlarnaPaymentSession): PaymentSession { const session = new PaymentSession() if (klarnaSession.billing_address) { session.billingAddress = new Address() session.billingAddress.city = klarnaSession.billing_address.city session.billingAddress.country = klarnaSession.billing_address.country session.billingAddress.email = klarnaSession.billing_address.email session.billingAddress.firstName = klarnaSession.billing_address.given_name session.billingAddress.lastName = klarnaSession.billing_address.family_name session.billingAddress.phone = klarnaSession.billing_address.phone session.billingAddress.postalCode = klarnaSession.billing_address.postal_code session.billingAddress.region = klarnaSession.billing_address.region session.billingAddress.streetAddress = klarnaSession.billing_address.street_address session.billingAddress.streetAddress2 = klarnaSession.billing_address.street_address2 } if (klarnaSession.shipping_address) { session.shippingAddress = new Address() session.shippingAddress.city = klarnaSession.shipping_address.city session.shippingAddress.country = klarnaSession.shipping_address.country session.shippingAddress.email = klarnaSession.shipping_address.email session.shippingAddress.firstName = klarnaSession.shipping_address.given_name session.shippingAddress.lastName = klarnaSession.shipping_address.family_name session.shippingAddress.phone = klarnaSession.shipping_address.phone session.shippingAddress.postalCode = klarnaSession.shipping_address.postal_code session.shippingAddress.region = klarnaSession.shipping_address.region session.shippingAddress.streetAddress = klarnaSession.shipping_address.street_address session.shippingAddress.streetAddress2 = klarnaSession.shipping_address.street_address2 } session.locale = klarnaSession.locale session.mertchantReference = klarnaSession.merchant_reference1 session.urls = { confirmation: klarnaSession.merchant_urls.confirmation, authorization: klarnaSession.merchant_urls.authorization, notification: klarnaSession.merchant_urls.notification, push: klarnaSession.merchant_urls.push } session.amount = klarnaSession.order_amount / 100 session.lines = klarnaSession.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 }) session.country = klarnaSession.purchase_country session.currency = klarnaSession.purchase_currency session.authorizationToken = klarnaSession.authorization_token session.clientToken = klarnaSession.client_token session.status = klarnaSession.status return session } }