status check
This commit is contained in:
@@ -82,6 +82,8 @@ export class FastcheckPage {
|
|||||||
// Non-blocking settings hint shown above the form when /settings fails.
|
// Non-blocking settings hint shown above the form when /settings fails.
|
||||||
settingsError = signal<string>('');
|
settingsError = signal<string>('');
|
||||||
settingsLoaded = signal<boolean>(false);
|
settingsLoaded = signal<boolean>(false);
|
||||||
|
// True only after /settings returned 200 — used to disable Pay button otherwise.
|
||||||
|
settingsOk = signal<boolean>(false);
|
||||||
|
|
||||||
popupOpen = signal<boolean>(false);
|
popupOpen = signal<boolean>(false);
|
||||||
popupLoading = signal<boolean>(false);
|
popupLoading = signal<boolean>(false);
|
||||||
@@ -148,6 +150,24 @@ export class FastcheckPage {
|
|||||||
|
|
||||||
// Always call settings on each load — may return active check data to autofill.
|
// Always call settings on each load — may return active check data to autofill.
|
||||||
this.loadSettings(!!created || !!iidParam);
|
this.loadSettings(!!created || !!iidParam);
|
||||||
|
|
||||||
|
// Connectivity check — makes visible requests in DevTools and surfaces
|
||||||
|
// backend availability issues early.
|
||||||
|
this.pingBackends();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Fire GET /ping on both backends and log status. Non-blocking. */
|
||||||
|
private pingBackends(): void {
|
||||||
|
const targets = [
|
||||||
|
{ name: 'fastcheck', url: `${FASTCHECK_API}/ping` },
|
||||||
|
{ name: 'qr-vitanova', url: `${QR_VITANOVA_API}/ping` }
|
||||||
|
];
|
||||||
|
for (const t of targets) {
|
||||||
|
this.http.get(t.url, { observe: 'response' }).subscribe({
|
||||||
|
next: (res) => console.debug(`[ping:${t.name}]`, res.status, t.url),
|
||||||
|
error: (err) => console.warn(`[ping:${t.name}] failed`, err?.status ?? err, t.url)
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -162,6 +182,7 @@ export class FastcheckPage {
|
|||||||
if (!id) {
|
if (!id) {
|
||||||
this.settingsError.set(this.t('errors.settings_missing_id'));
|
this.settingsError.set(this.t('errors.settings_missing_id'));
|
||||||
this.settingsLoaded.set(true);
|
this.settingsLoaded.set(true);
|
||||||
|
this.settingsOk.set(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,11 +191,13 @@ export class FastcheckPage {
|
|||||||
next: (res) => {
|
next: (res) => {
|
||||||
this.settingsLoaded.set(true);
|
this.settingsLoaded.set(true);
|
||||||
this.settingsError.set('');
|
this.settingsError.set('');
|
||||||
|
this.settingsOk.set(true);
|
||||||
this.applySettings(res ?? {}, alreadyAutofilled);
|
this.applySettings(res ?? {}, alreadyAutofilled);
|
||||||
},
|
},
|
||||||
error: () => {
|
error: () => {
|
||||||
// Non-blocking: keep manual mode available.
|
// Non-blocking: keep manual mode available, but Pay stays disabled.
|
||||||
this.settingsLoaded.set(true);
|
this.settingsLoaded.set(true);
|
||||||
|
this.settingsOk.set(false);
|
||||||
this.settingsError.set(this.t('errors.settings_failed'));
|
this.settingsError.set(this.t('errors.settings_failed'));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user