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

Každý prechod spustí udalosť s príslušným modelom. Všetky udalosti sú v RoundlyConsulting\Approvals\Events a obsah vystavujú ako verejné vlastnosti:

UdalosťObsahKedy sa spustí
ApprovalRequestedapprovalvyžiada sa čakajúce rozhodnutie (ask())
ApprovalApprovedapprovalrozhodnutie sa schváli
ApprovalRejectedapprovalrozhodnutie sa zamietne
ApprovalCancelledapprovalrozhodnutie sa stiahne (cancel())
ApprovalExpiredapprovalčakajúce alebo schválené rozhodnutie vyprší
ApprovalRequestResolvedrequestžiadosť skončí schválením, zamietnutím alebo vypršaním
ApprovalToggledactor, entity, hasBeenApprovedprebehne toggle() / toggleApproval()
ApprovalStageOpenedstageviacstupňová žiadosť otvorí stupeň
ApprovalStageClearedstagestupeň prejde schválením
ApprovalDelegateddelegationschvaľovateľ deleguje právomoc
ApprovalDelegationRevokeddelegationdelegovanie sa zruší
ApprovalStatusChangedsubject, from, to, actorzastrešujúca — každý prechod stavu rozhodnutia či žiadosti, popri konkrétnej udalosti

Zastrešujúca udalosť

Prihláste sa na ApprovalStatusChanged raz a uvidíte všetky prechody: rozhodnutie schválené, zamietnuté, stiahnuté — aj prepínačom či zmenou názoru, ktorá ho nahradí — alebo expirované a žiadosť vyhodnotenú či expirovanú. Nesie subjekt (zmenenú Approval alebo ApprovalRequest), stavy from a to typu ApprovalStatus a aktéra, ak je známy — pri vyhodnotenej žiadosti je null:

use RoundlyConsulting\Approvals\Events\ApprovalStatusChanged;

class AuditApprovalChanges
{
    public function handle(ApprovalStatusChanged $event): void
    {
        // $event->from, $event->to, $event->subject, $event->actor
        logger()->info("approval moved {$event->from->value} -> {$event->to->value}");
    }
}

Konkrétne listenery

use Illuminate\Support\Facades\Event;
use RoundlyConsulting\Approvals\Events\ApprovalApproved;
use RoundlyConsulting\Approvals\Events\ApprovalRequestResolved;

Event::listen(function (ApprovalApproved $event): void {
    $approval = $event->approval;   // the Approval model
});

Event::listen(function (ApprovalRequestResolved $event): void {
    $request = $event->request;     // approved, rejected or expired — see $request->status
    $subject = $request->subject;   // e.g. the Release
});

ask() vytvorí čakajúce rozhodnutie, žiadne nemení, preto spustí len ApprovalRequested. Zmeny stupňov a delegovanie tiež spúšťajú len vlastné udalosti — nie zastrešujúcu.

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.