local-aws/src/sqs/sqs.module.ts

71 lines
2.3 KiB
TypeScript

import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Format } from '../abstract-action.handler';
import { Action } from '../action.enum';
import { AwsSharedEntitiesModule } from '../aws-shared-entities/aws-shared-entities.module';
import { DefaultActionHandlerProvider } from '../default-action-handler/default-action-handler.provider';
import { ExistingActionHandlersProvider } from '../default-action-handler/existing-action-handlers.provider';
import { CreateQueueHandler } from './create-queue.handler';
import { DeleteMessageHandler } from './delete-message.handler';
import { DeleteQueueHandler } from './delete-queue.handler';
import { GetQueueAttributesHandler } from './get-queue-attributes.handler';
import { ListQueuesHandler } from './list-queues.handler';
import { PurgeQueueHandler } from './purge-queue.handler';
import { ReceiveMessageHandler } from './receive-message.handler';
import { SetQueueAttributesHandler } from './set-queue-attributes.handler';
import { SqsQueueEntryService } from './sqs-queue-entry.service';
import { SqsQueue } from './sqs-queue.entity';
import { SqsHandlers } from './sqs.constants';
const handlers = [
CreateQueueHandler,
DeleteMessageHandler,
DeleteQueueHandler,
GetQueueAttributesHandler,
ListQueuesHandler,
PurgeQueueHandler,
ReceiveMessageHandler,
SetQueueAttributesHandler,
]
const actions = [
Action.SqsAddPermisson,
Action.SqsChangeMessageVisibility,
Action.SqsChangeMessageVisibilityBatch,
Action.SqsCreateQueue,
Action.SqsDeleteMessage,
Action.SqsDeleteMessageBatch,
Action.SqsDeleteQueue,
Action.SqsGetQueueAttributes,
Action.SqsGetQueueUrl,
Action.SqsListDeadLetterSourceQueues,
Action.SqsListQueues,
Action.SqsListQueueTags,
Action.SqsPurgeQueue,
Action.SqsReceiveMessage,
Action.SqsRemovePermission,
Action.SqsSendMessage,
Action.SqsSendMessageBatch,
Action.SqsSetQueueAttributes,
Action.SqsTagQueue,
Action.SqsUntagQueue,
]
@Module({
imports: [
TypeOrmModule.forFeature([SqsQueue]),
AwsSharedEntitiesModule,
],
providers: [
...handlers,
SqsQueueEntryService,
ExistingActionHandlersProvider(handlers),
DefaultActionHandlerProvider(SqsHandlers, Format.Xml, actions),
],
exports: [
SqsHandlers,
SqsQueueEntryService,
]
})
export class SqsModule {}