diff --git a/apps/web/src/components/settings/AddSesSettings.tsx b/apps/web/src/components/settings/AddSesSettings.tsx index b1dc05d..f43825d 100644 --- a/apps/web/src/components/settings/AddSesSettings.tsx +++ b/apps/web/src/components/settings/AddSesSettings.tsx @@ -21,8 +21,11 @@ import { toast } from "@unsend/ui/src/toaster"; const FormSchema = z.object({ region: z.string(), unsendUrl: z.string().url(), - sendRate: z.number(), - transactionalQuota: z.number().min(0).max(100), + sendRate: z.preprocess((val) => Number(val), z.number()), + transactionalQuota: z.preprocess( + (val) => Number(val), + z.number().min(0).max(100) + ), }); type SesSettingsProps = { diff --git a/apps/web/src/server/service/email-queue-service.ts b/apps/web/src/server/service/email-queue-service.ts index 7c94a99..aaf853d 100644 --- a/apps/web/src/server/service/email-queue-service.ts +++ b/apps/web/src/server/service/email-queue-service.ts @@ -54,14 +54,19 @@ export class EmailQueueService { ); const transactionalWorker = this.transactionalWorker.get(region); if (transactionalWorker) { - transactionalWorker.concurrency = transactionalQuota; + transactionalWorker.concurrency = + transactionalQuota !== 0 ? transactionalQuota : 1; } } else { console.log( `[EmailQueueService]: Creating transactional queue for region ${region} with quota ${transactionalQuota}` ); const { queue: transactionalQueue, worker: transactionalWorker } = - createQueueAndWorker(region, transactionalQuota ?? 1, "transaction"); + createQueueAndWorker( + region, + transactionalQuota !== 0 ? transactionalQuota : 1, + "transaction" + ); this.transactionalQueue.set(region, transactionalQueue); this.transactionalWorker.set(region, transactionalWorker); } @@ -72,14 +77,18 @@ export class EmailQueueService { ); const marketingWorker = this.marketingWorker.get(region); if (marketingWorker) { - marketingWorker.concurrency = marketingQuota; + marketingWorker.concurrency = marketingQuota !== 0 ? marketingQuota : 1; } } else { console.log( `[EmailQueueService]: Creating marketing queue for region ${region} with quota ${marketingQuota}` ); const { queue: marketingQueue, worker: marketingWorker } = - createQueueAndWorker(region, marketingQuota ?? 1, "marketing"); + createQueueAndWorker( + region, + marketingQuota !== 0 ? marketingQuota : 1, + "marketing" + ); this.marketingQueue.set(region, marketingQueue); this.marketingWorker.set(region, marketingWorker); }