-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Tomáš Jančar edited this page Oct 6, 2015
·
25 revisions
Trinity Notification je Symfony bundle pro zpracování změn, které vznikly v entitách (vytvoření, změna či smazání). Podstata je taková, že změny, které vzniknou v entitě jsou pomocí event manageru zpracovány a předány do Entity manageru. Ten pak vyhodnotí (anotace entity), zda má změny dále zpracovat či ne.
- V entitě dojde ke změně - změna jména, emailu... atd.
- Ověří se, zda entita má definovanou anotaci zdroj.
- Provádí se kontrola, zda je akce či kontroler povolen k notifikaci.
- Kontroluje se zda je klient, na kterého se má notifikovat, povolen k notifikaci.
- Pro každého klienta, který je přidružen k entitě:
- pro ApiDriver driver:
- Entita je převedena na indexované pole, které je doplněno o
timestamp. - Pole se převede na json, připojí se k ní sha256 hash vygenerovaný z posíláných dat + secret key klienta.
- Entita je převedena na indexované pole, které je doplněno o
- pro ApiDriver driver:
- Po doručení klient odpovídá stavem 200[ok] nebo 500[error].
- Oba stavy vyvolají eventu. Stav 500 vyvolá
Error eventu, a stav 200 vyvoláSuccess eventu.
Před odesláním na klienta je vyvolána eventa Before a po odeslání After.
###Eventy:
-
notification.beforeNotificationSend- před odesláním notifikace -
notification.afterNotificationSend- po odeslání notifikace -
notification.error- errorová notifikace -
notification.success- úspěšná notifikace
##UML: lucidchart
Jsou notifikační entity například Product, Client, BP, atd. Na klienta se tak posílá například to, že si uživatel změnil jméno atp.