Builder nabizi jen to, co jde zavolat
V nabidce kroku byly vsechny sluzby katalogu, i ty, ke kterym firma nema napojeni. Slo tedy vybrat Raynet CRM bez konektoru a postavit strom, ktery pri prvnim behu spadne na chybejicich udajich - a to se pozna az za tyden, kdyz prijde prvni ostra udalost. Nabizi se sluzba, ktera je obecna, nebo k ni firma ma napojeni. Obecne jsou ty, co se bez konektoru obejdou: webhook, casovac, rucni spusteni, formular, incident, ticket, HTTP, transformace, pauza a log. Priznak general uz existoval, jen ho nikdo nepouzil na filtrovani nabidky. Katalog se kvuli tomu nefiltruje, jen se oznacuje: GET /api/dashboard/services prida ke kazde sluzbe connected. Sluzba z odpovedi nemizi, protoze log ticketu a detail akce podle katalogu prekladaji ID operaci na jmena - kdyby zmizela, zustalo by v uz zapsanem radku hole ID. Filtruje az builder. Pod nabidkou je veta, kolik sluzeb ceka na napojeni, aby to nevypadalo, ze neexistuji. Soukroma sluzba uz neni videt cizi firme. canSeeService vracelo spravci platformy true driv, nez se vubec podivalo na viditelnost, takze zakazkova integrace omezena na jednoho klienta se ukazovala i po prepnuti do jine firmy a spravce si ji mohl vybrat do jeji automatizace. Nove rozhoduje firma, ne clovek: kdyz je vybrana, plati jeji seznam, bez ni spravce platformy spravuje katalog a vidi vsechno. Zaroven se konecne pouziva tenantHasService, tedy zpristupneni sluzby firme pres nastaveni - dosud to bylo pole, ktere nikdo necetl. Overeno na bezici instanci: Polstryn SAP je pro tnt_logitrans v katalogu, pro tnt_automia uz ne, a to i pro spravce platformy. V nabidce builderu pro tnt_automia zbylo deset obecnych sluzeb plus iDoklad, na ktery firma napojeni ma. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
e701bc0e2c
commit
79c9a729f6
@@ -46,9 +46,30 @@ export function StepPicker({
|
||||
const operationsOf = (connector: Service) =>
|
||||
mode === 'trigger' ? connector.triggers : connector.actions;
|
||||
|
||||
// Konektory, ktere v tomhle rezimu vubec maji co nabidnout.
|
||||
/*
|
||||
* Co jde ve strome opravdu pouzit.
|
||||
*
|
||||
* Krome toho, ze sluzba v tomhle rezimu neco nabizi, musi jit **zavolat**:
|
||||
* bud je obecna (webhook, pauza, ticket), nebo k ni firma ma napojeni.
|
||||
* Vybrat Raynet bez konektoru znamenalo postavit strom, ktery pri prvnim
|
||||
* behu spadne na chybejicich udajich - a to se pozna az za tyden.
|
||||
*/
|
||||
const usable = useMemo(
|
||||
() => connectors.filter((connector) => operationsOf(connector).length > 0),
|
||||
() =>
|
||||
connectors.filter(
|
||||
(connector) =>
|
||||
operationsOf(connector).length > 0 && (connector.general || connector.connected),
|
||||
),
|
||||
[connectors, mode],
|
||||
);
|
||||
|
||||
/** Kolik sluzeb je schovanych jen proto, ze k nim chybi napojeni. */
|
||||
const missing = useMemo(
|
||||
() =>
|
||||
connectors.filter(
|
||||
(connector) =>
|
||||
operationsOf(connector).length > 0 && !connector.general && !connector.connected,
|
||||
).length,
|
||||
[connectors, mode],
|
||||
);
|
||||
|
||||
@@ -264,6 +285,17 @@ export function StepPicker({
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
|
||||
{/*
|
||||
Aby bylo poznat, ze nabidka neni cely katalog. Bez teto vety by to
|
||||
vypadalo, ze sluzba neexistuje, misto ze k ni chybi napojeni.
|
||||
*/}
|
||||
{!selected && missing > 0 && (
|
||||
<p className="mt-5 border-t border-ink-600/50 pt-4 text-xs text-white/35">
|
||||
Dalších {missing} služeb se objeví, až k nim přidáte napojení v Konektorech.
|
||||
Bez přístupových údajů by krok při prvním běhu spadl.
|
||||
</p>
|
||||
)}
|
||||
</div>
|
||||
</Modal>
|
||||
);
|
||||
|
||||
@@ -324,6 +324,14 @@ export interface Service {
|
||||
status: ServiceStatus;
|
||||
/** true = funguje bez konektoru (webhook, pauza, transformace dat). */
|
||||
general: boolean;
|
||||
/**
|
||||
* true = firma ma k teto sluzbe aspon jedno napojeni.
|
||||
*
|
||||
* Katalog se kvuli tomu nefiltruje - log ticketu podle nej preklada ID
|
||||
* operaci na jmena a sluzba, ktera by z odpovedi zmizela, by v uz zapsanem
|
||||
* radku zustala jako hole ID. Vybirat z ni ale nema smysl.
|
||||
*/
|
||||
connected: boolean;
|
||||
appId: string | null;
|
||||
/**
|
||||
* `smtp` = sluzba se nevola pres HTTP, adresu nese konektor v udajich.
|
||||
|
||||
Reference in New Issue
Block a user