ZENLIX
Search
K
Comment on page

API v.2

Отличие API v.2 от API v.1 заключается в:

  • Добавлены возможности создания заявок, а так же работы с ними (выполнение действий над заявками).
  • Изменён способ аутентификации
  • Изменён формат запросов/ответов

Авторизация

Для работы с API, необходимо иметь token, который генерируется в панели администрирования и может иметь срок действия. Метод аутентификации: JWT. Вы можете использовать token как в виде параметра token тела запроса, так и в Header Authorization: Bearer <token>.

Формат запросов и ответов

Для всех запросов используется метод POST. Формат запросов: Content-Type: multipart/form-data;. Во всех ответах формат: json. В случае ошибки, обязательно возвращаются: message, status_code.

Дополнительный параметр sudo

В качестве наличия включённого атрибута sudo, в настройках token, при запросе возможно указывать id пользователя, от которого производится действие с заявкой. В таком случае, все права на заявки берутся исключительно из настроек формы заявки id пользователя указанного в sudo. Если параметр sudo выключен или отсутствует, то по умолчанию все действия будут производиться от пользователя, указанного в настройках конкретного token.

Объекты

  1. 1.
    Пользователи:
    1. 1.
      Создание
    2. 2.
      Поиск
    3. 3.
      Просмотр
  2. 2.
    Заявки:
    1. 1.
      Просмотр возможных атрибутов для создания заявки
    2. 2.
      Просмотр списка возможных групп (кому)
      1. 1.
        Просмотр списка возможных тэгов
    3. 3.
      Просмотр списка возможных пользователей (кому)
    4. 4.
      Просмотр списка возможных SLA
    5. 5.
      Просмотр списка возможных дополнительных полей
    6. 6.
      Создание заявки
      1. 1.
        Просмотр заявки
    7. 7.
      Просмотр списка входящих заявок
    8. 8.
      Просмотр списка исходящих заявок
    9. 9.
      Просмотр списка архивных заявок
    10. 10.
      Добавление наблюдающего пользователя к заявке
    11. 11.
      Удаление наблюдающего пользователя к заявке
    12. 12.
      Переадресация заявки
    13. 13.
      Блокирование/разблокирование заявки
    14. 14.
      Выполнение/отмена заявки
    15. 15.
      Объединение заявки
    16. 16.
      Подтверждение/отмена проверки заявки после её выполнения
    17. 17.
      Комментирование заявки
  3. 3.
    Авторизация:
    1. 1.
      Log In (вход)
    2. 2.
      Log Out (выход)
  4. 4.
    IP-телефония

1.1 Создание пользователя

Endpoint: user/create
post
/api/v2/user/create
Создание пользователя
Параметры запроса:
Параметр
Описание
name (обязательный)
Имя Фамилия пользователя
email (обязательный)
Email пользователя
password (обязательный)
Пароль пользователя
groups_user (опциональный)
Список id групп, через запятую в которых пользователь с ролью пользователя
groups_super (опциональный)
Список id групп, через запятую в которых пользователь с ролью супер пользователь
notify: true/false (опциональный)
Уведомить пользователя о создании его учётной записи
lang: ru,en,uk (опциональный)
Язык интерфейса пользователя
conf_params: user,group (опциональный)
Параметры формы создания заявки
ticket_form_id (опциональный)
ID формы создания заявки
group_conf_id (опциональный)
ID группы, с которой брать форму создания заявки
role: 'admin','user','client' (опциональный)
Роль пользователя в системе
Пример ответа:
[
{
"id": 9,
"name": "[email protected]",
"email": "[email protected]",
"last_login": null,
"created_at": "2019-04-23 11:13:11",
"updated_at": "2019-04-23 11:13:11",
"deleted_at": null,
"active": "true"
}
]

1.2 Поиск пользователя

