mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-29 17:38:12 +00:00
45 lines
1.1 KiB
TypeScript
45 lines
1.1 KiB
TypeScript
import {
|
|
Inject,
|
|
Injectable,
|
|
Logger,
|
|
OnApplicationBootstrap,
|
|
} from '@nestjs/common';
|
|
import { ClientProxy } from '@nestjs/microservices';
|
|
import { BulkMessagesDto, SendMessage } from './dtos/sms.dto';
|
|
|
|
@Injectable()
|
|
export class SmsClientService implements OnApplicationBootstrap {
|
|
private readonly logger = new Logger(SmsClientService.name);
|
|
|
|
constructor(
|
|
@Inject('SMS_SERVICE')
|
|
private smsClient: ClientProxy,
|
|
) {}
|
|
|
|
private readonly enabled = process.env.RABBITMQ_ENABLED !== 'false';
|
|
|
|
async onApplicationBootstrap() {
|
|
if (!this.enabled) return;
|
|
this.smsClient
|
|
.connect()
|
|
.then(() => {
|
|
this.logger.log('connected to SMS service');
|
|
})
|
|
.catch((err) => {
|
|
console.error('Error happened at SMS service', err);
|
|
});
|
|
}
|
|
|
|
async sendSms(dto: SendMessage) {
|
|
if (!this.enabled) return {};
|
|
this.smsClient.emit('send-sms', { ...dto, appKey: 'EDR-PASSENGER-API' });
|
|
return {};
|
|
}
|
|
|
|
async sendBulkMessages(dto: BulkMessagesDto) {
|
|
if (!this.enabled) return {};
|
|
this.smsClient.emit('ozeking-bulk-sms', { ...dto, appKey: 'EDR-PASSENGER-API' });
|
|
return {};
|
|
}
|
|
}
|