diff --git a/be/apps/core/src/modules/platform/auth/auth.provider.ts b/be/apps/core/src/modules/platform/auth/auth.provider.ts index 931c154c..5b7db1d8 100644 --- a/be/apps/core/src/modules/platform/auth/auth.provider.ts +++ b/be/apps/core/src/modules/platform/auth/auth.provider.ts @@ -270,32 +270,36 @@ export class AuthProvider implements OnModuleInit { defaultRole: 'user', defaultBanReason: 'Spamming', }), - creem({ - apiKey: env.CREEM_API_KEY, - webhookSecret: env.CREEM_WEBHOOK_SECRET, - persistSubscriptions: true, - testMode: env.NODE_ENV !== 'production', - onCheckoutCompleted: async (data) => { - await this.handleCreemWebhook({ - event: data.webhookEventType, - metadata: this.mergeMetadata(data.metadata, data.subscription?.metadata), - status: data.subscription?.status ?? null, - defaultGrant: true, - }) - }, - // onRefundCreated: async (data: FlatRefundCreated) => { - // await this.handleCreemRefundCreated(data) - // }, - onSubscriptionCanceled: async (data) => { - await this.handleCreemSubscriptionEvent(data, true) - }, - onSubscriptionExpired: async (data) => { - await this.handleCreemSubscriptionEvent(data, true) - }, - onSubscriptionUpdate: async (data) => { - await this.handleCreemSubscriptionEvent(data, false) - }, - }), + ...(env.CREEM_API_KEY && env.CREEM_WEBHOOK_SECRET + ? [ + creem({ + apiKey: env.CREEM_API_KEY, + webhookSecret: env.CREEM_WEBHOOK_SECRET, + persistSubscriptions: true, + testMode: env.NODE_ENV !== 'production', + onCheckoutCompleted: async (data) => { + await this.handleCreemWebhook({ + event: data.webhookEventType, + metadata: this.mergeMetadata(data.metadata, data.subscription?.metadata), + status: data.subscription?.status ?? null, + defaultGrant: true, + }) + }, + // onRefundCreated: async (data: FlatRefundCreated) => { + // await this.handleCreemRefundCreated(data) + // }, + onSubscriptionCanceled: async (data) => { + await this.handleCreemSubscriptionEvent(data, true) + }, + onSubscriptionExpired: async (data) => { + await this.handleCreemSubscriptionEvent(data, true) + }, + onSubscriptionUpdate: async (data) => { + await this.handleCreemSubscriptionEvent(data, false) + }, + }), + ] + : []), ], hooks: { before: createAuthMiddleware(async (ctx) => { diff --git a/be/packages/env/src/index.ts b/be/packages/env/src/index.ts index 73762ee3..319c7278 100644 --- a/be/packages/env/src/index.ts +++ b/be/packages/env/src/index.ts @@ -25,8 +25,8 @@ export const env = createEnv({ AUTH_GATEWAY_STATE_SECRET: z.string().min(1).optional(), // Payment - CREEM_API_KEY: z.string().min(1), - CREEM_WEBHOOK_SECRET: z.string().min(1), + CREEM_API_KEY: z.string().min(1).optional(), + CREEM_WEBHOOK_SECRET: z.string().min(1).optional(), // Mail RESEND_API_KEY: z.string().min(1).optional(),