import { OnModuleInit, Injectable } from '@nestjs/common' import { SQS } from 'aws-sdk' import { Notification } from './types' @Injectable() export class NotificationService implements OnModuleInit { private queueUrl: string onModuleInit(): void { this.queueUrl = process.env.IS_OFFLINE ? 'http://localhost:9324/queue/NotificationsQueue-dev' : process.env.NOTIFICATIONS_SQS_URL } prepareMessage(message: Notification): SQS.SendMessageRequest { const sqsMessage: SQS.SendMessageRequest = { QueueUrl: this.queueUrl, DelaySeconds: message.DelaySeconds, MessageBody: JSON.stringify({ msg: message.msg, type: message.type, additional_data: message.additional_data, }), } return sqsMessage } }