From 81bef8775eaf80dbd842157db1bd87d038e51c7c Mon Sep 17 00:00:00 2001 From: sdarbinyan Date: Tue, 19 May 2026 23:42:43 +0400 Subject: [PATCH] api change --- proxy.conf.json | 7 +++++ src/app/api.ts | 8 +++++ .../pages/fastcheck-page/fastcheck-page.ts | 30 ++++++++++++++++--- 3 files changed, 41 insertions(+), 4 deletions(-) diff --git a/proxy.conf.json b/proxy.conf.json index ee02d92..fcdce66 100644 --- a/proxy.conf.json +++ b/proxy.conf.json @@ -12,5 +12,12 @@ "changeOrigin": true, "pathRewrite": { "^/proxy/qr-vitanova": "" }, "logLevel": "debug" + }, + "/proxy/api-vitanova": { + "target": "https://api.vitanova.network", + "secure": true, + "changeOrigin": true, + "pathRewrite": { "^/proxy/api-vitanova": "" }, + "logLevel": "debug" } } diff --git a/src/app/api.ts b/src/app/api.ts index 293a6a3..7d4cc78 100644 --- a/src/app/api.ts +++ b/src/app/api.ts @@ -18,6 +18,14 @@ export const QR_VITANOVA_API = isDevMode() ? '/proxy/qr-vitanova/api' : 'https://qr.vitanova.network/api'; +/** + * Base URL for API.VITANOVA.NETWORK. + * Used for partner authorization check: GET /partners/{partnerID} + */ +export const API_VITANOVA_NETWORK = isDevMode() + ? '/proxy/api-vitanova' + : 'https://api.vitanova.network'; + /** * Base URL for the public fastcheck.store API. * Used for /api/fastcheck/settings/{id} and /api/fastcheck/message/{tgId}. diff --git a/src/app/pages/fastcheck-page/fastcheck-page.ts b/src/app/pages/fastcheck-page/fastcheck-page.ts index d1e7a43..4e0c283 100644 --- a/src/app/pages/fastcheck-page/fastcheck-page.ts +++ b/src/app/pages/fastcheck-page/fastcheck-page.ts @@ -2,7 +2,7 @@ import { FormsModule } from '@angular/forms'; import { HttpClient } from '@angular/common/http'; import { FastcheckService } from '../../fastcheck.service'; -import { FASTCHECK_API, FASTCHECK_STORE_API, QR_VITANOVA_API } from '../../api'; +import { API_VITANOVA_NETWORK, FASTCHECK_API, FASTCHECK_STORE_API, QR_VITANOVA_API } from '../../api'; import { TranslatePipe } from '../../translate/translate.pipe'; import { TranslationService } from '../../translate/translation.service'; @@ -304,9 +304,31 @@ export class FastcheckPage { createNewFastcheck(event: Event): void { event.preventDefault(); - this.isNewFlow.set(true); - this.loginOnly.set(false); - this.openPopup(); + + const id = this.partnerId() || this.defaultPartnerId; + const sessionId = this.sessionToken(); + const headers: Record = { + Authorization: JSON.stringify({ sessionID: sessionId, partnerID: id }) + }; + + this.http + .get(`${API_VITANOVA_NETWORK}/partners/${encodeURIComponent(id)}`, { headers }) + .subscribe({ + next: () => { + // Authorized partner: skip Telegram auth popup and go directly. + this.isNewFlow.set(true); + this.loginOnly.set(false); + this.doRedirectToNew(); + }, + error: () => { + // Not authorized: force fresh Telegram auth QR popup. + this.sessionToken.set(''); + localStorage.removeItem('fc_session'); + this.isNewFlow.set(true); + this.loginOnly.set(false); + this.openPopup(); + } + }); } private doRedirectToNew(): void {