Sprint 9: add tenant-driven API resolution layer

This commit is contained in:
sdarbinyan
2026-07-05 02:24:16 +04:00
parent c3d1153f0e
commit 487a3fb913
12 changed files with 197 additions and 17 deletions

View File

@@ -5,6 +5,7 @@ import { map, retry } from 'rxjs/operators';
import { Category, DeliveryOption, Item, Subcategory } from '../models';
import { normalizeDeliveryOption, normalizeOptionalNumber } from '../utils/normalization.utils';
import { environment } from '../../environments/environment';
import { ApiConfigService } from '../core/config/api-config.service';
export interface QrCreateRequest {
qrtype: 'QRDynamic';
@@ -68,7 +69,6 @@ export interface QrDynamicStatusResponse {
providedIn: 'root'
})
export class ApiService {
private readonly baseUrl = environment.apiUrl;
private readonly qrBaseUrl = (environment as any).qrApiUrl as string;
private readonly cartPaymentPartnerId = 'web-97ec-9c57-4dde-9037-3a68f7f83750';
@@ -77,7 +77,14 @@ export class ApiService {
delay: (_error: unknown, retryCount: number) => timer(Math.pow(2, retryCount) * 500)
};
constructor(private http: HttpClient) {}
constructor(
private readonly http: HttpClient,
private readonly apiConfig: ApiConfigService
) {}
private get baseUrl(): string {
return this.apiConfig.getBaseUrl();
}
/** Map API language codes (RU/EN/AM) → frontend codes (ru/en/hy) */
private normalizeLang(apiLang: string): string {