Merge branch 'freight/feature/vehicle_2' of github.com:Tria-plc/edr-platform into freight/feature/vehicle_2

This commit is contained in:
yaschalew
2026-06-24 14:52:47 +03:00
2 changed files with 33 additions and 25 deletions

View File

@@ -1,12 +1,12 @@
import { Module } from "@nestjs/common"; import { Module } from "@nestjs/common";
import { ConfigModule } from "@nestjs/config";
import { NotificationsService } from "./notifications.service"; import { NotificationsService } from "./notifications.service";
import { EmailNotificationStrategy } from "./strategies/notification.email.strategy"; import { EmailNotificationStrategy } from "./strategies/notification.email.strategy";
import { SmsNotificationStrategy } from "./strategies/notification.sms.strategy"; import { SmsNotificationStrategy } from "./strategies/notification.sms.strategy";
import { HttpModule } from "@nestjs/axios";
@Module({ @Module({
imports: [HttpModule], imports: [ConfigModule],
controllers: [], controllers: [],
providers: [EmailNotificationStrategy, SmsNotificationStrategy, NotificationsService], providers: [EmailNotificationStrategy, SmsNotificationStrategy, NotificationsService],
exports: [NotificationsService], exports: [NotificationsService],

View File

@@ -1,28 +1,36 @@
import { Injectable } from "@nestjs/common"; import { Injectable } from "@nestjs/common";
import { NotificationStrategy } from "./notification.strategy";
import { HttpService } from '@nestjs/axios';
import { ConfigService } from "@nestjs/config"; import { ConfigService } from "@nestjs/config";
import { firstValueFrom } from 'rxjs'; import axios from "axios";
import { NotificationStrategy } from "./notification.strategy";
@Injectable() @Injectable()
export class SmsNotificationStrategy implements NotificationStrategy { export class SmsNotificationStrategy implements NotificationStrategy {
constructor(private readonly httpService: HttpService, private readonly configService: ConfigService) { } constructor(private readonly configService: ConfigService) {}
async send(recipient: string, message: string) {
const url = this.configService.get("OZIKING_SMS_URL"); async send(recipient: string, message: string): Promise<boolean> {
const body = { const url =
this.configService.get<string>("OZIKING_SMS_URL") ??
"https://notification-dev.license.aafda.gov.et/api/sms-services/ozeking/sms";
await axios.post(
url,
{
to: recipient, to: recipient,
sourceId: this.configService.get("OZIKING_SOURCE_ID") ?? "EDR", sourceId: this.configService.get<string>("OZIKING_SOURCE_ID") ?? "EDR",
sourceName: this.configService.get("OZIKING_SOURCE_NAME") ?? "EDR Freight", sourceName: this.configService.get<string>("OZIKING_SOURCE_NAME") ?? "EDR Freight",
appKey: this.configService.get("OZIKING_APP_KEY") ?? "", appKey: this.configService.get<string>("OZIKING_APP_KEY") ?? "",
text: message, text: message,
callbackUrl: "", callbackUrl: "",
}; },
const response = await firstValueFrom( {
this.httpService.post(url, body, { headers: {
headers: { accept: "*/*", "Content-Type": "application/json" }, accept: "*/*",
}), "Content-Type": "application/json",
},
},
); );
return response.status === 201; return true;
} }
} }