Endpoint: user/find
Параметры запроса:
Параметр
Описание
q (обязательный)
Имя Фамилия пользователя/email
Пример ответа:
[
{
"id": 9,
"name": "[email protected]",
"email": "[email protected]",
"last_login": null,
"created_at": "2019-04-23 11:13:11",
"updated_at": "2019-04-23 11:13:11",
"deleted_at": null,
"active": "true"
}
]

1.3 Просмотр пользователя

Endpoint: user
Параметры запроса:
Параметр
Описание
user_id (обязательный)
ID пользователя
Пример ответа:
{
"user": {
"id": 1,
"name": "System Account",
"email": "admin@local",
"last_login": "2019-05-17 15:38:10",
"created_at": "2019-04-05 07:48:01",
"updated_at": "2019-05-17 15:38:10",
"deleted_at": null,
"active": "true"
},
"profile": {
"user_id": 1,
"user_img": null,
"user_cover": null,
"lang": "ru",
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx",
"sms": null,
"pb": null,
"telephone": null,
"skype": null,
"address": null,
"position": "$request->profile['email']",
"birthdayDay": 1,
"birthdayMonth": 1,
"birthdayYear": 1950,
"email": "admin@local",
"facebook": null,
"twitter": null,
"website": null,
"about": null,
"skills": "",
"created_at": "2019-04-05 07:48:01",
"updated_at": "2019-05-06 14:24:03"
},
"role": {
"id": 1,
"created_at": "2019-04-05 07:48:01",
"updated_at": "2019-04-05 07:48:01",
"user_id": 1,
"role": "admin"
},
"group_admin": [
{
"id": 1,
"name": "Default group",
"description": "Default group",
"cover": null,
"icon": null,
"status": "public",
"description_full": null,
"slogan": null,
"address": null,
"tags": null,
"facebook": null,
"twitter": null,
"group_urlhash": "def_group",
"created_at": "2019-04-08 09:17:06",
"updated_at": "2019-04-08 09:17:06",
"pivot": {
"user_id": 1,
"group_id": 1,
"created_at": "2019-04-12 12:43:24",
"updated_at": "2019-04-12 12:43:24",
"status": "success",
"priviliges": "admin"
}
}
],
"group_user": [
{
"id": 1,
"name": "Default group",
"description": "Default group",
"cover": null,
"icon": null,
"status": "public",
"description_full": null,
"slogan": null,
"address": null,
"tags": null,
"facebook": null,
"twitter": null,
"group_urlhash": "def_group",
"created_at": "2019-04-08 09:17:06",
"updated_at": "2019-04-08 09:17:06",
"pivot": {
"user_id": 1,
"group_id": 1,
"created_at": "2019-04-12 12:43:24",
"updated_at": "2019-04-12 12:43:24",
"status": "success",
"priviliges": "user"
}
}
],
"contacts": [
{
"id": 10,
"user_id": 1,
"type": "email",
"primary": "true",
"value": "[email protected]",
"created_at": "2019-04-15 08:11:47",
"updated_at": "2019-04-15 08:11:47"
},
{
"id": 11,
"user_id": 1,
"type": "email",
"primary": "false",
"value": "[email protected]",
"created_at": "2019-04-15 08:11:47",
"updated_at": "2019-04-15 08:11:47"
}
],
"ticket_conf": {
"id": 1,
"created_at": "2019-04-05 07:48:01",
"updated_at": "2019-04-05 07:48:01",
"user_id": 1,
"ticket_form_id": 1,
"conf_params": "user",
"group_conf_id": null
},
"fields": [
{
"id": 1,
"created_at": "2019-04-12 13:11:27",
"updated_at": "2019-04-15 08:11:47",
"user_field_id": 1,
"user_id": 1,
"field_data": "$profileReq['profile']к"
},
{
"id": 2,
"created_at": "2019-04-12 13:20:31",
"updated_at": "2019-04-15 08:11:47",
"user_field_id": 2,
"user_id": 1,
"field_data": ""
}
]
}

2.1 Просмотр возможных атрибутов для создания заявки

