---
# System prepended metadata

title: '**DOG Anonymizer API** `v1.4.0`'
tags: [DOG]

---

---
tags: DOG
---
# **DOG Anonymizer API** `v1.4.0`
> API slouží pro Anonymizaci PDF pomocí grafických bloků, jeho vyčištění od metadat a jeho převedení do obrázku vloženého do PDF.





---
## **Změny ve verzích**
### **v1.4.0**
#### **Přidáno**
* Možnost vybrat stránky určené k anonymizace a exportovat do výsledného dokumentu jen ty pomocí parametru `page[]`
### **v1.3.0**
#### **Přidáno**
* Možnost ovlivnit kvalitu výsledného dokumentu
### **v1.2.0**
#### **Přidáno**
* Možnost anonymizovat soubor bez využití DMS.
* Akceptace `area[].color` s i bez úvodního znaku `#`





---
### **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í chyna na strane DMS |
| `DOG_ANONYMIZER_INTERNAL_ERROR` |                                    | -    | Vnitřní chyba DOG Anonymizer |


**Způsob reportování chyb je u všech endpointů stejný. Dále nebude popisovaný.**






---
## **dog://anonymize/pdf**
> Anonymizace dokumentu PDF pomocí grafických bloků, jeho očištění od metadat a převedení do obrázku vloženého do PDF.

**Metoda:** `POST` \
**URL:** `/anonymize/pdf` \
**Tělo dotazu:** `application/json` \
**Tělo odpovědi:** `application/json`

#### **Příklad:**
```json=
{
    "area": [
        {
            "page": 1,
            "x1": 55,
            "y1": 8,
            "x2": 190,
            "y2": 33,
            "color": "FF0000",
            "type": "rect"
        },
        {
            "x1": 10,
            "y1": 58,
            "x2": 194,
            "y2": 200
        }
    ],
    "page": [
        {
            "from": 1,
            "to": 2
        }
    ],
    "document": {
        "quality": 75,
        "ppi": 144
    },
    "file": {
        "dms": {
            "name": "",
            "xml": ""
        },
        "data": "data:application/pdf;base64,JVBERi0xLjcKJeLjz9MKMjIgMCBvYmo..."
    }
}
```
#### **Popis:**
* **area** ==*== `array of objects`- pole objektů jednotlivých anonymizačních elementů
  * **page** `int` [1] - strana dokumentu, kam bude anonymizační element vykreslen
  * **x1** `float` - vodorovná souřadnice levého horního rohu elementu od levé hrany dokumentu v `mm`
  * **y1** `float` - svislá souřadnice levého horního rohu elementu od horní hrany dokumentu v `mm`
  * **x2** `float` - vodorovná souřadnice pravého dolního rohu elementu od levé hrany dokumentu v `mm`
  * **y2** `float` - svislá souřadnice pravého dolního rohu elementu od horní hrany dokumentu v `mm`
  * **color** `string` ["#000000"] - barva elementu v HTML kódu
  * **type** `string` ["rect"] - typ elementu - `rect`: obdélník (zatím není podpora jiných typů elementů)
* **page** `array of objects` - pole objektů s požadovaným listem stránek, které jsou požadovány do výsledného dokumentu, když není vyplněno, automaticky se bere celý dokument
  * **from** `int` [1] - od které stránky anonymizovat
  * **to** `int` [0] - do které stránky anonymizovat, pokud je nula, tak je to bez omezení až do konce dokumentu
* **document** `object` - globální nastavení pro dokument
    * **quality** `uint` [75] - kvalita výsledných obrázků v dokumentu po anonymizaci
    * **ppi** `float64` [144] - points per inch
* **file** ==*== `object` - definice objektu se souborem určeným k podpisu
  * **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í DMS
  * **data** `string` - data mimetype s base64 souborem, akceptace pouze `application/pdf`

#### **Poznámky:**
V případě, že `file.dms.name` a `file.dms.xml` není vyplněno, nedojde k uložení do DMS. 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.

V případě, že chceme anonymizovat jen jednu stránku, je nutné do page[].From a page[].To dát stejnou hodnotu.

#### **Odpověď:**
```json=
{
    "intID": "9e584f06-1b80-4752-bb55-ab6f0df95ea5",
    "response": {
        "file": {
            "dms": 3367441,
            "version": 1,
            "data": ""
        }
    }
}
```

v budoucí verzi bude upraveno na:
```json=
{
    "intID": "9e584f06-1b80-4752-bb55-ab6f0df95ea5",
    "response": {
        "file": {
            "dms": {
                "id": 3367441,
                "version": 1
            },
            "data": ""
        }
    }
}
```
#### **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
      * **id** `int` - ID DMS souboru
      * **version** `int` - Verze souboru v DMS
    * **data** `string` - v případě, že nebylo použito DMS tak bude vrácen soubor v BASE64 přímo