Datové schránky - Technická reference¶
Entity¶
1. DataBoxAccount¶
Reprezentuje připojení k účtu ISDS.
* Rozsah: Administrace
* Klíčová pole:
* login (Varchar): Login do ISDS.
* password (Password): Šifrované heslo.
* dev (Boolean): Přepíná mezi koncovými body Produkčního a Testovacího prostředí.
* users (Link): Uživatelé oprávnění používat tento účet.
2. DataBoxMessage¶
Reprezentuje jednu zprávu (odeslanou nebo přijatou).
* Klíčová pole:
* dmId (Varchar): Unikátní ID zprávy ISDS.
* status (Enum): Draft (Koncept), Sending (Odesílá se), Sent (Odesláno), Delivered (Doručeno), Received (Přijato).
* from (Varchar): ID odesílatele (ISDS ID).
* to (Varchar): ID příjemce.
* attachments (Link): Propojené entity Attachment (soubory).
* dataBoxAccountId (Link): Účet použitý pro tuto zprávu.
Architektura služby¶
Základní logika: Espo\Modules\DataBox\Tools\DataBox\Service¶
Tato služba zajišťuje veškeré interakce s API českých Datových schránek.
Metody¶
-
checkDataBox(string $id, int $daysBack = 90)- Orchestrátor pro synchronizaci. Volá
checkDataBoxReceivedacheckDataBoxSent. - $id: ID
DataBoxAccount. - $daysBack: Jak daleko do minulosti kontrolovat zprávy (výchozí 90 dní).
- Orchestrátor pro synchronizaci. Volá
-
createMessage(tRecord $messageRecord, ...)- Vstup: Objekt
tRecord(z knihovnyDefr\CzechDataBox). - Proces:
- Extrahuje metadata (Odesílatel, Příjemce, Anotace).
- Získá přílohy přes
getReceivedDataMessageAttachmentsRaw. - Dekóduje obsah base64 a vytvoří entity CRM
Attachment. - Vytvoří entitu
DataBoxMessage. - Zavolá
applyFilters()(vlastní logické hooky). - Zavolá
noteDataBoxMessageReceived()pro aktualizaci Activity Streamu.
- Vstup: Objekt
-
send(DataBoxMessage $message, User $user)- Proces:
- Ověří oprávnění uživatele pro
DataBoxAccount. - Sestaví objekt
DataMessage. - Zavolá
api->sendDataMessage(). - Aktualizuje stav na
Sent. - Přidá poznámku "Sent" do Activity Streamu.
- Ověří oprávnění uživatele pro
- Proces:
-
noteDataBoxMessageReceived/Sent- Vytvoří entitu
Notepropojenou s nadřazeným záznamem (např. Účet, Kontakt). - Používá
DefaultParentFinderk určení, s kterou entitou propojit (na základě shody ID ISDS).
- Vytvoří entitu
Integrační knihovna¶
Modul spoléhá na PHP knihovnu dfr/czech-data-box (zabalenou v Espo\Modules\DataBox\Tools\CzechDataBox\DataBox).
- Namespace:
Defr\CzechDataBox\Api - Klíčové třídy:
tRecord: Reprezentuje záznam zprávy.DataMessage: Reprezentuje payload pro odesílání.