Endpoint: ticket/precreate
Параметры запроса: -
Пример ответа:
{
"prio": "true", Возможность установки приоритета заявки
"files": {
"active": "true", Возможность загрузки файлов
"types": "jpeg,png", Допустимые форматы файлов
"count": 3, Разрешённое к-во файлов
"size": 1024 Максимальный размер каждого файла
},
"deadline": "true", Возможность установки крайнего срока выполнения заявки
"watching": "true", Возможность установки наблюдающих за заявкой
"individual_ok": "true", Индивидуальное выполнение заявки
"check_after": "true", Возможность принять заявку после её выполнения
"create_user": "true", Возможность создавать пользователя
"target_group": [
{
"id": 1,
"name": "Группа 1"
}
],
"target_users": [
{
"id": 1,ID пользователей на которых разрешено создавать заявку
"name": "Группа 1"
}
],
"fields": [ Список дополнительных полей заявки
{
"id": 1,
"created_at": "2019-04-08 11:22:32",
"updated_at": "2019-04-08 11:22:32",
"name": "IP-адрес", Название поля
"f_type": "text", Тип поля
"required": "true", Обязательное поле
"field_name": "IP-адрес",
"field_value": null,
"field_placeholder": "IP-адрес",
"field_hash": "E3IQzkECnRqOQEZ9roKdg4ymRiImcuvYzruyti53"
}
],
"sla": [ Список допустимых SLA-планов
{
"id": 1,
"name": "Группа 1"
}
],
"subj": true, Возможность установки темы заявки
"msg": true, Возможность установки сообщения
"tags": true Возможность установки тэгов к заявке
}

2.2 Просмотр списка возможных групп (кому)

Endpoint: ticket/groups/list
Параметры запроса: -
Пример ответа:
[
{
"id": 1,
"name": "Группа 1"
}
]

2.2.1 Просмотр списка возможных тэгов

Endpoint: ticket/tags/list
Параметры запроса: -
Пример ответа:
[
{
"id": 1,
"name": "To Do"
}
]

2.3 Просмотр списка возможных пользователей (кому)

Endpoint: ticket/users/list
Параметры запроса: -
Пример ответа:
[
{
"id": 1,
"name": "User Name"
}
]

2.4 Просмотр списка возможных SLA

Endpoint: ticket/sla/list
Параметры запроса: -
Пример ответа:
[
{
"id": 1,
"name": "SLA 1"
}
]

2.5 Просмотр списка возможных дополнительных полей

Endpoint: ticket/custom_fields/list
Параметры запроса: -
Пример ответа:
[
{
"id": 1,
"created_at": "2019-04-08 11:22:32",
"updated_at": "2019-04-08 11:22:32",
"name": "IP-адрес",
"f_type": "text",
"required": "true",
"field_name": "IP-адрес",
"field_value": null,
"field_placeholder": "IP-адрес",
"field_hash": "E3IQzkECnRqOQEZ9roKdg4ymRiImcuvYzruyti53"
}
]

2.6 Создание заявки

Endpoint: ticket/create
Параметры запроса:
Параметр
Описание
deadline: true (не обязательный)
Активировать карйний срок заявке
deadlineYear
Год крайнего срока
deadlineMonth
Месяц крайнего срока
deadlineDay
День крайнего срока
deadlineTime
Время крайнего срока
msg (обязательный)
Сообщение
subj (обязательный)
Тема заявки
prio: low, normal, high
приоритет заявки
tags: ID
тэги с запятой в качестве разделительного знака
sla
SLA id
target_group (обязательный)
ID группы, на которую создана заявка
target_users
ID пользователей с запятой в качестве разделительного знака которым назначена заявка
clients
ID пользователей с запятой в качестве разделительного знака, клиенты
check_after true/false
Проверять заявку после её выполнения
individual_ok true/false
Индивидуальное выполнение заявки каждого
notify_client true/false
Уведомить клиента о создании заявки
watching_users
ID пользователей с запятой в качестве разделительного знака которые будут видеть заявку
fields[]
где - id дополнительного поля
files[]
где - порядковый номер или другой атрибут файла для загрузки
Пример ответа:
{
"id": 16,
"author_id": 1,
"code": "PS4X",
"client_id": null,
"prio": "normal",
"text": "test",
"subject": "test",
"tags": "1,2",
"urlhash": "7AC5eA2Knv",
"sla_id": null,
"target_group_id": null,
"deadline_time": null,
"inspect_after_ok": "false",
"individual_ok": "false",
"overtime": "false",
"planner_flag": "false",
"merge_flag": "false",
"deleted_at": null,
"status": "free",
"created_at": "2019-05-15 15:12:44",
"updated_at": "2019-05-17 16:30:16"
}

