Klarna orders

This commit is contained in:
Sebastian Rindom
2020-07-10 16:30:32 +02:00
parent d930d00723
commit b45fcae6fe
3 changed files with 66 additions and 61 deletions
@@ -1,7 +1,10 @@
import { MedusaError } from "medusa-core-utils"
export default async (req, res) => {
const { klarna_order_id } = req.query
try {
const cartService = req.scope.resolve("cartService")
const orderService = req.scope.resolve("orderService")
const klarnaProviderService = req.scope.resolve("pp_klarna")
@@ -10,9 +13,21 @@ export default async (req, res) => {
)
const cartId = klarnaOrder.merchant_data
const order = await orderService.list({ cart_id: cartId })[0]
await klarnaProviderService.acknowledgeOrder(klarnaOrder.id, order._id)
try {
const order = await orderService.retrieveByCartId(cartId)
await klarnaProviderService.acknowledgeOrder(klarnaOrder.id, order._id)
} catch (err) {
if (err.type === MeudsaError.Types.NOT_FOUND) {
let cart = await cartService.retrieve(cartId)
const method = cart.payment_sessions.find(p => p.provider_id === "klarna")
cart = await cartService.setPaymentMethod(cart._id, method)
const order = await orderService.createFromCart(cart)
await klarnaProviderService.acknowledgeOrder(klarnaOrder.id, order._id)
}
}
res.sendStatus(200)
} catch (error) {
throw error