Šablóny workflow
Opakovane používané nastavenie pravidla, kvóra, stupňov a expirácie uložte do config('approvals.workflows') a volania zostanú krátke. Šablóna je jednostupňová (jedno pravidlo) alebo viacstupňová (zoznam stages):
use RoundlyConsulting\Approvals\Enums\ApprovalRule;
'workflows' => [
'payout' => [
'rule' => ApprovalRule::Quorum->value,
'quorum' => 2,
'required_approvers' => 3,
'expiry' => 86400,
],
'release' => [
'reject_on_stage_rejection' => true,
'stages' => [
['rule' => ApprovalRule::Unanimous->value, 'required_approvers' => 2, 'name' => 'engineering'],
['rule' => ApprovalRule::Any->value, 'required_approvers' => 1, 'name' => 'product'],
],
],
],Otvorenie žiadosti zo šablóny
use RoundlyConsulting\Approvals\Facades\Approvals;
// Flat preset: a single approver list.
Approvals::request($budget)->workflow('payout')->open([$a, $b, $c]);
// Staged preset: one approver group per stage, in order.
Approvals::request($release)->workflow('release')->open([[$eng1, $eng2], [$product]]);
// Read a validated preset without opening anything.
Approvals::preset('payout'); // WorkflowPresetopen() vráti otvorenú ApprovalRequest. Žiadosť uloží názov šablóny do stĺpca workflow a expirácia zo šablóny nechá žiadosť vypršať rovnako ako expiresIn().
Kľúče šablóny
| Kľúč | Rozsah | Poznámka |
|---|---|---|
rule | jednostupňová, každý stupeň | Prípad ApprovalRule alebo jeho hodnota; ak nie je nastavená (chýba, null alebo prázdna hodnota), predvolene unanimous. |
quorum | jednostupňová, každý stupeň | Voliteľný celočíselný prah; prázdna hodnota sa považuje za nenastavenú. |
required_approvers | jednostupňová, každý stupeň | Počet potrebných schválení — pri jednostupňovej šablóne voliteľný (predvolene veľkosť zoznamu), pri každom stupni povinné kladné celé číslo. Zoznam schvaľovateľov ich musí vymenovať aspoň toľko. |
expiry | šablóna | Voliteľné kladné sekundy — otvorená žiadosť vyprší ako pri expiresIn(); prázdna hodnota sa považuje za nenastavenú (bez expirácie). |
reject_on_stage_rejection | viacstupňová | Boolean alebo jeho textový zápis ('false', 0, 'off', … sa čítajú ako false); predvolene true — prázdna hodnota sa považuje za nenastavenú, takže tiež true. |
stages | viacstupňová | Neprázdny zoznam stupňov: rule, required_approvers, voliteľne quorum a name (ak je zadaný, reťazec; prázdny sa považuje za nenastavený). |
Zoznamy schvaľovateľov
- Jednostupňová šablóna — odovzdajte plochý zoznam schvaľovateľov; tí sa stanú menovanými schvaľovateľmi žiadosti. required_approvers šablóny je počet potrebných schválení, ak je nastavené, inak jedno na schvaľovateľa.
- Viacstupňová šablóna — odovzdajte jednu skupinu schvaľovateľov na stupeň, v poradí stupňov; počet skupín sa musí rovnať počtu stupňov. required_approvers stupňa je počet schválení, ktoré potrebuje, preto ich jeho skupina musí vymenovať aspoň toľko.
- Zoznam, ktorý vymenuje menej schvaľovateľov, než je required_approvers, vyhodí pri otvorení žiadosti InvalidApprovalRequestException.
Validácia
Neznáma alebo chybná šablóna vyhodí UnknownWorkflowException — chýbajúci názov, šablóna, ktorá nie je pole, prázdny zoznam stages, stupeň bez kladného celočíselného required_approvers, neceločíselné quorum, required_approvers či expiry, expiry menšie ako 1, nereťazcový name stupňa, reject_on_stage_rejection, ktoré nie je booleanom ani jeho textovým zápisom, neznáme pravidlo alebo viacstupňová šablóna otvorená s nesprávnym počtom skupín. Voliteľný kľúč šablóny ponechaný prázdny ('') sa považuje za nenastavený a dostane predvolenú hodnotu: unanimous pre rule, žiadnu pre quorum, expiry a name, true pre reject_on_stage_rejection. Hodnota workflows, ktorá nie je pole, namiesto toho vyhodí InvalidConfigurationException.
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.