Skip to main content

Описание API

Пример создания заявки через API из CURL на PHP

$host= 'http://localhost/api/requests/'; //запрос для каждой модели свой
$username = 'admin';
$password = 'admin';
$postFields = http_build_query(['service_id' => 3, 'CUsers_id' => 'admin', 'Status' => 'Открыта',
'ZayavCategory_id' => 'Заявка на обслуживание', 'Priority' => 'Низкий',
'Name' => 'Название', 'Content' => 'текст заявки']); //передается urlencoded POST-массив
$process = curl_init($host);
curl_setopt($process, CURLOPT_HEADER, 1);
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_POST, 1);
curl_setopt($process, CURLOPT_POSTFIELDS, $postFields);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
$postFields = curl_exec($process);
curl_close($process);

Для авторизации необходимо передать логин и пароль пользователя через BASIC авторизацию. Роль пользователя должна иметь права на основные действия через API.

Сущность заявки - таблица request:

Получение всех заявок

GET /api/requests/

Возвращает массив объектов Request

Получение заявок с выборкой

GET /api/requests/?Managers_id=manager (выборка заявок с определенным исполнителем, указывается логин);

GET /api/requests/?timestamp=2016-06-17 (выборка за определенную дату);

GET /api/requests/?timestamp=2016-06-17 10:00 (выборка за определенную дату и время);

GET /api/requests/?timestamp=>2016-06-17 10:00 (выборка за дату и время большую чем указана);

GET /api/requests/?service_id=3 (выборка по определенному сервису, id сервиса можно посмотреть в БД);

Возвращает массив объектов Request отфильтрованных по условию, поддерживаются значения = (равно), =<> (неравно), =< (меньше), => (больше).

Получение одной заявки

GET /api/requests/{id}

Возвращает объект Request по id

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

POST /api/requests/

Для создания заявки необходимо передать объект Request. Минимальный набор полей для создания заявки:

service_id, Name, Content, Status, CUsers_id, Zayavcategory_id, Priority.

api1.png

Редактирование заявки

PUT /api/requests/{id}

Для редактирования заявки по id, необходимо передать объект Request в JSON формате

Пример: {"Name":"TEST22","Content":"TEST55"}

Удаление заявки

DELETE /api/requests/{id}

Удаляет заявку по id

Получение записей истории заявки

GET /api/history/?zid={id}

Передача файлов вложени

Для передачи файлов, их необходимо предварительно загрузить и после передать в массиве files перечисление id файлов.

Описание полей таблицы request доступных через API:

Обозначение


Тип данных (длина)

Описание

Пример значения

id

int(10)

Идентификатор заявки (автоинкрементное поле)

2

pid

int(10)

Идентификатор родительской заявки

1

Name

varchar (100)

Тема обращения

Тестовая заявка

ZayavCategory_id

varchar (50)

Категория заявки

Заявка на обслуживание

Date

varchar (50)

Дата создания заявки (отображаемая)

07.05.2016 11:17

StartTime


varchar (50)

Планируемая дата начала исполнения (отображаемая)

09.05.2016 09:30

fStartTime

varchar (50)

Фактическая дата начала исполнения (отображаемая)

09.05.2016 09:27

EndTime

varchar (50)

Планируемая дата выполнения (отображаемая)

09.05.2016 10:30

fEndTime

varchar(50)

Фактическая дата выполнения (отображаемая)

09.05.2016 10:25

Status

varchar (100)

Статус заявки

Просрочено исполнение

slabel


varchar(400)

Статус заявки оформленный html тегами

Пример лэйбла можно посмотреть в БД

Priority

varchar (50)

Приоритет заявки

Низкий

Managers_id


varchar (50)

Логин исполнителя

manager

CUsers_id

varchar (50)

Логин пользователя

user

phone


varchar (50)

Телефон пользователя

+79003113133

room

