fix: paypal order
This commit is contained in:
@@ -40,15 +40,40 @@ export default async (req, res) => {
|
|||||||
const orderService = req.scope.resolve("orderService")
|
const orderService = req.scope.resolve("orderService")
|
||||||
|
|
||||||
await manager.transaction(async (m) => {
|
await manager.transaction(async (m) => {
|
||||||
const order = await orderService
|
const cart = await cartService.withTransaction(m).retrieve(cartId)
|
||||||
.withTransaction(m)
|
|
||||||
.retrieveByCartId(cartId)
|
|
||||||
.catch((_) => undefined)
|
|
||||||
|
|
||||||
if (!order) {
|
switch (cart.type) {
|
||||||
await cartService.withTransaction(m).setPaymentSession(cartId, "paypal")
|
case "swap": {
|
||||||
await cartService.withTransaction(m).authorizePayment(cartId)
|
const swap = await swapService
|
||||||
await orderService.withTransaction(m).createFromCart(cartId)
|
.withTransaction(m)
|
||||||
|
.retrieveByCartId(cartId)
|
||||||
|
.catch((_) => undefined)
|
||||||
|
|
||||||
|
if (swap && swap.confirmed_at === null) {
|
||||||
|
await cartService
|
||||||
|
.withTransaction(m)
|
||||||
|
.setPaymentSession(cartId, "paypal")
|
||||||
|
await cartService.withTransaction(m).authorizePayment(cartId)
|
||||||
|
await swapService.withTransaction(m).registerCartCompletion(swap.id)
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
default: {
|
||||||
|
const order = await orderService
|
||||||
|
.withTransaction(m)
|
||||||
|
.retrieveByCartId(cartId)
|
||||||
|
.catch((_) => undefined)
|
||||||
|
|
||||||
|
if (!order) {
|
||||||
|
await cartService
|
||||||
|
.withTransaction(m)
|
||||||
|
.setPaymentSession(cartId, "paypal")
|
||||||
|
await cartService.withTransaction(m).authorizePayment(cartId)
|
||||||
|
await orderService.withTransaction(m).createFromCart(cartId)
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user