2.6.1 Просмотр заявки

Endpoint: ticket/show
Параметры запроса:
Параметр
Описание
code
Уникальный код заявки
Пример ответа:
{
"id": 16,
"author_id": 1,
"code": "PS4X",
"client_id": null,
"prio": "normal",
"text": "test",
"subject": "test",
"tags": "1,2",
"urlhash": "7AC5eA2Knv",
"sla_id": null,
"target_group_id": null,
"deadline_time": null,
"inspect_after_ok": "false",
"individual_ok": "false",
"overtime": "false",
"planner_flag": "false",
"merge_flag": "false",
"deleted_at": null,
"status": "free",
"created_at": "2019-05-15 15:12:44",
"updated_at": "2019-05-17 16:30:16"
}

2.7 Просмотр списка входящих заявок

Endpoint: ticket/list/in
Параметры запроса:
Параметр
Описание
order_column
название поля, по которому необходимо произвести сортировку
order_sort asc/desc
вид сортировки
limit
к-во выдаваемых записей
offset
начальный элемент
Пример ответа:
{
"tickets": [
{
"code": "QS92",
"prio": "normal",
"subject": "test",
"author": {
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx"
},
"created_at": {
"date": "2019-05-17 16:05:25.000000",
"timezone_type": 3,
"timezone": "Europe/Kiev"
},
"clients": [
{
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx",
"id": 1
}
],
"tags": [
{
"name": "to do",
"id": 1
}
],
"targets": {
"group": null,
"users": [
{
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx",
"id": 1
}
]
},
"ticket_status": "free",
"text": "test",
"tags": "api_v2",
"urlhash": "wT7V0b4J8B",
"overtime": "false",
"planner_flag": "false"
},
...

2.8 Просмотр списка исходящих заявок

Endpoint: ticket/list/out
Параметры запроса:
Параметр
Описание
order_column
название поля, по которому необходимо произвести сортировку
order_sort asc/desc
вид сортировки
limit
к-во выдаваемых записей
offset
начальный элемент
Пример ответа:
{
"tickets": [
{
"code": "QS92",
"prio": "normal",
"subject": "test",
"author": {
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx"
},
"created_at": {
"date": "2019-05-17 16:05:25.000000",
"timezone_type": 3,
"timezone": "Europe/Kiev"
},
"tags": [
{
"name": "to do",
"id": 1
}
],
"clients": [
{
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx",
"id": 1
}
],
"targets": {
"group": null,
"users": [
{
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx",
"id": 1
}
]
},
"ticket_status": "free",
"text": "test",
"tags": "api_v2",
"urlhash": "wT7V0b4J8B",
"overtime": "false",
"planner_flag": "false"
},
...

2.9 Просмотр списка архивных заявок

Endpoint: ticket/list/arch
Параметры запроса:
Параметр
Описание
order_column
название поля, по которому необходимо произвести сортировку
order_sort asc/desc
вид сортировки
limit
к-во выдаваемых записей
offset
начальный элемент
Пример ответа:
{
"tickets": [
{
"code": "QS92",
"prio": "normal",
"subject": "test",
"author": {
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx"
},
"tags": [
{
"name": "to do",
"id": 1
}
],
"created_at": {
"date": "2019-05-17 16:05:25.000000",
"timezone_type": 3,
"timezone": "Europe/Kiev"
},
"clients": [
{
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx",
"id": 1
}
],
"targets": {
"group": null,
"users": [
{
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx",
"id": 1
}
]
},
"ticket_status": "free",
"text": "test",
"tags": "api_v2",
"urlhash": "wT7V0b4J8B",
"overtime": "false",
"planner_flag": "false"
},
...

2.10 Добавление наблюдающего пользователя к заявке

Endpoint: ticket/watching/add
Параметры запроса:
Параметр
Описание
code
Код заявки
watching_users
ID пользователей с запятой в качестве разделительного знака, которые будут смотреть за заявкой
Пример ответа:
[
1,
2,
3
]

2.11 Удаление наблюдающего пользователя к заявке

Endpoint: ticket/watching/remove
Параметры запроса:
Параметр
Описание
code
Код заявки
watching_users
ID пользователей с запятой в качестве разделительного знака, которых исключить со списка наблюдающих
Пример ответа:
[
1,
2,
3
]

2.12 Переадресация заявки

Endpoint: ticket/refer
Параметры запроса:
Параметр
Описание
target_group (обязательный)
ID группы, на которую переадресовать заявку
target_users
ID пользователей с запятой в качестве разделительного знака, на которых направить заявку
msg (обязательный)
сообщение
Пример ответа:
{
"id": 16,
"author_id": 1,
"code": "PS4X",
"client_id": null,
"prio": "normal",
"text": "test",
"subject": "test",
"tags": "1,2",
"urlhash": "7AC5eA2Knv",
"sla_id": null,
"target_group_id": null,
"deadline_time": null,
"inspect_after_ok": "false",
"individual_ok": "false",
"overtime": "false",
"planner_flag": "false",
"merge_flag": "false",
"deleted_at": null,
"status": "free",
"created_at": "2019-05-15 15:12:44",
"updated_at": "2019-05-17 16:30:16"
}

2.13 Блокирование/разблокирование заявки

Endpoint: ticket/toggle/work
Параметры запроса:
Параметр
Описание
code (обязательный)
Код заявки
Пример ответа:
{
"id": 16,
"author_id": 1,
"code": "PS4X",
"client_id": null,
"prio": "normal",
"text": "test",
"subject": "test",
"tags": "api_v2",
"urlhash": "7AC5eA2Knv",
"sla_id": null,
"target_group_id": null,
"deadline_time": null,
"inspect_after_ok": "false",
"individual_ok": "false",
"overtime": "false",
"planner_flag": "false",
"merge_flag": "false",
"deleted_at": null,
"status": "free",
"created_at": "2019-05-15 15:12:44",
"updated_at": "2019-05-17 16:30:16"
}

2.14 Выполнение/отмена заявки

Endpoint: ticket/toggle/success
Параметры запроса:
Параметр
Описание
code (обязательный)
Код заявки
Пример ответа:
{
"id": 16,
"author_id": 1,
"code": "PS4X",
"client_id": null,
"prio": "normal",
"text": "test",
"subject": "test",
"tags": "api_v2",
"urlhash": "7AC5eA2Knv",
"sla_id": null,
"target_group_id": null,
"deadline_time": null,
"inspect_after_ok": "false",
"individual_ok": "false",
"overtime": "false",
"planner_flag": "false",
"merge_flag": "false",
"deleted_at": null,
"status": "free",
"created_at": "2019-05-15 15:12:44",
"updated_at": "2019-05-17 16:30:16"
}

2.15 Объединение заявки

Endpoint: ticket/merge
Параметры запроса:
Параметр
Описание
code (обязательный)
Код заявки основной
child_code (обязательный)
Код заявки, которая будет привязана к основной
Пример ответа:
{
"id": 16,
"author_id": 1,
"code": "PS4X",
"client_id": null,
"prio": "normal",
"text": "test",
"subject": "test",
"tags": "api_v2",
"urlhash": "7AC5eA2Knv",
"sla_id": null,
"target_group_id": null,
"deadline_time": null,
"inspect_after_ok": "false",
"individual_ok": "false",
"overtime": "false",
"planner_flag": "false",
"merge_flag": "false",
"deleted_at": null,
"status": "free",
"created_at": "2019-05-15 15:12:44",
"updated_at": "2019-05-17 16:30:16"
}

2.16 Подтверждение/отмена проверки заявки после её выполнения

Endpoint: ticket/approve
Параметры запроса:
Параметр
Описание
code (обязательный)
Код заявки
status: true/false (обязательный)
Статус подтверждения выполненной заявки
rate (0-5)
рейтинг выполнения заявки
Пример ответа:
{
"id": 16,
"author_id": 1,
"code": "PS4X",
"client_id": null,
"prio": "normal",
"text": "test",
"subject": "test",
"tags": "api_v2",
"urlhash": "7AC5eA2Knv",
"sla_id": null,
"target_group_id": null,
"deadline_time": null,
"inspect_after_ok": "false",
"individual_ok": "false",
"overtime": "false",
"planner_flag": "false",
"merge_flag": "false",
"deleted_at": null,
"status": "free",
"created_at": "2019-05-15 15:12:44",
"updated_at": "2019-05-17 16:30:16"
}

2.17 Комментирование заявки

Endpoint: ticket/comment
Параметры запроса:
Параметр
Описание
code (обязательный)
Код заявки
msg (обязательный)
текст комментария
files[*]
массив файлов
visible_client true/false (обязательный)
видимость комментария для пользователей с правами клиента
Пример ответа:
{
"text": "test",
"author_id": 1,
"ticket_id": 16,
"visible_client": "true",
"urlhash": "aKzZmyae2h",
"updated_at": "2019-05-17 22:13:36",
"created_at": "2019-05-17 22:13:36",
"id": 2
}

3.1 Вход

Endpoint: login
Параметры запроса:
Параметр
Описание
email (обязательный)
Email
password (обязательный)
Пароль
uDeviceCode
Код устройства
uDeviceName
Имя устройства
uDeviceToken
Токен устройства
Пример ответа:
{
"token": "7enCAXGbwyDTAAWwLIy6s6vKa3cy0PNb12QhSza6b4ajna4m4rpujpQ0lJ7dSZPV",
"user_info": {
"user": {
"id": 1,
"name": "System Account",
"email": "admin@local",
"last_login": "2019-11-06 07:56:16",
"created_at": "2019-04-05 07:48:01",
"updated_at": "2019-11-06 07:56:16",
"deleted_at": null,
"active": "true",
"profile": {
"user_id": 1,
"user_img": null,
"user_cover": null,
"lang": "ru",
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx",
"sms": null,
"pb": null,
"telephone": null,
"skype": null,
"address": null,
"position": "\u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u044c",
"birthdayDay": "1970-01-01 03:00:01",
"birthdayMonth": 1,
"birthdayYear": 1950,
"email": "[email protected]",
"facebook": null,
"twitter": null,
"website": null,
"about": null,
"skills": "",
"created_at": "2019-04-05 07:48:01",
"updated_at": "2019-10-14 17:25:02",
"birthday": null,
"telegram": null,
"telegramId": null,
"organization": null,
"nickname": "admin"
}
},
"profile": {
"user_id": 1,
"user_img": null,
"user_cover": null,
"lang": "ru",
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx",
"sms": null,
"pb": null,
"telephone": null,
"skype": null,
"address": null,
"position": "\u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u044c",
"birthdayDay": "1970-01-01 03:00:01",
"birthdayMonth": 1,
"birthdayYear": 1950,
"email": "[email protected]",
"facebook": null,