diff --git a/packages/server/src/loaders/jobs.ts b/packages/server/src/loaders/jobs.ts index 075005bf1..58da23291 100644 --- a/packages/server/src/loaders/jobs.ts +++ b/packages/server/src/loaders/jobs.ts @@ -31,5 +31,4 @@ export default ({ agenda }: { agenda: Agenda }) => { agenda.start().then(() => { agenda.every('1 hours', 'delete-expired-imported-files', {}); }); - agenda.start(); }; diff --git a/packages/server/src/services/Subscription/LemonSqueezyWebhooks.ts b/packages/server/src/services/Subscription/LemonSqueezyWebhooks.ts index 49899ec5b..4301b924a 100644 --- a/packages/server/src/services/Subscription/LemonSqueezyWebhooks.ts +++ b/packages/server/src/services/Subscription/LemonSqueezyWebhooks.ts @@ -1,5 +1,5 @@ import { getPrice } from '@lemonsqueezy/lemonsqueezy.js'; -import { ServiceError } from '@/exceptions'; +import config from '@/config'; import { Inject, Service } from 'typedi'; import { compareSignatures, @@ -29,10 +29,10 @@ export class LemonSqueezyWebhooks { ): Promise { configureLemonSqueezy(); - if (!process.env.LEMONSQUEEZY_WEBHOOK_SECRET) { - throw new ServiceError('Lemon Squeezy Webhook Secret not set in .env'); + if (!config.lemonSqueezy.webhookSecret) { + throw new Error('Lemon Squeezy Webhook Secret not set in .env'); } - const secret = process.env.LEMONSQUEEZY_WEBHOOK_SECRET; + const secret = config.lemonSqueezy.webhookSecret; const hmacSignature = createHmacSignature(secret, rawData); if (!compareSignatures(hmacSignature, signature)) { @@ -42,14 +42,15 @@ export class LemonSqueezyWebhooks { if (webhookHasMeta(data)) { // Non-blocking call to process the webhook event. void this.processWebhookEvent(data); + } else { + throw new Error('Data invalid'); } - throw new Error('Data invalid'); } /** * This action will process a webhook event in the database. */ - async processWebhookEvent(eventBody) { + private async processWebhookEvent(eventBody) { let processingError = ''; const webhookEvent = eventBody.meta.event_name; @@ -88,6 +89,7 @@ export class LemonSqueezyWebhooks { ? priceData.data?.data.attributes.unit_price_decimal : priceData.data?.data.attributes.unit_price; + // Create a new subscription of the tenant. if (webhookEvent === 'subscription_created') { await this.subscriptionService.newSubscribtion( tenantId, diff --git a/packages/server/src/system/models/index.ts b/packages/server/src/system/models/index.ts index 4c21f755c..e96fdd8ff 100644 --- a/packages/server/src/system/models/index.ts +++ b/packages/server/src/system/models/index.ts @@ -1,6 +1,5 @@ import Plan from './Subscriptions/Plan'; import PlanSubscription from './Subscriptions/PlanSubscription'; -import License from './Subscriptions/License'; import Tenant from './Tenant'; import TenantMetadata from './TenantMetadata'; import SystemUser from './SystemUser'; @@ -12,7 +11,6 @@ import { Import } from './Import'; export { Plan, PlanSubscription, - License, Tenant, TenantMetadata, SystemUser,