---
# System prepended metadata

title: '**DOG Templater API** `v1.0.0`'
tags: [DOG]

---

---
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"]
  }
}
```