98 lines
3.5 KiB
TypeScript
98 lines
3.5 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
import { TypeOrmModule } from '@nestjs/typeorm';
|
|
import { AbstractActionHandler, Format } from '../abstract-action.handler';
|
|
import { Action } from '../action.enum';
|
|
import { AwsSharedEntitiesModule } from '../aws-shared-entities/aws-shared-entities.module';
|
|
import { ExistingActionHandlers } from '../default-action-handler/default-action-handler.constants';
|
|
import { DefaultActionHandlerProvider } from '../default-action-handler/default-action-handler.provider';
|
|
import { ExistingActionHandlersProvider } from '../default-action-handler/existing-action-handlers.provider';
|
|
import { SqsModule } from '../sqs/sqs.module';
|
|
import { CreateTopicHandler } from './create-topic.handler';
|
|
import { GetSubscriptionAttributesHandler } from './get-subscription-attributes.handler';
|
|
import { GetTopicAttributesHandler } from './get-topic-attributes.handler';
|
|
import { ListTagsForResourceHandler } from './list-tags-for-resource.handler';
|
|
import { ListTopicsHandler } from './list-topics.handler';
|
|
import { PublishHandler } from './publish.handler';
|
|
import { SetSubscriptionAttributesHandler } from './set-subscription-attributes.handler';
|
|
import { SetTopicAttributesHandler } from './set-topic-attributes.handler';
|
|
import { SnsTopicSubscription } from './sns-topic-subscription.entity';
|
|
import { SnsTopic } from './sns-topic.entity';
|
|
import { SnsHandlers } from './sns.constants';
|
|
import { SubscribeHandler } from './subscribe.handler';
|
|
import { UnsubscribeHandler } from './unsubscribe.handler';
|
|
|
|
const handlers = [
|
|
CreateTopicHandler,
|
|
GetSubscriptionAttributesHandler,
|
|
GetTopicAttributesHandler,
|
|
ListTagsForResourceHandler,
|
|
ListTopicsHandler,
|
|
PublishHandler,
|
|
SetSubscriptionAttributesHandler,
|
|
SetTopicAttributesHandler,
|
|
SubscribeHandler,
|
|
UnsubscribeHandler,
|
|
];
|
|
|
|
const actions = [
|
|
Action.SnsAddPermission,
|
|
Action.SnsCheckIfPhoneNumberIsOptedOut,
|
|
Action.SnsConfirmSubscription,
|
|
Action.SnsCreatePlatformApplication,
|
|
Action.SnsCreatePlatformEndpoint,
|
|
Action.SnsCreateSMSSandboxPhoneNumber,
|
|
Action.SnsCreateTopic,
|
|
Action.SnsDeleteEndpoint,
|
|
Action.SnsDeletePlatformApplication,
|
|
Action.SnsDeleteSMSSandboxPhoneNumber,
|
|
Action.SnsDeleteTopic,
|
|
Action.SnsGetDataProtectionPolicy,
|
|
Action.SnsGetEndpointAttributes,
|
|
Action.SnsGetPlatformApplicationAttributes,
|
|
Action.SnsGetSMSAttributes,
|
|
Action.SnsGetSMSSandboxAccountStatus,
|
|
Action.SnsGetSubscriptionAttributes,
|
|
Action.SnsGetTopicAttributes,
|
|
Action.SnsListEndpointsByPlatformApplication,
|
|
Action.SnsListOriginationNumbers,
|
|
Action.SnsListPhoneNumbersOptedOut,
|
|
Action.SnsListPlatformApplications,
|
|
Action.SnsListSMSSandboxPhoneNumbers,
|
|
Action.SnsListSubscriptions,
|
|
Action.SnsListSubscriptionsByTopic,
|
|
Action.SnsListTagsForResource,
|
|
Action.SnsListTopics,
|
|
Action.SnsOptInPhoneNumber,
|
|
Action.SnsPublish,
|
|
Action.SnsPublishBatch,
|
|
Action.SnsPutDataProtectionPolicy,
|
|
Action.SnsRemovePermission,
|
|
Action.SnsSetEndpointAttributes,
|
|
Action.SnsSetPlatformApplicationAttributes,
|
|
Action.SnsSetSMSAttributes,
|
|
Action.SnsSetSubscriptionAttributes,
|
|
Action.SnsSetTopicAttributes,
|
|
Action.SnsSubscribe,
|
|
Action.SnsTagResource,
|
|
Action.SnsUnsubscribe,
|
|
Action.SnsUntagResource,
|
|
Action.SnsVerifySMSSandboxPhoneNumber,
|
|
]
|
|
|
|
@Module({
|
|
imports: [
|
|
TypeOrmModule.forFeature([SnsTopic, SnsTopicSubscription]),
|
|
AwsSharedEntitiesModule,
|
|
SqsModule,
|
|
],
|
|
providers: [
|
|
...handlers,
|
|
ExistingActionHandlersProvider(handlers),
|
|
DefaultActionHandlerProvider(SnsHandlers, Format.Xml, actions),
|
|
],
|
|
exports: [
|
|
SnsHandlers,
|
|
]
|
|
})
|
|
export class SnsModule {}
|