Vytváranie žiadostí
Fasáda Requests je hlavný vstupný bod. Plne kvalifikovaná RoundlyConsulting\Requests\Facades\Requests funguje vždy; ak je názov voľný, zaregistruje sa aj krátky alias Requests:
use RoundlyConsulting\Requests\Facades\Requests;
$request = Requests::make()
->author($user)
->type('Claim')
->title('Expense reimbursement')
->description('Travel costs for the client visit.')
->meta(['ip' => request()->ip()])
->requireApprovalsFrom([$alice, $bob]) // saved approver models — only they may decide
->expiresAt(now()->addDays(7))
->create();create() uloží žiadosť, priradí autora, otvorí schvaľovanie, ak sú zadaní schvaľovatelia, stupne alebo workflow, a vyvolá RequestCreated. requireApprovalsFrom() prijme uložený model alebo ich zoznam — rozhodovať môžu len oni alebo ich zástupcovia a ich kľúče sa zaznamenajú do require_approvals_from. Samotné id odmietne výnimkou InvalidApprover. Žiadosť a jej schvaľovacie kolo sa zapisujú spolu, takže kolo, ktoré sa nedá otvoriť, nezanechá žiadnu žiadosť.
Prehľad metód buildera
| Metóda | Nastavuje |
|---|---|
author(?Model) | Polymorfného autora. |
type(?string) | Typ žiadosti, napr. Claim. |
title(?string) | Názov. |
description(?string) | Popis. |
meta(iterable) | Voľné meta údaje, uložené ako Collection. |
status(Status) | Počiatočný stav (predvolene New). |
requireApprovalsFrom(Model|iterable) | Deklarovaných schvaľovateľov — len uložené modely (samotné id vyhodí InvalidApprover); rozhodovať môžu iba oni alebo ich zástupcovia. |
rule(ApprovalRule) | Unanimous (predvolené), Quorum, Any alebo Weighted. |
quorum(?int) | Hranicu kvóra / váhy pre Quorum a Weighted. |
stages(array) | Ad-hoc postupnosť stupňov z objektov StageDefinition. |
rejectOnStageRejection(bool) | Či zamietnutý stupeň zamietne celú žiadosť (predvolene true). |
workflow(?string) | Pomenovanú predvoľbu z config('approvals.workflows'). |
stageApprovers(array) | Jednu skupinu schvaľovateľov na stupeň pre viacstupňovú predvoľbu. |
expiresAt(?CarbonInterface) | Termín expirácie (prepíše default_ttl). |
toDto() | Vráti zostavené CreateRequestDto bez uloženia. |
create() | Terminálna metóda — uloží žiadosť, otvorí schvaľovanie a vráti Request. |
Žiadosti bez schvaľovateľov
Deklarovať schvaľovateľov nie je povinné. Bez nich sa neotvorí žiadna schvaľovacia požiadavka a prvé schválenie či zamietnutie žiadosť okamžite uzavrie:
// No approvers declared — the first decision resolves the request.
$request = Requests::make()
->author($user)
->type('AccessRequest')
->title('Access to the billing dashboard')
->create();Iba zostavenie DTO
toDto() vráti zostavené CreateRequestDto bez uloženia — hodí sa na zaradenie do fronty alebo neskoršie odovzdanie manažérovi:
// Build the DTO without persisting, then hand it to the manager.
$dto = Requests::make()
->author($user)
->title('Expense reimbursement')
->toDto();
$request = Requests::create($dto);Termín expirácie
expiresAt() nastaví žiadosti termín. Bez neho sa použije requests.default_ttl (v minútach), ak je nastavené; inak žiadosť sama nikdy nevyprší (Zrušenie a expirácia).
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.