Všetky udalosti sú v RoundlyConsulting\Requests\Events a majú verejné vlastnosti:
| Udalosť | Obsah | Kedy vznikne |
|---|---|---|
RequestCreated | Request $request | Po vytvorení žiadosti. |
RequestStatusChanged | Request $request | Pri zmene stavu — priamym rozhodnutím, znovuotvorením, zrušením, expiráciou alebo keď engine uzavrie schvaľovaciu požiadavku. |
ApprovalRecorded | Request $request, Model $actor | Po zaznamenaní schválenia cez fasádu alebo ResolveRequest — aj keď žiadosť zostáva New. |
ApprovalRevoked | Request $request, Model $actor | Keď reopen() vráti žiadosť do New — kým je kolo ešte otvorené, stiahne rozhodnutie aktéra. |
RequestRejected | Request $request, Model $actor | Keď zamietnutie posunie žiadosť do stavu Rejected; aktér je posledný zamietajúci schvaľovateľ. |
RequestCancelled | Request $request | Po volaní cancel() alebo keď engine uzavrie kolo ako zrušené. |
RequestExpired | Request $request | Po volaní expire() (priamo alebo cez requests:expire) alebo keď engine nechá kolo vypršať. |
Počúvanie udalostí
use Illuminate\Support\Facades\Event;
use RoundlyConsulting\Requests\Enums\Status;
use RoundlyConsulting\Requests\Events\RequestRejected;
use RoundlyConsulting\Requests\Events\RequestStatusChanged;
Event::listen(function (RequestStatusChanged $event): void {
if ($event->request->status === Status::Approved) {
// notify the author, write an audit entry, kick off the payout…
}
});
Event::listen(function (RequestRejected $event): void {
$event->request; // the Request
$event->actor; // the approver who rejected it
});Udalosti vznikajú bez ohľadu na to, akou cestou zmena prišla: kolo, ktoré schvaľovací engine nechá vypršať (vlastný termín, Approvals::expire()), žiadosť expiruje a vyvolá aj RequestStatusChanged a RequestExpired; kolo, ktoré engine zruší, vyvolá RequestStatusChanged a RequestCancelled.
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.