NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Approvals for Laravel

Š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');   // WorkflowPreset

open() 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ľúčRozsahPoznámka
rulejednostupňová, každý stupeňPrípad ApprovalRule alebo jeho hodnota; ak nie je nastavená (chýba, null alebo prázdna hodnota), predvolene unanimous.
quorumjednostupňová, každý stupeňVoliteľný celočíselný prah; prázdna hodnota sa považuje za nenastavenú.
required_approversjednostupň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ónaVoliteľné kladné sekundy — otvorená žiadosť vyprší ako pri expiresIn(); prázdna hodnota sa považuje za nenastavenú (bez expirácie).
reject_on_stage_rejectionviacstupň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.
stagesviacstupň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 kryptomien

Odoslaní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.