Files
yara724api/src/sms-orchestration/provider/sms-gateway.service.ts
SepehrYahyaee 94bde88cb6 YARA-941
2026-05-23 14:05:11 +03:30

34 lines
1.1 KiB
TypeScript

import { Injectable, Logger, OnModuleInit } from "@nestjs/common";
import { KavenegarSmsGateway } from "./kavenegar-sms.gateway";
import { ParsianSmsGateway } from "./parsian-sms.gateway";
import { getSmsProvider } from "./sms-provider.config";
import { SendMessage, VerifyLookUpMessage } from "./sms-gateway.types";
export type { SendMessage, VerifyLookUpMessage } from "./sms-gateway.types";
@Injectable()
export class SmsGatewayService implements OnModuleInit {
private readonly logger = new Logger(SmsGatewayService.name);
constructor(
private readonly kavenegar: KavenegarSmsGateway,
private readonly parsian: ParsianSmsGateway,
) {}
onModuleInit() {
this.logger.log(`SMS provider active: ${getSmsProvider()}`);
}
async sendMessage(data: SendMessage) {
return this.activeGateway().sendMessage(data);
}
async verifyLookUp(data: VerifyLookUpMessage) {
return this.activeGateway().verifyLookUp(data);
}
private activeGateway(): KavenegarSmsGateway | ParsianSmsGateway {
return getSmsProvider() === "parsian" ? this.parsian : this.kavenegar;
}
}