5.14.2 api dir create
Funkce /api/dir/create umožňuje vytvářet (nebo přepisovat) pole záznamů v adresáři a nastavovat jejich vybraná pole.
Skupiny služeb a privilegií
- Služba je System.
- Privilegia jsou Systém – řízení.
Metody
- PUT
Požadavky
Požadavek obsahuje parametr query a parametry ve formátu application/json.
parametr | typ | očekávané hodnoty | výchozí hodnota | popis |
---|---|---|---|---|
force | query |
|
| Tento klíč vybírá, zda bude záznam v adresáři identifikovaný daným uuid (viz níže) přepsán novou sadou dat. Když bude hodnota tohoto klíče nastavena na Když bude nastavena na Tento klíč nijak neovlivňuje vytvoření nového záznamu v adresáři. |
.users | application/json | pole JSON objektů definujících parametry záznamu v adresáři | n/a | Přehled všech dostupných klíčů ve JSON definici záznamu v adresáři najdete v kapitole api/dir/template. Do pole je možné zadávat prázdné objekty. Zařízení vytvoří pro každý prázdný objekt prázdný záznam v adresáři (pouze s přiřazeným identifikátorem uuid). Jestliže nějaký objekt v poli obsahuje klíč uuid, vytvoří se nebo změní záznam s daným uuid nebo zařízení odpoví chybovým kódem. Jestliže nějaký objekt v poli neobsahuje uuid, zařízení vytvoří nový záznam a přiřadí mu nový identifikátor uuid. Parametry záznamu jsou nastaveny na hodnoty podle klíčů definovaných v JSON struktuře požadavku. Viz příklad dole. Jestliže je klíč vynechán nebo jeho hodnota je prázdné pole, odpověď zařízení obsahuje pouze klíč series (nevytvoří se nové záznamy v adresáři). |
Příklady požadavku
URL: https://192.168.1.1/api/dir/create?force=1 JSON: { "users": [ { "uuid": "01234567-89AB-CDEF-0123-456789ABCDEF", "name": "Julius Thompson", "email": "Julius@snlsa.com", "access": { "pin": "1234" } }, { "name": "Carlos Inpiers", "owner": "My2N", "email": "Carlos_Inpieros@emailos.cz" }, { "uuid": "01234567-89AB-CDEF-0123-456789ABCDEF", "name": "Fridrich Dairy", "email": "mycountry", "access": { "pin": "5678" }, "test": "something", "albert": "einstein" }, {}, {} ] }
- První záznam: Pokud v adresáři není žádný záznam s uuid 01234567-89AB-CDEF-0123-456789ABCDEF, zařízení vytvoří záznam s tímto identifikátorem a nastaví název jeho parametrů, e-mail a přístup na zadané hodnoty. Je-li v adresáři záznam s uuid 01234567-89AB-CDEF-0123-456789ABCDEF, zařízení přepíše název jeho parametrů, e-mail a přístup na zadané hodnoty a všechny jeho ostatní parametry nastaví na výchozí hodnoty (protože parametr klíče force je nastaven na
True
). - Zařízení vytvoří druhý záznam, přiřadí mu náhodný identifikátor uuid, nastaví jeho název, vlastníka a e-mail na zadané hodnoty a zbylým parametrům ponechá výchozí hodnoty.
- Třetí záznam nepřepíše stávající záznam se stejným uuid, protože je tam několik chyb (e-mail má nesprávný formát, jsou tam neexistující pole s názvem test a albert).
- Vytvoření čtvrtého a pátého záznamu proběhlo úspěšně s náhodně přiřazeným identifikátorem uuid a všechna pole byla nastavena na výchozí hodnoty.
URL: https://192.168.1.1/api/dir/create JSON: { "users":[ { "name":"user1", "email":"user1gmail.com", "callPos":[ { "peer":"2246", "profiles":"", "grouped":false } ] }, { "name":"user2", "email":"user2@gmail.com", "callPos":[ { "peer":"2246", "profiles":"", "grouped":false } ] }, { "name":"user3", "email":"user3@gmail.com", "callPos":[ { "peer":"234324234", "profiles":"", "grouped":false } ] } ] }
Požadavek se snaží vytvořit tři nové záznamy v adresáři. Jednotlivým záznamům se snaží přiřadit náhodný identifikátor uuid, nastavit jejich jméno, e-mail a informace o volání (CallPos). Zbylým parametrům ponechá výchozí hodnoty.
Odpověď
Odpověď je ve formátu application/json. Výsledek (result) obsahuje klíče series a users.
Více informací o použití klíče series najdete v kapitole api/dir/query.
Klíč users obsahuje pole objektů, které obsahují klíče a hodnoty z výsledku požadavku (viz následující tabulka).
Tip
- Více o struktuře JSON odpovědi se dozvíte z příkladu na konci této kapitoly.
Klíč | Typické vrácené hodnoty | Popis |
---|---|---|
uuid | uuid | Unikátní uživatelský identifikátor (Unique User Identifier) vytvořeného, upraveného nebo nezměněného záznamu. |
timestamp | celé číslo | Časová značka změn provedených v adresáři. Více informací o použití časové značky najdete v kapitole api/dir/query. Časová značka je uvedena, jen když je změna v adresáři provedena úspěšně. |
errors | pole chybových objektů | Chybový objekt obsahující pole všech chyb, které nastaly. Objekt errors je uveden, jen když se změnu v adresáři nepodařilo provést. V hodnotě klíče code je obsažen chybový kód, který ukazuje důvod neúspěšného provedení změny v adresáři. Další zpřesnění důvodu chyby může být v hodnotě klíče field pro chybové kódy V odpovědi se mohou vrátit následující chybové kódy:
|
Příklady odpovědí
{ "success": true, "result": { "series": "6423407687606431951", "users": [ { "uuid": "01234567-89AB-CDEF-0123-456789ABCDEF", "timestamp": 34 }, { "uuid": "044197A7-54AD-7577-6EEA-787A6097263E", "timestamp": 35 }, { "errors": [ { "code": "EDIR_FIELD_VALUE_ERROR", "field": "email" }, { "code": "EDIR_FIELD_NAME_UNKNOWN", "field": "test" }, { "code": "EDIR_FIELD_NAME_UNKNOWN", "field": "albert" } ] }, { "uuid": "41970B83-21C8-45DD-8FFC-787A6097263E", "timestamp": 36 }, { "uuid": "0447BBA7-6E7c-420C-A654-466D43D6A067", "timestamp": 37 } ] } }
- První záznam je vytvořen se zadaným identifikátorem uuid a zadanými poli (nezadaná pole jsou nastavena na výchozí hodnoty). Záznam se vytvoří bez ohledu na existenci záznamu se stejným uuid, protože klíč force je v požadavku nastaven na
true
. Vrátí se časová značka změny. - Druhý záznam je vytvořen s náhodným uuid a jsou vyplněna zadaná pole (nezadaná pole jsou nastavena na výchozí hodnoty). Vrátí se časová značka změny.
- Třetí objekt v požadavku obsahoval neplatný formát e-mailové adresy. Navíc klíče test a albert odkazovaly k neexistujícím polím.
- Vytvoření čtvrtého a pátého záznamu proběhlo úspěšně s náhodně přiřazeným identifikátorem uuid a všechna pole byla nastavena na výchozí hodnoty. Časová značka v zařízení se tudíž dvakrát aktualizovala. Vrátí se časové značky změn.
{ "success":true, "result":{ "series":"2068093780728692847", "users":[ { "uuid":"01234567-89AB-CDEF-0123-456789ABCDCC", "errors":[ { "code":"EDIR_FIELD_VALUE_ERROR", "field":"email" } ] }, { "uuid":"01234567-89AB-CDEF-0123-456789ABCDCB", "timestamp":15207 }, { "uuid":"01234567-89AB-CDEF-0123-456789ABCDCA", "timestamp":15208 } ] } }
E-mail záznamu pro uživatele user1 nebyl platný, záznam tedy nebyl vytvořen. Zbylí dva uživatelé byli vytvořeni úspěšně.