varchar (50

Комната

233

Address

varchar (50)

Адрес пользователя

Москва, ул. Пупырина, д.6

company

varchar (50)

Компания пользователя

Компания А

Content

text

Содержимое заявки (HTML или Текст)

<p>Сломался принтер</p>

cunits

varchar (500)

Перечисление ID связанных конфигурационных единиц (через запятую)

1, 2, 5

closed

varchar (50)

Метка состояния заявки

1 - этот параметр означает новую заявку;

2 - этот параметр означает, что заявка принята в исполнение;

3 - этот параметр означает закрытие заявки, дальше его не будет обрабатывать CRON и сверять дедлайны;

8 - этот параметр означает, что заявка отложена;

10 - заявка в архиве;

service_id


int(10)

ID сервиса(находим в БД)

3

service_name

varchar (50)

Сервис заявки

Обслуживание внутренних клиентов

timestamp

datetime

Дата создания заявки

2016-06-17 10:46:41

timestampStart

datetime

Планируемая дата начала работ

2016-06-17 12:16:00

timestampfStart

datetime

Фактическая дата начала работ

2016-06-17 12:12:11

timestampEnd

datetime

Планируемая дата завершения работ

2016-06-17 01:16:00

timestampfEnd

datetime

Фактическая дата завершения работ

2016-06-17 01:13:27

fullname


varchar (100)

Имя заказчика в заявке

Администратор

mfullname

varchar (100)

Имя исполнителя в заявке

Васин В.В.

gfullname

varchar (100)

Группа исполнителя

Первая линия поддержки

creator

varchar (100)

Имя создателя заявки

Администратор

watchers

varchar (2000)

Наблюдатели (полные имена пользователей через запятую)

Администратор,Волобуев Антон

rating

int(1)

Оценка заявки

5

lead_time

time

Время выполнения заявки

00:53:33

subs

array

Массив с комментариями заявок

[...]

files

array

Массив с вложениями заявок

[...]

flds

array

Массив с дополнительными полями

[...]

Сущность комментарии к заявке:

Получение списка комментариев к заявке осуществляется через запрос к заявке по id

GET /api/requests/{id}

Список комментариев отдеается в массиве subs

Создание нового комментария к заявке

POST /api/comments/

Описание полей таблицы comments доступных через API:

Обозначение

Тип данных (длина)

Описание

Пример значения

id

int (10)

Идентификатор комментария

10

rid

int (10)

ID заявки к которой добавляется комментарий

22

timestamp

varchar (100)

Дата добавления

14.08.2018 09:49:46

author

varchar (100)

Автор комментария

Администратор

comment

text

Текст комментария (HTML или текст)

<p>Ваш комментарий в HTML формате</p>

show

int (1)

Отображать комментарий заказчику или нет

1 (не отображать) или 0 (отображать)

channel

varchar (100)

Канал получения комментария

email, manual, widget, telegram, viber, portal

Сущность вложения (файла) к заявке:

Создание нового вложения к заявке

POST /api/files/

Для создания заявки необходимо передать объект типа file

Возвращает объект file, в котором ID файла и URL файла.

При создании заявки можно передать массив загруженных ранее файлов files[]={id1,id2} с перечислением ID файлов.

Сущность пользователь - таблица CUsers:

Получение списка пользователей

GET /api/users/

Возвращает массив объектов User

Получение одной пользователя

GET /api/users/{id}

Возвращает объект User по id

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

POST /api/users/

Для создания пользователя необходимо передать объект User

Редактирование пользователя

PUT /api/users/{id}

Для редактирования пользователя по id, необходимо передать объект User

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

DELETE /api/users/{id}

Удаляет пользователя по id

Описание полей таблицы CUsers доступных через API:

Обозначение

Тип данных (длина)

Описание

Пример

active

int(1)

Переключатель активности пользователя

1 - активен

0 - заблокирован

Username

varchar(50)

Логин пользователя

admin

fullname

varchar(100)

Полное имя пользователя

Администратор

Password

varchar(100)

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

передается строка, хранится md5 хэш

Email

varchar(50)

Email пользователя

admin@email.com

Phone

varchar(50)

Телефон пользователя

+74955556677

intphone

varchar(50)

Внутренний телефон пользователя

109

mobile

ё(50)

Мобильный телефон пользователя

+79029992255

role

varchar(50)

Системная роль пользователя

vsdeskadmin

role_name

varchar(100)

Имя роли пользователя

Администратор

company_id

int(11)

ID компании из справочника Компании

3

company

varchar(100)

Название компании из справочника Компании

Компания А

room

varchar(50)

Комната пользователя

101

department

varchar(100)

Подразделение пользователя из справочника Подразделения

ИТ отдел

umanager

varchar(100)

Руководитель пользователя

Кузнецов А. С.

position

varchar(100)

Должность пользователя

Системный администратор

sendmail

int(1)

Флаг отправки уведомлений на Email

1 - отправлять

0 - не отправлять

sendsms

int(1)

Флаг отправки уведомлений через SMS и мессенджеры

1 - отправлять

0 - не отправлять

lang

varchar(50)

Язык системы

ru - Русский

en - Английский

city

varchar(50)

Город пользователя

Москва

tbot

varchar(50)

ID чата Telegram

42938545783

vbot

varchar(50)

ID чата Viber

42938545784

msbot

varchar(50)

ID чата Microsoft Azure Bot Framework

42938545785

wbot

varchar(50)

ID чата WhatsApp

42938545786

send_wbot

int(1)

Флаг отправки уведомлений через WhatsApp

1 - отправлять

0 - не отправлять

send_tbot

int(1)

Флаг отправки уведомлений через Telegram

1 - отправлять

0 - не отправлять

send_vbot

int(1)

Флаг отправки уведомлений через Viber

1 - отправлять

0 - не отправлять

fontSize

int(2)

Размер шрифта в интерфейсе

12

Сущность актива - таблица assets:

Получение всех активов

GET /api/assets/

Возвращает массив объектовAsset

Получение одного актива

GET /api/assets/{id}

Возвращает объект Asset по id

Создание нового актива

POST /api/assets/

Для создания актива необходимо передать объектAsset

Редактирование актива

PUT /api/assets/{id}

Для редактирования актива по id, необходимо передать объект Asset

Удаление актива

DELETE /api/assets/{id}

Удаляет актив по id

Описание полей таблицы assets доступных через API:

Обозначение

Тип данных (длина)

Описание

Пример

uid

int(10)

Идентификтор КЕ, за которой закреплен актив.

1

date

string(50)

Дата создания актива

27.12.2014 14:03

name

string(50)

Наименование актива

ПК Кузнецова

location

string(50)

Местоположение актива

Склад №5

inventory

string(50)

Инвентарный номер актива

PC-125987-34

status

string(50)

Статус актива

Используется

slabel

string(400)

Статус актива оформленный html тегами

Пример можно посмотреть в БД

cost

string(50)

Стоимость актива

22500

asset_attrib_id

int(10)

Тип актива, id из справочника Типы актива

6

asset_attrib_name

string(50)

Тип актива, Имя из справочника Типы актива

Системный блок

cusers_id

int(10)

id пользователя из справочника Пользователи

1

cusers_name

string(50)

Логин пользователя из справочника Пользователи

user

cusers_fullname

string(50)

Имя пользователя из справочника Пользователи

Кузнецов А. С.

cusers_dept

string(50)

Подразделение пользователя из справочника Пользователи

Отдел продаж

items

array()

Массив характеристик актива

[...]

Сущность КЕ - таблица cunits:

Получение всех КЕ

GET /api/cunits/

Возвращает массив объектов Cunit

Получение одной КЕ

GET /api/cunits/{id}

Возвращает объект Cunit по id

СозданиеновойКЕ

POST /api/cunits/

Для создания КЕ необходимо передать объект Cunit

Редактирование КЕ

PUT /api/cunits/{id}

Для редактирования КЕ по id, необходимо передать объект Cunit

УдалениеКЕ

DELETE /api/cunits/{id}

Удаляет КЕ по id

Описание полей таблицы cunits доступных через API:

Обозначение

Тип данных (длина)

Описание

Пример

name

string(100)

Наименование КЕ

ПК Кузнецова

type

string(50)

Тип КЕ из справочника Типы КЕ

Рабочая станция

status

string(50)

Статус КЕ из справочника Статусы активов и КЕ

Используется

slabel

string(400)

Статус КЕ оформленный html тегами

Лейбл можно посмотреть в БД

cost

string(50)

Стоимость КЕ

39800

user

string(50)

Логин пользователя из справочника Пользователи

user

fullname

string(70)

Полное имя пользователя из справочника Пользователи

Кузнецов А. С.

dept

string(100)

Подразделение пользователя

Отдел продаж

inventory

string(50)

Инвентарный № КЕ

WS-156798

date

string(50)

Дата создания КЕ

27.12.2014 14:05

datein

string(50)

Дата ввода в эксплуатацию

27.12.2014

dateout

string(50)

Дата вывода из эксплуатации

27.12.2044

company

string(70)

Компания пользователя

Компания А

assets

string(2000)

Активы закрепленные за КЕ (перечисление id активов)

3,4,5,1,2

location

string(100)

Местоположение КЕ

Склад №2