--- tags: DOG --- # **DOG Templater API** `v1.0.0` > API slouží pro vytváření dokumentů z předem připravených šablon. --- ## **Změny ve verzích** ### **v1.0.0** * Zaváděcí verze --- ### **Umístění API** #### **TEST** prostředí * Lokální síť: https://dog.test.ux.bee.corp/api/v1 * Externí zóna: https://apitest.bohemiaenergy.cz/dog #### **PROD** prostředí * Lokální síť: https://dog.bee.corp/api/v1 * Externí zóna: https://api.bohemiaenergy.cz/dog ### **Ověření přístupu k API** Ověření je řešeno pomocí `API-KEY` vloženého do hlavičky * `Authorization: Bearer <API-KEY>` V případě použití přístupu z externí zóny, je nutné ještě navíc přístupový `PROXY-KEY` pro `Proxy` umístěný do hlavičky * `X-APP-KEY: <PROXY-KEY>` ### **Vysvětlivky** * ==*== - povinné položky * [color=#ff4500] - další informace na konci dokumentu v Příloze --- ## **Způsob zpracování chyb** #### **V případě jakékoliv chyby je vráceno například:** ```json= { "intID": "b59fb26d-89df-4fea-9560-0dc3379eda82", "response": { "error": { "code": "MISSING_MANDATORY_DATA", "message": "Missing mandatory nodes: entity", "data": {} } } } ``` #### **Popis:** * **intID** `string` - interní ID DOG, pod kterým je provedeno zalogování požadavku * **response** `object` - objekt s tělem odpovědi * **error** `object` - objekt s tělem chyby * **code** `string` - označení chyby, strojově zpracovatelný kód * **message** `string` - doplňující popis chyby, většinou předávaná hodnota z dalších systémů nebo lidsky čitelná podoba chyby * **data** `object` - další strojově zpracovatelné detaily chyby ### **Seznam kódů** | Code | Message | Data | Popis | | --------------------------- | -------------------------------------- |:----:| ----- | | `INVALID_INPUT_JSON` | Chyba z parseru | - | Vstupní data nejsou validní JSON formát | | `MISSING_MANDATORY_DATA` | List chybějících polí vstupních dat | - | Kontrola vstupních dat, kontrola povinných položek a jejich struktury, případně validita stupních dat | | `INVALID_INPUT_FILE_FORMAT` | | - | Chyba MIME TYPE vstupních souborů | | `DMS_INTERNAL_ERROR` | Přeposlaná chyba z DMS | - | Vnitřní chyba na strane DMS | | `DB_INTERNAL_ERROR` | | - | Vnitřní chyba databáze, chyba není eskalovaná, je logovaná pouze interně | | `DOG_TEMPLATER_INTERNAL_ERROR` | | - | Vnitřní chyba DOG Templater | **Způsob reportování chyb je u všech endpointů stejný. Dále nebude popisovaný.** --- ## **dog://generate/pdf** > Generování PDF dokumentu pomocí šablony. **Metoda:** `POST` \ **URL:** `/generate/pdf` \ **Tělo dotazu:** `application/json` \ **Tělo odpovědi:** `application/json` #### **Příklad:** ```json= { "template": "SROVNAVACI_NABIDKA", "entity": "ECS", "data": {}, "file": { "dms": { "name": "string", "xml": "string" } } } ``` #### **Popis:** * **template** ==*== `string` - název šablony. * **entity** ==*== `string` - účetní okruh, povolené hodnoty na základě konfiguračního číselníku `DOG.dog.entity[]` [color=#ff4500] * **data** `object` - domluvený objekt s daty, která jsou nutná pro vygenerování dokumentu z šablony. * **file** ==*== `object` - definice objektu kam bude soubor uložený * **dms** `object` - objekt popisující soubor pro uložení do DMS * **name** `string` - název souboru jak bude uložen do DMS * **xml** `string` - XML metadata, obsah elementu \<v3:xmlFileAtts> při SOAP volání #### **Poznámky:** V případě, že `file.dms.name` a `file.dms.xml` není vyplněno, nedojde k uložení do DMS a soubor s PDF bude vrácen zakódovaný v `BASE64` v přímo v odpovědi. Pro úspěšné uložení do DMS je nutné zajistit XML data od správce DMS a zajistit práva na daný typ souboru pro DOG. #### **Odpověď:** ```json= { "intID": "9e584f06-1b80-4752-bb55-ab6f0df95ea5", "response": { "file": { "dms": { "id": 12454, "version": 1 }, "data": "data:application/pdf;base64,JVBERi0xLjcKJfbk/N8KMSAwIG9ia..." } } } ``` #### **Popis:** * **intID** `string` - interní ID DOG, pod kterým je provedeno zalogování požadavku * **response** `object` - objekt s tělem odpovědi * **file** `object` - objekt souboru * **dms** `object` - objekt souboru v DMS pokud byl požadován na vstupu * **id** `int` - ID DMS souboru * **version** `int` - Verze souboru v DMS * **data** `string` - data mimetype base64 soubor v případě, že nebyl požadováno uložení do DMS na vstupu --- ## Přílohy ### Číselník DOG.dog.entity[] ```json= } "entity": { "BE": ["BE", "71", "B", "BEE", "bohemiaenergy.cz"], "CE": ["CE", "82", "C", "comfortenergy.cz"], "XE": ["XE", "81", "X", "X Energie", "xenergie.cz"], "3E": ["3E", "100", "E", "3-e.cz"], "BD": ["BD", "63", "Z", "BEZ", "bezdodavatele.cz"], "SE": ["SE", "72", "S", "SK", "SKE", "slovakiaenergy.sk"], "AM": ["AM", "75", "A", "ampermarket.cz"], "BPL": ["BPL", "beplan.cz"], "ECS": ["ECS", "77", "P", "energie-cs.cz"] } } ```