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