Каталоги (Catalogs)
Ресурс Catalog — каталог с записями.
Ресурс Catalog — каталог с записями.
Список каталогов
URL: {domain}/api/v1/catalogs?sectionId={sectionId}
Метод: GET
Параметры:
sectionId(строка) — фильтр по отделу
Ответ: 200 OK (application/json)
[{ "id": "1", "sectionId": "1", "icon": "user-2", "name": "My catalog", "fieldPrivilegeCodes": { "9": "edit", "22": "edit" } }, { "id": "2", "sectionId": "2", "icon": "user-3", "name": "Another catalog", "fieldPrivilegeCodes": {} }]
Получить каталог
URL: {domain}/api/v1/catalogs/{catalogId} {?fields}
Метод: GET
Параметры:
catalogId(строка) — идентификатор каталогаfields(json array, опционально) — набор возвращаемых полей записей, формат: ["2", "3"]. Доступно с версии API 1.9.1.
Ответ: 200 OK (application/json)
{ "id": "1", "sectionId": "1", "icon": "icon1", "name": "My catalog", "privilegeCode": "admin", // право на каталог "fieldPrivilegeCodes": { // права на поля для пользователя от имени которого пришел запрос "9": "edit", "22": "edit" }, "fields": [ { "id": "1", "name": "User", "type": "group" }, { "id": "2", "name": "Username", "type": "text", "config": { "type": "mail" } }, { "id": "3", "name": "Birthday", "type": "date", "config": { "time": false }, { "id": "28", "name": "Связанный каталог", "type": "object", "hint": "", "required": false, "apiOnly": false, "config": { "multiselect": true, "accessOnly": false, "catalogs": [ { "id": "25", "title": "Связанный каталог", "icon": "business-23", "removed": false } ], "views": [], "fields": { "25": [ { "id": "2", "name": "Число", "type": "number", "hint": "", "required": false, "apiOnly": false, "config": { "unit": "", "defaultEmptyValue": null } }, { "id": "3", "name": "Дата", "type": "date", "hint": "", "required": false, "apiOnly": false, "config": { "time": false, "defaultValue": false } }, { "id": "4", "name": "Связанный каталог", "type": "object", "hint": "", "required": false, "apiOnly": false, "config": { "catalogs": [], "views": [], "defaultEmptyValue": [], "fields": {} } } ] }, "defaultEmptyValue": [] } } ] }
Создать каталог
URL: {domain}/api/v1/catalogs/
Метод: POST
Запрос: (application/json)
{ "name": "New catalog", "icon": "icon", "sectionId": "2", "fields": [{ "name": "Секция", "hint": "", "type": "group", "config": {} }, { "name": "Текст", "hint": "Подсказка к полю текст", "type": "text", "config": { "type": "text" } }, { "name": "Дата", "hint": "", "type": "date", "config": { "time": false, "notificationField": null } }, { "name": "Набор галочек", "hint": "", "type": "checkboxes", "config": { "items": [{ "name": "1" }, { "name": "2" }, { "name": "3" }] } }, { "name": "Прогресс", "hint": "", "type": "progress", "config": {} }, { "name": "Сотрудник", "hint": "", "type": "user", "config": { "multiselect": false } }, { "name": "Связанный объект", "hint": "", "type": "object", "config": { "multiselect": false, "catalogs": [{ "id": "11" }] } }, { "name": "Файл", "hint": "", "type": "file", "config": { "multiselect": false } }] }
Возможные значения для icon описаны в документации.
Ответ: 200 OK (application/json)
{ "id": "3" // идентификатор созданного каталога "values": { // значения полей аналогично получению каталога } }
Изменить каталог
URL: {domain}/api/v1/catalogs/{catalogId}
Метод: PATCH
Параметры:
catalogId(строка) — идентификатор каталога
Запрос: (application/json)
{ "name": "My catalog1", // если не передать параметр (например icon), то он изменен не будет "fields" : [ { "id": "1", // чтобы сохранить существующее поле, нужно указать его id "name": "User", "type": "group" }, { "id": "2", "name": "User full name", // в существующем поле можно изменить имя "type": "text", // тип заменить нельзя "config": { // в существующем поле можно изменить его параметры "type": "mail" } }, // поле 3 в новом наборе полей не передали: если оно было, оно будет удалено // создали новое поле { "name": "Age", "type": "number" } ] }
Ответ: 200 OK
Удалить каталог
URL: {domain}/api/v1/catalogs/{catalogId}
Метод: DELETE
Параметры:
catalogId(строка) — идентификатор каталога
Ответ: 200 OK