From 42cb9c54990fa97dc62520a5066f5ada2f4f275f Mon Sep 17 00:00:00 2001 From: Nevo David Date: Mon, 28 Apr 2025 14:39:56 +0700 Subject: [PATCH] feat: in case of error, show it --- apps/backend/src/api/api.module.ts | 1 - .../src/api/routes/stripe.controller.ts | 44 +++++++++++-------- 2 files changed, 26 insertions(+), 19 deletions(-) diff --git a/apps/backend/src/api/api.module.ts b/apps/backend/src/api/api.module.ts index e5b61622..85747cda 100644 --- a/apps/backend/src/api/api.module.ts +++ b/apps/backend/src/api/api.module.ts @@ -33,7 +33,6 @@ import { SignatureController } from '@gitroom/backend/api/routes/signature.contr import { AutopostController } from '@gitroom/backend/api/routes/autopost.controller'; import { McpService } from '@gitroom/nestjs-libraries/mcp/mcp.service'; import { McpController } from '@gitroom/backend/api/routes/mcp.controller'; -import { McpSettings } from '@gitroom/nestjs-libraries/mcp/mcp.settings'; const authenticatedController = [ UsersController, diff --git a/apps/backend/src/api/routes/stripe.controller.ts b/apps/backend/src/api/routes/stripe.controller.ts index 299b846c..260d41ec 100644 --- a/apps/backend/src/api/routes/stripe.controller.ts +++ b/apps/backend/src/api/routes/stripe.controller.ts @@ -2,6 +2,7 @@ import { Controller, Get, Header, + HttpException, Param, Post, RawBodyRequest, @@ -52,27 +53,34 @@ export class StripeController { ); // Maybe it comes from another stripe webhook - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - if (event?.data?.object?.metadata?.service !== 'gitroom' && event.type !== 'invoice.payment_succeeded') { + if ( + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + event?.data?.object?.metadata?.service !== 'gitroom' && + event.type !== 'invoice.payment_succeeded' + ) { return { ok: true }; } - switch (event.type) { - case 'invoice.payment_succeeded': - return this._stripeService.paymentSucceeded(event); - case 'checkout.session.completed': - return this._stripeService.updateOrder(event); - case 'account.updated': - return this._stripeService.updateAccount(event); - case 'customer.subscription.created': - return this._stripeService.createSubscription(event); - case 'customer.subscription.updated': - return this._stripeService.updateSubscription(event); - case 'customer.subscription.deleted': - return this._stripeService.deleteSubscription(event); - default: - return { ok: true }; + try { + switch (event.type) { + case 'invoice.payment_succeeded': + return this._stripeService.paymentSucceeded(event); + case 'checkout.session.completed': + return this._stripeService.updateOrder(event); + case 'account.updated': + return this._stripeService.updateAccount(event); + case 'customer.subscription.created': + return this._stripeService.createSubscription(event); + case 'customer.subscription.updated': + return this._stripeService.updateSubscription(event); + case 'customer.subscription.deleted': + return this._stripeService.deleteSubscription(event); + default: + return { ok: true }; + } + } catch (e) { + throw new HttpException(e, 500); } }