Adds createFromCart and order.completed subscribers

This commit is contained in:
olivermrbl committed 2020-07-09 18:16:45 +02:00
1 parent 1e48ab3d74
commit 08cf7c7f2b
8 files changed
+119 -10

No files matched your search

@@ -12,19 +12,31 @@ export default async (req, res) => {
const paymentIntent = event.data.object
const orderService = req.scope.resolve("orderService")
// handle payment intent events
switch (event.type) {
case "payment_intent.succeeded":
const cartId = paymentIntent.metadata.cart_id
const order = await orderService.retrieveByCartId(cartId)
await orderService.update(order._id, {
payment_status: "captured",
})
break
case "payment_intent.canceled":
break
case "payment_intent.created":
case "payment_intent.cancelled":
const cartId = paymentIntent.metadata.cart_id
const order = await orderService.retrieveByCartId(cartId)
await orderService.update(order._id, {
status: "cancelled",
})
break
case "payment_intent.payment_failed":
// TODO: Not implemented yet
break
case "payment_intent.amount_capturable_updated":
break
case "payment_intent.processing":
// TODO: Not implemented yet
break
default:
res.status(400)
@@ -104,6 +104,8 @@ class StripeProviderService extends PaymentService {
customer: stripeCustomerId,
amount: amount * 100, // Stripe amount is in cents
currency: currency_code,
capture_method: "manual",
metadata: { cart_id: cart._id },
})
return paymentIntent
@@ -10,13 +10,14 @@ class CartSubscriber {
this.stripeProviderService_ = stripeProviderService
this.eventBus_ = eventBusService
this.eventBus_.subscribe("cart.created", (data) => {
console.log(data)
})
this.eventBus_.subscribe("cart.customer_updated", async (cart) => {
await this.onCustomerUpdated(cart)
})
this.eventBus_.subscribe("order.completed", async (order) => {
const paymentData = order.payment_method.data
await this.stripeProviderService_.capturePayment(paymentData)
})
}
async onCustomerUpdated(cart) {