Robustness

This commit is contained in:
Sebastian Rindom
2020-07-14 17:23:43 +02:00
parent 44c7177e43
commit 312e405588
21 changed files with 152 additions and 74 deletions
@@ -16,8 +16,9 @@ export default async (req, res) => {
address_1: shipping_address.street_address,
address_2: shipping_address.street_address2,
city: shipping_address.city,
country_code: shipping_address.country,
country_code: shipping_address.country.toUpperCase(),
postal_code: shipping_address.postal_code,
phone: shipping_address.phone
}
await cartService.updateShippingAddress(cart._id, updatedAddress)
@@ -1,4 +1,5 @@
import { Router } from "express"
import bodyParser from "body-parser"
import middlewares from "../../middlewares"
const route = Router()
@@ -6,6 +7,7 @@ const route = Router()
export default (app) => {
app.use("/klarna", route)
route.use(bodyParser.json())
route.post("/address", middlewares.wrap(require("./address").default))
route.post("/shipping", middlewares.wrap(require("./shipping").default))
route.post("/push", middlewares.wrap(require("./push").default))
@@ -10,15 +10,14 @@ export default async (req, res) => {
const klarnaOrder = await klarnaProviderService.retrieveCompletedOrder(
klarna_order_id
)
).then(({ data }) => data)
const cartId = klarnaOrder.merchant_data
try {
const order = await orderService.retrieveByCartId(cartId)
await klarnaProviderService.acknowledgeOrder(klarnaOrder.order_id, order._id)
} catch (err) {
if (err.type === MeudsaError.Types.NOT_FOUND) {
if (err.type === MedusaError.Types.NOT_FOUND) {
const cart = await cartService.retrieve(cartId)
const order = await orderService.createFromCart(cart)
await klarnaProviderService.acknowledgeOrder(klarnaOrder.order_id, order._id)
@@ -26,7 +26,7 @@ class KlarnaProviderService extends PaymentService {
this.klarnaOrderManagementUrl_ = "/ordermanagement/v1/orders"
this.backendUrl_ =
process.env.BACKEND_URL || "https://2fe4e28015f5.ngrok.io"
process.env.BACKEND_URL || "https://7e9a5bc2a2eb.ngrok.io"
this.totalsService_ = totalsService
@@ -155,7 +155,7 @@ class KlarnaProviderService extends PaymentService {
terms: this.options_.merchant_urls.terms,
checkout: this.options_.merchant_urls.checkout,
confirmation: this.options_.merchant_urls.confirmation,
push: `${this.backendUrl_}/klarna/push?klarna_order_id={checkout.order_id}`,
push: `${this.backendUrl_}/klarna/push?klarna_order_id={checkout.order.id}`,
shipping_option_update: `${this.backendUrl_}/klarna/shipping`,
address_update: `${this.backendUrl_}/klarna/address`,
}
@@ -266,12 +266,20 @@ class KlarnaProviderService extends PaymentService {
* @param {string} klarnaOrderId - id of the order to acknowledge
* @returns {string} id of acknowledged order
*/
async acknowledgeOrder(klarnaOrderId) {
async acknowledgeOrder(klarnaOrderId, orderId) {
try {
await this.klarna_.post(
`${this.klarnaOrderManagementUrl_}/${klarnaOrderId}/acknowledge`,
{}
`${this.klarnaOrderManagementUrl_}/${klarnaOrderId}/acknowledge`
)
await this.klarna_.patch(
`${this.klarnaOrderManagementUrl_}/${klarnaOrderId}/merchant-references`,
{
merchant_reference1: orderId
}
)
return klarnaOrderId
} catch (error) {