chore: أرشفة باك إند NestJS إلى backend-archive
قرار المالك 2026-07-27: الباك إند المعتمد صار باك إند سيرو PHP، ويُنقل إلى هذا المستودع كنسخة جديدة باسم «انطلق» على api.intaleqapp.com. backend/ → backend-archive/ (305 ملفاً، إعادة تسمية بلا تعديل محتوى) + README-ARCHIVE.md يوضّح سبب الأرشفة وسبب عدم الحذف: scripts/e2e-test.mjs هو أدق توثيق سلوكي لدورة الرحلة كاملة، ويبقى مرجعاً عند بناء الوحدات الناقصة في باك إند PHP (المحفظتان · الاستحقاقات · محرّك التسعير · الوحدات). مسارات backend/ في docs/*.md لم تُعدَّل عمداً — سجلّ تاريخي. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
75b80bd299
commit
fff76c949f
@@ -0,0 +1,30 @@
|
||||
import { Injectable, Logger } from '@nestjs/common';
|
||||
import { NabehService } from '../../nabeh/nabeh.service';
|
||||
import { OtpProvider, OtpSendContext } from '../otp-provider.interface';
|
||||
|
||||
/**
|
||||
* مزوّد Nabeh (واتساب) — سوريا والأردن (docs/17 — D5).
|
||||
* غلاف رقيق حول `NabehService` القائم يحوّل الرمي إلى `false` ليعمل ضمن سلسلة
|
||||
* الـfailover.
|
||||
*/
|
||||
@Injectable()
|
||||
export class NabehOtpProvider implements OtpProvider {
|
||||
readonly name = 'nabeh';
|
||||
private readonly logger = new Logger('NabehOtp');
|
||||
|
||||
constructor(private readonly nabeh: NabehService) {}
|
||||
|
||||
supports(countryPack: string): boolean {
|
||||
return countryPack === 'jo' || countryPack === 'sy';
|
||||
}
|
||||
|
||||
async send(phone: string, code: string, _ctx: OtpSendContext): Promise<boolean> {
|
||||
try {
|
||||
await this.nabeh.sendOtp(phone, code);
|
||||
return true;
|
||||
} catch (e: any) {
|
||||
this.logger.warn(`send failed: ${e?.message}`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user