forked from Yara724/api
34 lines
1.1 KiB
TypeScript
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;
|
|
}
|
|
}
|