Skip to content
Tomáš Jančar edited this page Oct 6, 2015 · 25 revisions

Trinity Notifikace [cz]

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.

Logika (api driver):

  1. V entitě dojde ke změně - změna jména, emailu... atd.
  2. Ověří se, zda entita má definovanou anotaci zdroj.
  3. Provádí se kontrola, zda je akce či kontroler povolen k notifikaci.
  4. Kontroluje se zda je klient, na kterého se má notifikovat, povolen k notifikaci.
  5. 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.
  6. Po doručení klient odpovídá stavem 200[ok] nebo 500[error].
  7. 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


Pro Necktie:

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.

Clone this wiki locally