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

Všetky výnimky balíka sú v RoundlyConsulting\Approvals\Exceptions a rozširujú ApprovalsException, ktorá je sama RuntimeException — jeden catch tak pokryje celú rodinu:

VýnimkaKedy vznikne
ClosedApprovalRequestExceptionRozhodnutie alebo stiahnutie — approve, reject, toggle, ask či cancel — smeruje do uzavretej žiadosti (schválenej, zamietnutej, zrušenej či expirovanej), pripnutej cez within() aj vtedy, keď je otvorené neskoršie kolo, alebo preto, že všetky žiadosti subjektu sú uzavreté (for). Vlastnosť $request je táto žiadosť.
IncompletePendingApprovalExceptionBuilder rozhoduje bez aktéra (missingActor) alebo bez schvaľovaného modelu (missingApprovable).
InvalidApprovalModelExceptionNakonfigurovaná trieda modelu nerozširuje očakávaný základný model (forClass).
InvalidApprovalRequestExceptionRozhodnutie — aj toggle() — alebo close() je pripojené k žiadosti iného subjektu (foreignSubject); builder žiadosti dostane from() aj stages() (mixedApprovers); workflow() nasleduje po from(), rule(), any(), quorum(), weighted(), stages() či continueOnRejection(), ktoré definuje šablóna (definedByWorkflow); ask() nasleduje po weight() (weightOnAsk); reject() po expirácii (expiryOnReject); cancel() po weight() či expirácii (settingsOnCancel); close() po because() (reasonOnClose) alebo po as(), weight() či expirácii (settingsOnClose); schvaľovateľ nie je uložený (unsavedApprover); žiadosť potrebuje viac schválení, než vymenuje schvaľovateľov (moreRequiredThanNamed); kvórum je menšie ako 1 (thresholdBelowOne) alebo ho schvaľovatelia nemôžu dosiahnuť (unreachableThreshold); žiadosť či stupeň, ktoré by ich pravidlo nikdy neschválilo, lebo nepotrebujú žiadne schválenie — napr. žiadosť bez menovaných schvaľovateľov pri predvolenom pravidle Unanimous (needsNoApprovals).
InvalidDelegationExceptionDelegovanie na seba (selfDelegation), obdobie, ktoré končí skôr, než začne (endsBeforeStart), alebo ApprovalDelegation::revoke($at) s časom v budúcnosti (futureRevocation).
InvalidStatusTransitionExceptionNepovolený prechod stavu na modeli Approval (between), alebo close() s iným výsledkom než Cancelled či Expired — aj keď nie je otvorené žiadne kolo (notAClosingOutcome).
UnauthorizedApprovalExceptionAutorizačná Gate aktéra odmietne (forActor), alebo aktér nie je menovaným schvaľovateľom žiadosti či jej otvoreného stupňa ani zástupcom niektorého z nich (notAnApprover).
UnknownWorkflowExceptionŠablóna workflow chýba (named) alebo je chybná (invalid).
use RoundlyConsulting\Approvals\Exceptions\ApprovalsException;
use RoundlyConsulting\Approvals\Exceptions\ClosedApprovalRequestException;
use RoundlyConsulting\Approvals\Exceptions\UnauthorizedApprovalException;
use RoundlyConsulting\Approvals\Facades\Approvals;

try {
    Approvals::for($post)->as($user)->approve();
} catch (UnauthorizedApprovalException $e) {
    // the gate denied this actor, or the request does not name it
} catch (ClosedApprovalRequestException $e) {
    // the round is over — $e->request is the closed request
} catch (ApprovalsException $e) {
    // any other approvals error
}

Každú výnimku vytvára pomenovaná statická factory uvedená v zátvorke vyššie, čo sa hodí pri overovaní správ v testoch.

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.