All files / src/platform/communications communications.module.ts

0% Statements 0/13
100% Branches 0/0
100% Functions 0/0
0% Lines 0/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100                                                                                                                                                                                                       
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { BullModule } from '@nestjs/bullmq';
 
import {
  CommunicationTemplate,
  CommunicationTemplateSchema,
  CommunicationProvider,
  CommunicationProviderSchema,
  CommunicationCampaign,
  CommunicationCampaignSchema,
  CommunicationBatch,
  CommunicationBatchSchema,
  CommunicationMessage,
  CommunicationMessageSchema,
  CommunicationRecipient,
  CommunicationRecipientSchema,
  CommunicationDelivery,
  CommunicationDeliverySchema,
  CommunicationPreference,
  CommunicationPreferenceSchema,
  CommunicationSuppression,
  CommunicationSuppressionSchema,
  CommunicationConsent,
  CommunicationConsentSchema,
  CommunicationAnalytics,
  CommunicationAnalyticsSchema,
} from './schemas/communication.schema';
 
import {
  PushInstallation,
  PushInstallationSchema,
  PushTopicSubscription,
  PushTopicSubscriptionSchema,
  PushDelivery,
  PushDeliverySchema,
} from './push/schemas/push.schema';
import {
  WebPushSubscription,
  WebPushSubscriptionSchema,
  WebPushDelivery,
  WebPushDeliverySchema,
  WebPushConfiguration,
  WebPushConfigurationSchema,
} from './web-push/schemas/web-push.schema';
 
import { CommunicationHubService } from './communication-hub.service';
import { PushNotificationService } from './push/push.service';
import { WebPushService } from './web-push/web-push.service';
import { EventBusService } from '../events/event-bus.service';
 
@Module({
  imports: [
    MongooseModule.forFeature([
      { name: CommunicationTemplate.name, schema: CommunicationTemplateSchema },
      { name: CommunicationProvider.name, schema: CommunicationProviderSchema },
      { name: CommunicationCampaign.name, schema: CommunicationCampaignSchema },
      { name: CommunicationBatch.name, schema: CommunicationBatchSchema },
      { name: CommunicationMessage.name, schema: CommunicationMessageSchema },
      {
        name: CommunicationRecipient.name,
        schema: CommunicationRecipientSchema,
      },
      { name: CommunicationDelivery.name, schema: CommunicationDeliverySchema },
      {
        name: CommunicationPreference.name,
        schema: CommunicationPreferenceSchema,
      },
      {
        name: CommunicationSuppression.name,
        schema: CommunicationSuppressionSchema,
      },
      { name: CommunicationConsent.name, schema: CommunicationConsentSchema },
      {
        name: CommunicationAnalytics.name,
        schema: CommunicationAnalyticsSchema,
      },
 
      { name: PushInstallation.name, schema: PushInstallationSchema },
      { name: PushTopicSubscription.name, schema: PushTopicSubscriptionSchema },
      { name: PushDelivery.name, schema: PushDeliverySchema },
 
      { name: WebPushSubscription.name, schema: WebPushSubscriptionSchema },
      { name: WebPushDelivery.name, schema: WebPushDeliverySchema },
      { name: WebPushConfiguration.name, schema: WebPushConfigurationSchema },
    ]),
    BullModule.registerQueue({
      name: 'notification.dispatch',
    }),
  ],
  providers: [
    CommunicationHubService,
    PushNotificationService,
    WebPushService,
    EventBusService,
  ],
  exports: [CommunicationHubService, PushNotificationService, WebPushService],
})
export class CommunicationsModule {}