Udalosti
Každá zmena stavu spustí obyčajnú udalosť v RoundlyConsulting\Teams\Events, takže môžete posielať notifikácie, zapisovať audit či synchronizovať iné systémy bez zásahu do balíka:
| Udalosť | Vlastnosti | Kedy |
|---|---|---|
TeamMemberAdded | $member | Vznikne nové členstvo. |
TeamMemberRoleChanged | $member, $previousRole | Zmení sa rola člena. |
TeamMemberDeleted | $member | Členstvo sa odstráni (soft delete). |
InviteCreated | $invite | Vytvorí sa pozvánka. |
InviteAccepted | $invite, $member | Pozvánka je prijatá. |
InviteResent | $invite | Pozvánke sa vymení kód a predĺži platnosť. |
InviteRevoked | $invite | Pozvánka je zrušená. |
TeamOwnershipTransferred | $team, $previousOwner, $newOwner | Vlastníctvo sa prevedie. |
JoinRequestCreated | $joinRequest | Používateľ požiada o pripojenie. |
JoinRequestApproved | $joinRequest | Žiadosť je schválená (aj automaticky). |
JoinRequestDenied | $joinRequest | Žiadosť je zamietnutá. |
JoinRequestExpired | $request | Čakajúca žiadosť sa po expirácii automaticky zamietne. |
MembershipExpiringSoon | $member | Členstvo vyprší v rámci okna reportu (--notify). |
MembershipExpired | $member | Expirované členstvo sa odstráni — cez teams:members:prune, Teams::members()->prune() alebo model:prune. |
Pozor na názov vlastnosti: JoinRequestExpired nesie $request, ostatné udalosti žiadostí $joinRequest.
use Illuminate\Support\Facades\Event;
use RoundlyConsulting\Teams\Events\InviteAccepted;
use RoundlyConsulting\Teams\Events\TeamMemberRoleChanged;
Event::listen(function (InviteAccepted $event): void {
logger()->info('Invite accepted', [
'invite' => $event->invite->id,
'member' => $event->member->id,
]);
});
Event::listen(function (TeamMemberRoleChanged $event): void {
// $event->member->role is the new role; $event->previousRole the old one
});Most k notifikáciám
Publikovaním teams-stubs získate App\Listeners\TeamEventSubscriber — subscriber bežiaci cez frontu s handlermi pre TeamMemberAdded, TeamMemberRoleChanged a InviteCreated. Do handlerov doplňte vlastné triedy Notification; beží na notifications.queue_connection, inak na queue.default. Zaregistrujte ho:
// app/Providers/AppServiceProvider.php → boot()
use App\Listeners\TeamEventSubscriber;
use Illuminate\Support\Facades\Event;
Event::subscribe(TeamEventSubscriber::class);Ak chcete reagovať na ďalšie udalosti, rozšírte jeho mapu subscribe(). Balík dodáva prepojenie, obsah notifikácií je na vašej aplikácii.
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.