/opt/mawid/apps/api/src/whatsapp
NameSizeModeActions
owner-notifier.service.ts17450644editdlrm
wa-core.module.ts13520644editdlrm
wa-http.client.ts17360644editdlrm
wa-inbound.service.spec.ts50660644editdlrm
wa-inbound.service.ts54310644editdlrm
wa-outbound.worker.ts27230644editdlrm
wa-queue.ts4470644editdlrm
wa-sender.service.ts49590644editdlrm
wa-signature.spec.ts12640644editdlrm
wa-signature.ts6620644editdlrm
wa-types.ts16830644editdlrm
wa-webhook.controller.spec.ts26840644editdlrm
wa-webhook.controller.ts23080644editdlrm
wa-window.spec.ts8600644editdlrm
wa-window.ts5090644editdlrm
whatsapp.module.ts5790644editdlrm
Edit: /opt/mawid/apps/api/src/whatsapp/wa-core.module.ts (1352B)
import { Module, type Provider } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { Queue } from 'bullmq'; import IORedis from 'ioredis'; import { OwnerNotifierService } from './owner-notifier.service'; import { MetaWaHttpClient, StubWaHttpClient, WA_HTTP_CLIENT } from './wa-http.client'; import { WaOutboundWorker } from './wa-outbound.worker'; import { WA_OUTBOUND_QUEUE, WA_OUTBOUND_QUEUE_NAME } from './wa-queue'; import { WaSenderService } from './wa-sender.service'; const httpClientProvider: Provider = { provide: WA_HTTP_CLIENT, inject: [ConfigService], useFactory: (config: ConfigService) => { const token = config.get('WA_ACCESS_TOKEN'); return token ? new MetaWaHttpClient(token) : new StubWaHttpClient(); }, }; const queueProvider: Provider = { provide: WA_OUTBOUND_QUEUE, inject: [ConfigService], useFactory: (config: ConfigService) => new Queue(WA_OUTBOUND_QUEUE_NAME, { connection: new IORedis(config.getOrThrow('REDIS_URL'), { maxRetriesPerRequest: null, }), }), }; /** Outbound WhatsApp plumbing without inbound/agent dependencies. */ @Module({ providers: [httpClientProvider, queueProvider, WaSenderService, WaOutboundWorker, OwnerNotifierService], exports: [WaSenderService, OwnerNotifierService], }) export class WaCoreModule {}