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

Každá výnimka pre klientov rozširuje abstraktnú Exceptions\EventsException (RuntimeException). errorCode() je stabilný kód, status() HTTP stav, ktorým odpovie API, a getMessage() je už text bezpečný pre klienta — preložený do aktuálneho jazyka (events::messages, en a sk), nikdy neuvádza triedu, kľúč ani tabuľku. Vo vlastných kontroléroch:

use RoundlyConsulting\Events\Exceptions\EventsException;

try {
    $rsvp = Events::for($event)->rsvp($request->user())->by($request->user())->going(tier: $request->input('tier'));
} catch (EventsException $e) {
    return response()->json(['message' => $e->getMessage(), 'code' => $e->errorCode()], $e->status());
}
VýnimkacodeHTTPKedy sa vyhodí
EventNotFoundExceptionevent_not_found404Neznáme, zmazané alebo (cez API) skryté podujatie; kalendárový súbor pre diváka, ktorý podujatie vidieť nesmie.
VenueNotFoundException · TierNotFoundExceptionvenue_not_found · tier_not_found404Typ vstupenky iného podujatia alebo neznámy kľúč či id.
RsvpNotFoundExceptionrsvp_not_found404RSVP iného podujatia; neznáma alebo nahradená referencia platby; check-in účastníka, ktorého riadok už neexistuje.
InvalidEventExceptioninvalid_event422Chýbajúci alebo príliš dlhý názov, chybný odkaz na pripojenie, spôsob účasti v rozpore s miestom a odkazom, nový začiatok ohláseného podujatia, zmazanie podujatia, na ktoré ľudia idú, chybné pripomienky, chýbajúci organizátor, obsadený ručný slug, presun skončeného podujatia online, správa pozvánky nad 1000 znakov.
InvalidEventScheduleExceptioninvalid_schedule422Chýbajúci začiatok, koniec pred začiatkom, príliš dlhé, dvere mimo 12 hodín pred začiatkom, chybné časové pásmo, dátum a čas či trvanie, čas v medzere pri prechode na letný čas, chybný celodenný rozsah alebo okno RSVP.
InvalidVenueExceptioninvalid_venue / venue_in_use422Chýbajúci názov, chybné súradnice, chybný kód krajiny, polomer mimo rozsahu / zmazanie miesta, ktoré používa neskončené podujatie.
InvalidTierExceptioninvalid_tier / tier_key_taken / tier_in_use422Chybný názov, kľúč, limity skupiny, obdobie predaja, kapacita, cena či poradie / obsadený kľúč / odstránenie používaného typu.
InvalidGuestCountException · TierRequiredExceptioninvalid_guest_count · tier_required422Hostia mimo limitov · going() bez typu vstupenky, keď sa predáva viac typov.
TierNotOnSaleException · EventFullException · TierSoldOutExceptiontier_not_on_sale · event_full · tier_sold_out409Novo zvolený typ mimo predaja · bez miest a bez čakacej listiny.
RsvpClosedExceptionrsvp_closed409RSVP zatvorené alebo ešte neotvorené, podujatie začalo, je zrušené alebo ukončené — a platba od začiatku podujatia (vráťte ju).
InvitationRequiredExceptioninvitation_required403Odpoveď na súkromné podujatie bez pozvánky.
InvalidRsvpTransitionExceptioninvalid_rsvp_transition409Účastník po check-ine odmieta alebo zmenšuje skupinu pod hostí, ktorí už prešli, platené miesto menené odpoveďou, potvrdenie či uvoľnenie nerezervovaného, check-in RSVP, ktoré nie je going.
RsvpHoldExpiredExceptionhold_expired409Oneskorená platba bez voľných miest.
InvalidCheckInCodeException · CheckInRefusedExceptioninvalid_code · check_in_refused404 · 409Pozrite Check-in pri vstupe.
InvalidInvitationExceptioninvalid_invitation404Neznámy, chybný, zneplatnený, vypršaný alebo použitý token, alebo odkaz niekoho iného — jednotne.
EventTrashedExceptionevent_trashed409Akýkoľvek zápis do zmazaného podujatia.
UnknownEventTransitionException · EventTransitionDeniedExceptionunknown_transition · transition_denied422 (429)Sloveso, ktoré životný cyklus neponúka · lifecycle zamietol (denials(), retryAfterSeconds(), previousDenial()).
InvalidOrganizerException · UnknownMorphAliasException · InvalidEventQueryExceptioninvalid_organizer · unknown_alias · invalid_query422 (400)Organizovanie za niekoho, kto aktéra nepovoľuje · neznámy alias alebo kľúč v API · chybná hodnota filtra v API.

EventTransitionDeniedException má aj denials() (kódy zamietnutia z lifecycle a k nim no_attendees a rescheduled_through_events), retryAfterSeconds() (0, ak nejde o limit požiadaviek; API pošle Retry-After) a previousDenial(). CheckInRefusedException::reason() je jedna z konštánt WRONG_EVENT, NOT_GOING, EVENT_NOT_ACTIVE a OUTSIDE_WINDOW.

Chyby, ktoré API preberá odinakiaľ

ZdrojOdpoveď API
AuthorizationException z Laravelu403 forbidden
SubjectTrashedException z lifecycle409 event_trashed
TagNotFoundException, TagScopeMismatchException z tags422 tag_not_found
TagLimitExceededException z tags422 tag_limit_exceeded
InvalidTagException, TagTypeMismatchException, TagTypeNotAllowedException, UnknownTagTypeException z tags422 invalid_tag
FileUnacceptableForBucket, DraftMediaNotFound, DraftMediaExpired z media-library422 invalid_poster
Validácia422 validation_failed + errors

V PHP prejdú bez zmeny.

Chyby konfigurácie

Opraviť ich musí aplikácia: sú v angličtine, uvádzajú kľúč a rozširujú PackageToolkitException z toolkitu. InvalidEventsConfigurationException pokrýva chybné trvanie, časové pásmo, názov tabuľky, čas dňa, šablónu URL či voľbu — outOfRange() pre hodnotu mimo hraníc, tooMany() pre viac ako päť posunov pripomienok a keyTypeMismatch(), keď kľúč modelu nezodpovedá events.key_type, ešte pred akýmkoľvek SQL. InvalidEventLifecycleException pokrýva hodnotu events.lifecycle, ktorá nie je LifecycleDefinition implementujúcou Contracts\EventLifecycle, alebo definíciu, ktorá porušuje kontrakt. Vlastná InvalidConfigurationException z toolkitu pokrýva model, resource, triedu notifikácie či zoznam, ktorý nezodpovedá svojmu kľúču.

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.