====== Описание API V2 мобильного приложения Д24 V2 ======
==== Список URL ====
* URL продакшн сервера https://ds24.ru/piedpiper
* URL тестового сервера https://s0.ds24.ru/piedpiper
* URL сервера аутентификациии https://auth.ds24.ru/api/
* URL FS API https://ds24.ru/fs
===== Виды push-уведомлений =====
* З_СП Заявка | принята в работу (переход в заявку с ид object_id при наличии)
* З_СО Заявка | открыта повторно (переход в заявку с ид object_id при наличии)
* З_К Заявка | Комментарий к заявке добавлен (переход в заявку с ид object_id при наличии)
* З_Ф Заявка | Фото к заявке добавлено (переход в заявку с ид object_id при наличии)
* З_Н Заявка | Пользователь назначен исполнителем или ответственным (переход в заявку с ид object_id при наличии)
* О_С Оповещение | Оповещение новое об отключениях (переход в оповещение с ид object_id при наличии)
* Ж_О Журнал звонков | Оповещение об ответе на комментарий к звонку (переход в детализацию звонка с ид object_id при наличии)
* З_СР Заявки | Срочные заявки - открытие приложения с предустановленным фильтром ?????????????? DEPRECATED
* З_НП Заявки | Не принятые в работу - открытие приложения с предустановленным фильтром (например "1 заявок требуют вашего внимания") (фильтры - Мои + Непринятые в работу)
* З_КА Заявки | Посылается запрос по статусу аварийной заявки с быстрой кнопкой «Авария устранена» (переход в заявку с ид object_id при наличии)
* Ч_Н Чек-лист | Пользователь назначен проверяющим (переход в чек-лист с ид object_id при наличии)
* Ч_НП Чек-лист | Находящиеся в работе чек листы
* Ф_С Документы | Создание документа по заявке от пользователя
* Без вида / с видом не определнным - открытие текста пуша в модалке
apple
let push = {
aps : {
sound : "default",
alert : {
title : "Диспетчер24",
body : MESSAGE,
object_id : OBJECT_ID,
object : OBJECT_TYPE,
msg_id : PUSH_ID
}
}
};
if (OBJECT_TYPE == 'З_Н'){
Object.assign(push['aps'], {category : "RequestStatus"});
}
===== Константы =====
=== Типы помещений ===
^значение^описание^
|1|квартира|
|2|кладовка|
|3|парковка|
|4|офис|
|5|секция|
|6|дом|
|7|апартаменты|
=== Статусы push-уведомления ===
^значение^описание^
|0|не отправлено|
|1|отправлено|
|2|прочитано|
=== Статусы чек-листа ===
^код статуса^описание^
|PENDING| К выполнению|
|INWORK| В работе|
|SUCCESS| Выполнено |
|VIOLATION| Есть нарушения |
|IMPOSSIBLE| Невозможно выполнить|
|FAILED| Не выполнено|
|FORCIBLY|Принудительно завершено|
=== статусы работ чек-листа ===
^Код статуса^описание^
|0|в ожидании выполнения|
|1|успешно выполнено |
|2| есть нарушения |
|3| невозможно выполнить |
===== Определение адреса сервера =====
==== Определение адреса сервера при аутентификации по логину и паролю ====
POST https://auth.ds24.ru/api/user/auth
Параметры запроса:
^ Название ^ Тип ^ Обязательный ^ Краткое описание ^
| login | string | Да | - |
| password | string | Да | - |
Параметры ответа
^ Название ^ Тип ^ Обязательный ^ Краткое описание ^
| ok | boolean | да | Успешно ли выполнился запрос |
| server | string | нет | Адрес сервера |
|login |string | нет |Логин пользователя, если он успешно прошел процесс аутентификации|
|hash |string | нет |-|
|secret |string | нет |-|
Пример:
//Тело запроса
{
"login" : "someuser",
"password" : "12345"
}
// Ответ
{
"ok": true,
"server": "https://ds24.ru/",
"login": "someuser",
"hash": "someuserhash",
"secret": "someusersecret"
}
==== Определение адреса сервера при регистрации по номеру телефона ====
POST https://auth.ds24.ru/api/user/reg
Параметры запроса:
^ Название ^ Тип ^ Обязательный ^ Краткое описание ^
| login | string | да | Номер телефона для регистрации |
Параметры ответа:
^ Название ^ Тип ^ Обязательный ^ Краткое описание ^
| ok | boolean | Да | Результат выполнения операции (true / false) |
| server | string | Нет | Адрес сервера |
Пример:
// Тело запроса
{
"login" : "9125212573"
}
// Ответ
{
"ok": true,
"server": "https://ds24.ru/"
}
===== Уведомления во внешнюю систему =====
https://ds24.ru/wiki/doku.php?id=d24:develop:v3:backend:webhook
===== Аутентификация и Авторизация =====
POST http://server.ru/registration
==== Аутентификация ====
Аутентификация происходит путем отправки запроса на указанный выше метод.
Запрос должен включать:
- Заголовок с названием //"authorization"//
- Тело запроса
=== Формирование значения заголовка authorization ===
Первоначальное значение формируется из двух или трех строк, разделенных двоеточием, окруженным пробелами (пробел двоеточие пробел).
есть 3 варианта формирования этого значения:
- из логина и пароля \\ В первой строке указывается слово "login", вторая строка - значение логина пользователя, третья строка - его пароль. \\ **Пример:** //login : predeinay : myPassword123// \\ Такой формат заголовка отправляется при аутентификации по логину и паролю
- из номера телефона \\ В первой строке указывается слово "phone", вторая строка - номер телефона пользователя. \\ **Пример:** //phone : 9125212573// \\ Такой формат заголовка отправляется при аутентификации по телефону с последующей проверкой кода из смс.
- из номера телефона и проверочного кода из смс \\ В первой строке указывается слово "phone", вторая строка - номер телефона пользователя, третья строка - проверочный код. \\ **Пример:** //phone : 9125212573 : 12345// \\ Такой формат заголовка отправляется при проверке кода из смс.
После того, как значение было сформировано, полученную строку нужно закодировать в формате base64. \\
**Пример:** строка //login : predeinay : myPassword123// превращается в //bG9naW4gOiBwcmVkZWluYXkgOiBteVBhc3N3b3JkMTIz//
В результате получается такой заголовок: \\
"authorization": "bG9naW4gOiBwcmVkZWluYXkgOiBteVBhc3N3b3JkMTIz"
Параметры тела запроса:
^ Название ^ Тип ^ Обязательно ^ Описание ^
| devType | string | да | android / ios Тип устройства, если интеграция с системой то указывать необходимо int|
|pushToken | string | да | Токен для push-уведомлений |
|countrie_id| number | нет | ИД страны, если не передать, то по умолчанию Россия (1) |
Параметры ответа
^ Название ^ Тип ^ Обязательно ^ Описание ^
| ok | boolean | да | true / false. Успешно ли выполнен запрос к серверу.|
| credentials | boolean | да | true / false. Успешность аутентификации. true - аутентификация пройдена, false - нет.|
| msg | string | нет | информационное сообщение для вывода пользователю. Отправляется, если произошла ошибка и при отправке проверочного кода. |
| token | string | нет | Многоразовый индивидуальный токен авторизации. Используется в последующих запросах к серверу|
Пример:
// Тело запроса
{
"devType" : "int",
"pushToken" : "",
"countrie_id" : 1
}
// в pushToken необходимо писать уникальный тект, например "uk_pravii_bereg"
// Ответ
{
"ok" : true,
"credentials" : true,
"token" : "someverysecrettoken123123123"
}
==== Авторизация ====
Для получения прав доступа к Д24 необходимо с каждым запросом к системе отправлять заголовок //authorization//, значением которого должен быть полученный в предыдущем пункте токен авторизации, закодированный в формате base64. \\
**Пример:**
* Токен - //"someverysecrettoken123123123"//
* Заголовок - "authorization":"c29tZXZlcnlzZWNyZXR0b2tlbjEyMzEyMzEyMw=="
===== Обработка ошибок =====
**!** В это описание не входят запросы на получение адреса сервера и аутентификацию
Состояние запроса передается с помощью кодов состояния http.
* //200// - запрос успешно выполнен.
* //401// - Отказ в авторизации
* //404// - Метод запроса не найден или при выполнении запроса произошла ошибка.
**!!!** В описании методов ниже описываются параметры и тип __**только успешного ответа (200)**__, если об ином не сказано в самом описании.
Если тип ответа - Массив и данные не были найдены, то в ответ будет успешен (с кодом 200) и в ответе будет пустой массив.
===== Справочники =====
==== Получение списка доступных юридических лиц ====
GET http://server.ru/v2/ref/cnt_list
Тип ответа: Массив.
Параметры ответа (объектов массива)
^ Название ^ Тип ^ Обязательно ^ Описание^
| cnt | string | да | Название юридического лица |
| cnt_id | number | да | Идентификатор юр. лица в базе данных Д24 |
| account_id | number | да | ИД аккаунта |
| callback_phone | string | да | Тел. юр. лица |
| support_phone | string | да | Тел. поддержки юр. лица |
**Пример:**
// ответ
[
{
"cnt": "Жил. трест Кир. р-на (Спартак)",
"cnt_id": 10983,
"account_id": 2621,
"callback_phone": "283-05-21",
"support_phone": "328-7100"
},
{
"cnt": "Жил. трест Кир. р-на (Центр)",
"cnt_id": 11041,
"account_id": 2621,
"callback_phone": "283-05-21",
"support_phone": "328-7100"
},
{
"cnt": "Жил. трест Кир. р-на ООО РЭУ-25 (Рекорд)",
"cnt_id": 11081,
"account_id": 2621,
"callback_phone": "283-05-21",
"support_phone": "328-7100"
}
]
==== Получение списка доступных городов ====
GET http://server.ru/v2/ref/city_list?cnt_id=value
Параметры запроса:
^ Название ^ Тип ^ Обязательно ^ Описание^
|cnt_id | number | нет | Идентификатор юр. лица в базе данных Д24 |
Тип ответа: Массив.
Параметры ответа (объектов массива)
^ Название ^ Тип ^ Обязательно ^ Описание^
| city_text | string | да | Название города |
**Пример:**
// ответ
[
{
city_text:"Курган г"
}
]
==== Получение списка доступных улиц / населенных пунктов ====
GET http://server.ru/v2/ref/street_list?cnt_id=value&city_text=value
Параметры запроса:
^ Название ^ Тип ^ Обязательно ^ Описание^
|cnt_id | number | да | Идентификатор юр. лица в базе данных Д24 |
|city_text | strng | нет | Название города |
Тип ответа: Массив
Параметры ответа (объектов массива)
^ Название ^ Тип ^ Обязательно ^ Описание^
| street | string | да | Название улицы |
**Пример:**
//Запрос
/*
http://server.ru/v2/ref/street_list?cnt_id=1
*/
// Ответ
[
{
"street": "Александрова ул"
},
{
"street": "Гурьевская ул"
},
{
"street": "Инициативная ул"
},
{
"street": "Леонова ул"
},
{
"street": "Рекордная ул"
}
]
==== Получение списка доступных домов ====
GET http://server.ru/v2/ref/address_list?cnt_id=value
Параметры запроса:
^ Название ^ Тип ^ Обязательно ^ Описание^
| cnt_id | number | нет | идентификатор юр. лица в системе. Если при запросе отсутствует, то в ответе будут все улицы/нас. пункты по доступным юр. лицам|
| city_text | string | нет | название города|
| street_text | string | нет | название улицы|
| flag_active| string | нет | только активные дома Д/Н|
Тип ответа: Массив с объектами
Параметры ответа (объектов массива)
^ Название ^ Тип ^ Обязательно ^ Описание^
| address | string | да | полный адрес дома|
| house_id | number | да | идентификатор дома в системе|
| fias | string | нет | идентификатор fias|
| flag_active | string | да | активен ли дом Д/Н|
| city_text | string | да | город дома|
| street_text | string | нет | улица дома|
| house_num | string | да | номер дома|
| corp | string | нет | корпус дома|
| struct | string | нет | строение дома|
| is_flat | string | нет | разрешено ли создавать квартиры|
| is_office | string | нет | разрешено ли создавать офисы|
| is_parking| string | нет | разрешено ли создавать парковки|
| is_larder | string | нет | разрешено ли создавать кладовки|
| is_section | string | нет | разрешено ли создавать секции|
| is_apart | string | нет | разрешено ли создавать апартаменты|
| is_alone | string | нет | разрешено ли создавать типы без помещений|
| is_moto_parking | string | нет | разрешено ли создавать мотоместа|
| is_bike_parking | string | нет | разрешено ли создавать веломеста|
| is_non_residential | string | нет | разрешено ли создавать нежилые помещения|
| is_strict_flat_select | string | нет | разрешено ли создавать новые flat|
**Пример:**
//Запрос
/*
http://server.ru/v2/ref/address_list?cnt_id=11601
*/
// Ответ
[
{
"address":"Кемерово г, Дружбы ул, дом 1Б",
"house_id":50136,
"fias": null,
"flag_active": "Д",
"city_text": "Кемерово г",
"street_text": "Дружбы ул",
"house_num": "1Б",
"corp": null,
"struct": null,
"is_flat": "Н",
"is_office": "Н",
"is_parking": "Н",
"is_larder": "Н",
"is_section": "Н",
"is_apart": "Н",
"is_alone": "Н",
"is_moto_parking": "Н",
"is_bike_parking": "Н",
"is_non_residential": "Н",
"is_strict_flat_select": "Н"
},
{
"address":"Кемерово г, Дружбы ул, дом 1А",
"house_id":50135,
"fias": null,
"flag_active": "Н",
"city_text": "Кемерово г",
"street_text": "Дружбы ул",
"house_num": "1А",
"corp": null,
"struct": null,
"is_flat": "Н",
"is_office": "Н",
"is_parking": "Н",
"is_larder": "Н",
"is_section": "Н",
"is_apart": "Н",
"is_alone": "Н",
"is_moto_parking": "Н",
"is_bike_parking": "Н",
"is_non_residential": "Н",
"is_strict_flat_select": "Н"
},
...
]
==== Получение списка групп домов ====
GET http://server.ru/v2/ref/group_obj_list?cnt_id=value
Параметры запроса:
^ Название ^ Тип ^ Обязательно ^ Описание^
| cnt_id | number | да | идентификатор юр. лица в системе.|
Тип ответа: Массив с объектами
Параметры ответа (объектов массива)
^ Название ^ Тип ^ Обязательно ^ Описание^
| description | string | да | название группы |
| group_obj_id | number | да | идентификатор группы|
**Пример:**
//Запрос
/*
http://server.ru/v2/ref/group_obj_list?cnt_id=11601
*/
// Ответ
[
{
"group_obj_id": 234,
"description": "Луначарского"
},
{
"group_obj_id": 235,
"description": "Нелуначарского"
},
...
]
==== Получение списка доступных подъездов у дома ====
GET http://server.ru/v2/ref/entrance_list?house_id=value
Параметры запроса:
^ Название ^ Тип ^ Обязательно ^ Описание^
|house_id|number|да|идентификатор дома в системе. Ответ на запрос - список доступных подъездов в этом доме|
Тип ответа: Массив c объектами
Параметры ответа (объектов массива)
^ Название ^ Тип ^ Обязательно ^ Описание^
|entrance|string|да|Номер доступного подъезда|
**Пример:**
//Запрос
/*
GET http://server.ru/v2/ref/entrance_list?house_id=1251
*/
// Ответ
[
{"entrance":"1"},
{"entrance":"2"},
{"entrance":"3"},
{"entrance":"4"},
{"entrance":"5"}
]
==== Получение списка доступных этажей дома ====
GET http://server.ru/v2/ref/floor_list?house_id=value
Параметры запроса:
^ Название ^ Тип ^ Обязательно ^ Описание^
|house_id|number|да|идентификатор дома в системе. Ответ на запрос - список доступных этажей в этом доме|
Тип ответа: Массив с объектами
Параметры ответа (объектов массива)
^ Название ^ Тип ^ Обязательно ^ Описание^
|floor|number|да|Номер доступного этажа|
**Пример:**
//Запрос
/*
http://server.ru/v2/ref/floor_list?house_id=1251
*/
// Ответ
[
{"floor":0},
{"floor":1},
{"floor":2},
{"floor":3},
{"floor":4},
{"floor":5}
]
==== Получение списка доступных квартир ====
GET http://server.ru/v2/ref/flat_list?house_id=value1&entrance=value2&floor=value3
Параметры запроса:
^ Название ^ Тип ^ Обязательно ^ Описание^
|house_id|number|да| идентификатор дома в системе.|
|entrance|string|нет|номер подъезда в указанном доме|
|floor|number|нет|номер этажа в указанном доме|
Тип ответа: Массив с объектами
Параметры ответа (объектов массива)
^ Название ^ Тип ^ Обязательно ^ Описание^
|flat|string|да|текстовое описание доступной квартиры|
|flat_id| number|да|идентификатор квартиры в системе|
|flat_type|number|да|тип помещения. Смотреть [[d24:develop:v2:backend:v2#типы_помещений|описание типов помещений]]|
|entrance|string|нет|номер подъезда|
|floor|number|нет|номер этажа|
|flat_num|string|да|номер квартиры|
**Пример:**
//Запрос
/*
http://server.ru/v2/ref/flat_list?house_id=1251&entrance=2&floor=5
*/
// Ответ
[
{
"flat_id": 876841,
"flat": "кв 1",
"flat_type": 1,
"flat_num": "1",
"entrance": null,
"floor": null
},
{
"flat_id": 1069252,
"flat": "оф 2",
"flat_type": 4,
"flat_num": "2",
"entrance": null,
"floor": null
},
{
"flat_id": 876842,
"flat": "кв 2",
"flat_type": 1,
"flat_num": "2",
"entrance": null,
"floor": null
},
{
"flat_id": 876843,
"flat": "кв 3",
"flat_type": 1,
"flat_num": "3",
"entrance": null,
"floor": null
},
{
"flat_id": 876844,
"flat": "кв 4",
"flat_type": 1,
"flat_num": "4",
"entrance": null,
"floor": null
},
{
"flat_id": 876845,
"flat": "кв 5",
"flat_type": 1,
"flat_num": "5",
"entrance": "1",
"floor": 2
},
{
"flat_id": 876846,
"flat": "кв 6",
"flat_type": 1,
"flat_num": "6",
"entrance": null,
"floor": null
},
{
"flat_id": 876847,
"flat": "кв 7",
"flat_type": 1,
"flat_num": "7",
"entrance": null,
"floor": null
},
{
"flat_id": 876848,
"flat": "кв 8",
"flat_type": 1,
"flat_num": "8",
"entrance": null,
"floor": null
},
{
"flat_id": 876849,
"flat": "кв 9",
"flat_type": 1,
"flat_num": "9",
"entrance": null,
"floor": null
},
{
"flat_id": 876850,
"flat": "кв 10",
"flat_type": 1,
"flat_num": "10",
"entrance": null,
"floor": null
},
{
"flat_id": 1082244,
"flat": "кв 12",
"flat_type": 1,
"flat_num": "12",
"entrance": null,
"floor": null
},
{
"flat_id": 966663,
"flat": "кв 15",
"flat_type": 1,
"flat_num": "15",
"entrance": null,
"floor": null
},
{
"flat_id": 2774303,
"flat": "м/м 321",
"flat_type": 3,
"flat_num": "321",
"entrance": null,
"floor": null
},
{
"flat_id": 2617083,
"flat": "кв 381",
"flat_type": 1,
"flat_num": "381",
"entrance": null,
"floor": null
}
]
==== Получение типов работ ====
GET http://server.ru/v2/ref/type_list
Тип ответа: Массив объектов
Параметры ответа (объектов массива)
^ Название ^ Тип ^ Обязательно ^ Описание^
|type|string|да|Название типа работы|
|type_id|number|да|идентификатор типа работы в системе|
**Пример:**
//Запрос
/*
http://server.ru/v2/ref/type_list
*/
// Ответ
[
{
"type": "Сантехника",
"type_id": 23
},
{
"type": "Электричество",
"type_id": 24
}
]
==== Получение причин обращений ====
GET http://server.ru/v2/ref/ess_list?type_ids=value
Параметры запроса:
^ Название ^ Тип ^ Обязательно ^ Описание^
|type_ids|string|нет|идентификаторы типов работ, разделенные двоеточием. Пример: 23:24|
Тип ответа: Массив объектов
Параметры ответа (объектов массива)
^ Название ^ Тип ^ Обязательно ^ Описание^
|ess|string|да|текст причины обращения|
|ess_id|number|да|идентификатор причины обращения в системе|
**Пример:**
//Запрос
/*
GET http://server.ru/v2/ref/ess_list?type_ids=23:24
*/
// Ответ
[
{
"ess": "Восстановить освещение в МОП",
"ess_id": 1561
},
{
"ess": "Восстановить освещение в подвале",
"ess_id": 4204
},
...
]
==== Получение доступных причин обращений для указанного дома ====
GET http://server.ru/v2/ref/ess_list_search?house_id&cnt_id&find&type_ids=40:241&flag_planned&flag_emergency&flag_warranty&prepay_flag
Параметры запроса:
^ Название ^ Тип ^ Обязательно ^ Описание^
|house_id|number|нет|идентификатор дома|
|cnt_id|number|нет|идентификатор УК|
|find|string|нет|поиск|
|type_ids|string|нет|ид типов работ, разделенных :|
|flag_planned|string|нет|флаг, если хотим только плановые заявки Д \ Н|
|flag_emergency|string|нет|флаг, если хотим только аварийные заявки Д \ Н|
|flag_warranty|string|нет|флаг, если хотим только гарантийные заявки Д \ Н|
|prepay_flag|string|нет|флаг, если хотим только платные заявки Д \ Н|
Тип ответа: Массив объектов
Параметры ответа (объектов массива)
^ Название ^ Тип ^ Обязательно ^ Описание^
|ess|string|да|текст причины обращения|
|ess_id|number|да|идентификатор причины обращения в системе|
|rtype|string|да|тип заявки|
|type|string|да|тип работ|
|type_id|number|да|идентификатор типа работ|
**Пример:**
//Запрос
/*
GET http://server.ru/v2/ref/ess_list_search?house_id=42243
*/
// Ответ
[
{
"ess_id": 2923,
"rtype": " Плановая",
"type": "Безопасность и СКУД",
"type_id": 241,
"ess": "Неисправность ворот / шлагбаума въезд во двор"
},
{
"ess_id": 3078,
"rtype": " Плановая",
"type": "Безопасность и СКУД",
"type_id": 241,
"ess": "Неисправность ворот паркинга"
},
...
]
==== Получение списка исполнителей ====
GET http://server.ru/v2/ref/emp_list?cnt_id=value
Параметры запроса:
^ Название ^ Тип ^ Обязательно ^ Описание^
|cnt_id|number|нет|идентификатор юр. лица. |
Тип ответа: Массив объектов
Параметры ответа (объектов массива)
^ Название ^ Тип ^ Обязательно ^ Описание^
|emp|string|да|ФИО исполнителя|
|emp_id|number|да|идентификатор исполнителя в системе|
|status|string|да|статус исполнителя|
**Пример:**
//Запрос
/*
GET http://server.ru/v2/ref/emp_list
*/
// Ответ
[
{
"emp" : "Иванов Иван Иванович",
"emp_id" : 23,
"status": "Р"
},
{
"emp" : "Клабуков Александр Витальевич [deprecated]",
"emp_id" : 12,
"status": "О"
},
{
"emp" : "Григорович Сергей Константинович",
"emp_id" : 13,
"status": "Р"
}
]
==== Получение списка ответственных ====
GET http://server.ru/v2/ref/resp_list?cnt_id=value1&request_id=value2
Параметры запроса:
^ Название ^ Тип ^ Обязательно ^ Описание^
|cnt_id|number|нет|идентификатор юр. лица, для которого нужно получить ответственных|
|request_id|number|нет|идентификатор заявки, для которой нужно получить ответственных|
Тип ответа: Массив объектов
Параметры ответа (объектов массива)
^ Название ^ Тип ^ Обязательно ^ Описание^
|resp|string|да|ФИО ответственного|
|resp_id|number|да|идентификатор ответственного в системе|
|status|string|да|статус ответственного|
**Пример:**
//Запрос
/*
GET http://server.ru/v2/ref/resp_list
*/
// Ответ
[
{
"resp": "Иванов Иван Иванович",
"resp_id": 35713,
"status": "Р"
},
{
"resp": "Клабуков Александр Игоревич [deprecated]",
"resp_id": 35293,
"status": "Р"
},
{
"resp": "Пажитнов Алексей Леонидович",
"resp_id": 28853,
"status": "Р"
},
...
]
==== Получение списка статусов ====
GET http://server.ru/v2/ref/status_list?request_id=value&cnt_id=value&request_type=value
Параметры запроса:
^ Название ^ Тип ^ Обязательно ^ Описание^
|request_id|number|нет|идентификатор заявки в системе|
|cnt_id|number|нет|идентификатор управляющей компании|
|request_type|number|нет|тип заявки в числовом обозначении|
Тип ответа: Массив объектов
Параметры ответа (объектов массива)
^ Название ^ Тип ^ Обязательно ^ Описание^
|status|string|да|Текстовое описание статуса|
|status_id|number|да|идентификатор статуса в системе|
|reasons|number|да|количество доступных причин статуса|
|need_comment|number|да| необходимо ли обязательно указывать комментарий в момент перевода заявки в данный статус (0 - нет / 1 - да)|
**Пример:**
//Запрос
/*
http://server.ru/v2/ref/status_list?request_id=1
*/
// Ответ
[
{
"status": "Принята в работу",
"status_id": 2,
"reasons": 0,
"need_comment": 0
},
{
"status": "Отложена",
"status_id": 4,
"reasons": 14,
"need_comment": 0
},
{
"status": "Открыта повторно",
"status_id": 5,
"reasons": 3,
"need_comment": 0
},
{
"status": "Выполнена",
"status_id": 3,
"reasons": 0,
"need_comment": 1
}
]
==== Получение списка статусов в виде дерева ====
DEPRECATED
GET http://server.ru/v2/ref/status_tree_list
Тип ответа: Массив объектов
Параметры ответа (объектов массива)
^ Название ^ Тип ^ Обязательно ^ Описание^
|status| string|да|-|
|status_id|string|да|-|
|reasons_count|number|да|-|
**Пример:**
//Запрос
/*
http://server.ru/v2/ref/status_tree_list
*/
// Ответ
[
{
"status": "Открытые заявки",
"status_id": "1:65:70:5:2:23:4",
"reasons_count": 0
},
{
"status": "...Новые",
"status_id": "1:65:70:5",
"reasons_count": 0
},
{
"status": ".....|Зарегистрирована",
"status_id": "1",
"reasons_count": 0
}
]
==== Получение типов заявок ====
GET http://server.ru/v2/ref/req_type_list
Тип ответа: Массив объектов
Параметры ответа (объектов массива)
^ Название ^ Тип ^ Обязательно ^ Описание^
|rtype_id|number|да|идентификатор типа заявки|
|rtype|string|да|текстовое описание типа заявки|
**Пример:**
//Запрос
/*
http://server.ru/v2/ref/req_type_list
*/
// Ответ
[
{
"rtype_id": 1,
"rtype": "Обычные"
},
{
"rtype_id": 2,
"rtype": "Аварийные"
},
{
"rtype_id": 3,
"rtype": "Платные"
},
{
"rtype_id": 5,
"rtype": "Гарантийные"
}
]
==== Получение списка причин статусов ====
GET http://server.ru/v2/ref/status_reason_list?status_id=value&cnt_id=value&request_type=value
Параметры запроса:
^ Название ^ Тип ^ Обязательно ^ Описание^
|status_id|number|да|идентификатор статуса, для которого нужно получить список причин|
|cnt_id|number|да|идентификатор управляющей компании|
|request_type|number|нет|тип заявки в числовом обозначении|
Тип ответа: Массив объектов
Параметры ответа (объектов массива)
^ Название ^ Тип ^ Обязательно ^ Описание^
|reason_id|number|да|идентификатор причины статуса в системе|
|reason|string|да|текстовое описание причины статуса|
**Пример:**
//Запрос
/*
http://server.ru/v2/ref/status_reason_list?status_id=25
*/
// Ответ
[
{
"reason_id": 7164,
"reason": "Сделал сам"
},
{
"reason_id": 7,
"reason": "заявитель доволен"
},
{
"reason_id": 8,
"reason": "невозможно проверить"
},
{
"reason_id": 9,
"reason": "автоматически"
},
...
]
==== Получение списка причин отказа от заявки ====
GET http://server.ru/v2/ref/request_refuse_reason_list?is_emergency=value
Параметры запроса:
^ Название ^ Тип ^ Обязательно ^ Описание^
|is_emergency|number|нет|1 - аварийная заявка / 0 (или любое другое значение, отличное от 1) - не аварийная заявка). В зависимости от параметра приходит разный список отказов.|
Тип ответа: Массив объектов
Параметры ответа (объектов массива)
^ Название ^ Тип ^ Обязательно ^ Описание^
|reject_reason|string|да|текстовое описание причины отказа от заявки|
|refuse_id|string|да|идентификатор причины отказа|
**Пример:**
//Запрос для аварийной заявки
/*
http://server.ru/v2/ref/request_refuse_reason_list?is_emergency=1
*/
// Ответ
[
{
"reject_reason": "Сегодня не работаю",
"refuse_id": "5"
},
{
"reject_reason": "До конца смены менее 30 минут",
"refuse_id": "6"
},
{
"reject_reason": "Не мой профиль",
"refuse_id": "7"
},
{
"reject_reason": "Не аварийный случай",
"refuse_id": "8"
}
]
//Запрос для НЕ аварийной заявки
/*
http://server.ru/v2/ref/request_refuse_reason_list?is_emergency=0
*/
//Ответ
[
{
"reject_reason": "Не мой профиль",
"refuse_id": "1"
},
{
"reject_reason": "Не мой участок",
"refuse_id": "2"
},
{
"reject_reason": "Я на больничном",
"refuse_id": "3"
},
{
"reject_reason": "У меня выходной / отпуск",
"refuse_id": "4"
}
]
==== Получение списка стран и кодов стран (публичный) ====
GET http://server.ru/v2/public/ref/countries_list
Тип ответа: Массив объектов
Параметры ответа (объектов массива)
^ Название ^ Тип ^ Обязательно ^ Описание^
|countrie_id|number|да|идентификатор страны|
|countrie_name|string|да|название страны|
|phone_length|number|да|длина номера телефона в стране|
|phone_code|string|да|телефонный код страны|
|countrie_code|string|да|символьный код страны|
**Пример:**
/*
http://server.ru/v2/public/ref/countries_list
*/
// Ответ
[
{
"countrie_id": 1,
"countrie_name": "Россия",
"phone_length": 10,
"phone_code": "+7",
"countrie_code": "RU"
},
{
"countrie_id": 2,
"countrie_name": "Узбекистан",
"phone_length": 9,
"phone_code": "+998",
"countrie_code": "UZ"
}
]
===== Оповещения =====
==== Создание оповещения ====
POST http://server.ru/v2/oi
**Параметры тела запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|house_ids|string|да|Идентификаторы домов, на которые будет распространяться оповещение|
|type| string |да| Тип оповещения |
|start_at|string|неи|Дата и время старта оповещения в формате "ДД.ММ.ГГГГ ЧЧ.ММ"|
|end_at|string|нет|Дата и время окончания оповещения в формате "ДД.ММ.ГГГГ ЧЧ.ММ"|
|service_list|string|нет|Набор услуг, разделенных двоеточием. Пример: "Э:О"|
|resp|string|нет|Зона ответственности|
|reason|string|нет|Причина (одиночный выбор)|
|what|string|нет|Объект|
|note|string|да| описание оповещения |
Описание возможных значений параметров:
Тип оповещения:
* Утечка У
* Опрессовка Р
* Отключение услуг О
* Подвоз воды В
* Подпоры П
* Прочее Д
* Акция А
Услуги:
* ХВС Х
* ГВС Г
* Канализация К
* Отопление О
* Электричество Э
* Газ З
* Лифт Л
Зона отвественности:
* Управляющая компания У
* Ресурсоснабжающая организация Р
* Неизвестно Н
Причина (одиночный выбор):
* Авария А
* Плановые работы П
* Задолженность за оплату З
* Неизвестно Н
Объект
* Несколько домов М
* Весь дом Д
* Подъезд П
* Стояк С
* Несколько квартир К
* Неизвестно Н
**Тип ответа:** Объект
**Параметры ответа**
^ Название ^ Тип ^ Обязательно ^ Описание^
|affected_rows|number|да|Количество созданных/затронутых изменениями строк|
|info_id|number|да|идентификатор созданного оповещения в системе|
**Примечания:**
Если дома находятся в разных УК, то для каждой УК будет создано свое оповещение. В этом случае affected_rows будет больше 1 а info_id идентификатором последнего созданного оповещения.
**Пример:**
//Тело запроса
{
"house_ids": "34021:42243",
"type": "О",
"start_at": "22.01.2016 10:40",
"end_at": "22.01.2016 18:30",
"service_list": "Э:О",
"resp": "Р",
"reason": "П",
"what": "М",
"note": "Тест создания"
}
// Ответ
{
"affected_rows": 1,
"info_id": 139284
}
==== Изменение оповещения, написание комментария ====
PUT http://server.ru/v2/oi/:info_id
**Переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|info_id|number|да|идентификатор оповещения, которое нужно обновить|
**Параметры тела запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|type|string|нет|тип оповещения|
|status|string|нет|статус оповещения|
|service_list|string|нет|списог услуг через : (Х:О)|
|reason|string|нет|причина|
|flag_system|string|нет|флаг для внутреннего пользования|
|note|string|нет|описаниеоповещения|
|push_text|string|нет|текст уведомления|
|what|string|нет|объект|
|resp|string|нет|ответственный|
|svc_id|number|нет|ид РСО|
|employee_id|number|нет|ид исполнителя|
|essence_id|number|нет|ид причины обращения|
|header|string|нет|заголовок акции|
|price|number|нет|стоимость|
|more_info_link|string|нет|ссылка для акции|
|date_start_tz|string|нет|дата начала в формате DD.MM.YYYY HH:mm|
|date_end_tz|string|нет|дата окончания в формате DD.MM.YYYY HH:mm|
|comment|string|нет|комментарий|
|file_id|number|нет|ид удаляемого файла|
|delete_file|boolean|нет|удаляем ли файл|
|fileName|string|нет|имя файла|
|fileUrl|string|нет|юрл файла|
|files|array|нет|массив файлов|
files представляет собой массив объектов такого вида и передается в случае загрузки нескольких файлов:
fileName string нет имя файла
fileUrl string нет юрл файла
**Тип ответа:** Объект
**Параметры ответа:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|affected_rows|number|да|Количество созданных/затронутых изменениями строк, в том числе и созданный комментарий|
|info_id|string|да|идентификатор оповещения, которое обновлялось|
**Пример:**
//Запрос
/*
http://server.ru/v2/oi/139704
*/
//Тело запроса
{
"type": "О",
"status": "З",
"date_start_tz": "02.09.2024 10:11",
"date_end_tz": "02.09.2024 10:11",
"reason": "Н",
"flag_system": "Н",
"service_list": "Х",
"note": "постман",
"push_text": ")))",
"what": "Д",
"resp": "Н",
"header": ")))",
"price": 10,
"more_info_link": "ссылка",
"comment": "ljk",
"svc_id": 123,
"employee_id": 123,
"file_id": 123,
"delete_file": true,
"fileName": "123",
"fileUrl": "url here"
}
// Ответ
{
"affected_rows": 1,
"info_id": "139704"
}
==== Получение списка оповещений ====
GET http://server.ru/v2/oi?cnt_id=value1&status=value2&house_id=value3&type=value4&service_list=value5&custom_filter=value6&start=value7&count=value8
**Параметры запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|start|number|да|с какой позиции начать показывать|
|count|number|да|количество элементов, которые нужно показать|
|cnt_id|number|нет|идентификатор юр. лица|
|house_id|number|нет|идентификатор дома|
|status|string|нет|статус оповещения "А" - активно "З" - закрыто|
|type|string|нет|тип оповещения|
|service|string|нет|список услуг через двоеточие|
|custom_filter|string|нет|отменяет все прочие фильтры|
|date_start|string|нет|дата и время начала в ISO формате|
|date_end|string|нет|дата и время конца в ISO формате|
|city_text|string|нет|фильтр по городу|
|street_text|string|нет|фильтр по улице|
|reason|string|нет|причина оповещения|
|resp|string|нет|зона ответственности|
|svc_id|string|нет|РСО оповещения|
|moderation_needed|string|нет|статус модерации Д\Н|
**Тип ответа:** Массив объектов
**Параметры ответа** (объектов массива):
^ Название ^ Тип ^ Обязательно ^ Описание^
|info_id|number|да|идентификатор оповещения|
|type|string|да|тип оповещения|
|type_str|string|да|текстовое описание типа оповещения|
|start_at|string|да|дата и время начала в часовом поясе пользователя. Формат DD.MM.YYYY hh24:mi|
|end_at|string|может быть null|дата и время конца в часовом поясе пользователя. Формат DD.MM.YYYY hh24:mi|
|created_at|string|да|дата и время создания оповещения. Формат DD.MM.YYYY hh24:mi|
|start_at_tz|string|да|дата и время начала в ISO формате|
|end_at_tz|string|может быть null|дата и время конца в ISO формате|
|created_on_tz|string|да|дата и время создания оповещения в ISO формате|
|updated_on_tz|string|может быть null|дата и время изменения оповещения в ISO формате|
|note|string|да|текст оповещения|
|last_comments|array|да|список последних комментариев|
|reason|string|да|причина оповещения|
|reason_str|string|да|текстовое описание причины оповещения|
|resp|string|да|зона ответственности|
|status|string|да|статус оповещения статус оповещения "А" - активно "З" - закрыто|
|status_str|string|да|текстовое описание статуса оповещения|
|service_list|string|может быть null|список услуг через двоеточие|
|service_list_str|string|может быть null|текстовое описание услуг оповещения через запятую|
|all_flags|string|-|все флаги|
|area_str|string|-|области ответственности службы|
|object_list|array|да|список домов оповещения|
|house_state_list|array|да|список домов оповещения со статусами|
**Параметры массива last_comments (список последних комментариев):**
^ Название ^ Тип ^ Обязательно ^ Описание^
|note|string|да|текст комментария|
**Параметры массива object_list (список домов оповещения):**
^ Название ^ Тип ^ Обязательно ^ Описание^
|street|string|да|улица, к домам которой относится оповещение|
|houses|string|да|список домов на этой улице, к которым относится оповещение|
**Пример:**
//запрос
http://server.ru/v2/oi?start=1&count=50
// Ответ
[
{
"info_id": 139284,
"type": "О",
"type_str": "Отключение ",
"start_at": "22.01.2016 10:40",
"end_at": "22.01.2016 18:30",
"created_at": "15.11.2021 16:32",
"note": "Тест создания",
"status": "А",
"status_str": "Активно",
"service_list": "О:Э",
"all_flags": "ННДДННН",
"service_list_str": "Отопление, Электричество",
"object_list": [
{
"street": "Апрельская ул",
"houses": "15"
},
{
"street": "Ленина ул",
"houses": "1"
}
],
"house_state_list": [
{
"status_id": 360827,
"house_id": 54696,
"status": "З",
"date_start_tz": "2024-09-02T09:00:00.000Z",
"date_end_tz": "2024-09-02T12:00:00.000Z",
"address": "Екатеринбург г, Луначарского ул, дом 240",
"street": "Луначарского ул",
"house": "240"
}
]
},
...
]
==== Получение детализации оповещения ====
GET http://server.ru/v2/oi/:info_id
**переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|info_id|number|да|идентификатор оповещения, для которого нужно получить детализацию|
Тип ответа: Объект
Параметры ответа
**Параметры ответа**:
^ Название ^ Тип ^ Обязательно ^ Описание^
|info_id|number|да|идентификатор оповещения|
|created_by|number|может быть null|ид сотрудника, создавшего оповещение|
|request_id|number|может быть null|ид заявки|
|employee_id|number|может быть null|ид исполнителя|
|essence_id|number|может быть null|ид причины обращения|
|owner_id|number|может быть null|ид УК|
|flag_system|string|да|для внутреннего пользования Д Н|
|type|string|да|тип оповещения|
|type_str|string|да|текстовое описание типа оповещения|
|start_at|string|да|дата и время начала в часовом поясе пользователя. Формат DD.MM.YYYY hh24:mi|
|end_at|string|может быть null|дата и время конца в часовом поясе пользователя. Формат DD.MM.YYYY hh24:mi|
|created_at|string|да| дата и время создания оповещения|
|start_at_tz|string|да|дата и время начала в часовом поясе пользователя в формате ISO|
|end_at_tz|string|да|дата и время конца в часовом поясе пользователя в формате ISO|
|created_on_tz|string|да|дата и время создания оповещения в формате ISO|
|updated_on_tz|string|да|дата и время обновления оповещения в формате ISO|
|note|string|да|текст оповещения|
|last_comments|array|да|последние комментарии|
|houses|array|да|список домов для оповещения|
|status|string|да|статус оповещения статус оповещения "А" - активно "З" - закрыто|
|status_str|string|да|текстовое описание статуса оповещения|
|service_list|string|может быть null|код услуги, к которой относится оповещение|
|service_list_str|string|может быть null|услуга, к которой относится оповещение|
|reason|string|да|Код причины|
|reason_str|string|да|текстовое описание причины|
|what_str|string|да|текстовое описание объекта|
|resp|string|да|код ответственного|
|header|string|нет|заголовок акции|
|more_info_link|string|нет|ссылка акции|
|push_text|string|нет|текст уведомления|
|username|string|нет|юзернейм|
|position|string|нет|позиция|
|access|string|нет|доступ|
|essence|string|нет|название ПО|
|what|string|нет|объект|
|price|number|нет|стоимость|
|resp_str|string|да|ответственный. Если РСО, тогда svc_id и svc не null|
|emp_str|string|да|исполнитель|
|svc_id|number|может быть null| идентификатор РСО|
|svc|string|может быть null|название РСО|
|house_state_list|array|да|список домов оповещения со статусами|
**Пример:**
//Запрос
/*
http://server.ru/v2/oi/139704
*/
// Ответ
{
"info_id": 139704,
"created_by": 35753,
"svc_id": null,
"request_id": null,
"employee_id": null,
"essence_id": null,
"owner_id": null,
"flag_system": "Н",
"start_at": "04.05.2024 22:00",
"end_at": "04.05.2024 22:00",
"created_at": "24.08.2022 11:38",
"start_at_tz": "2024-05-04T19:00:00.000Z",
"end_at_tz": "2024-05-04T19:00:00.000Z",
"created_on_tz": "2022-08-24T08:38:50.278Z",
"updated_on_tz": "2024-09-19T09:41:34.460Z",
"type": "У",
"note": "постман",
"last_comments": [
{
"note": "hjkhlhl"
},
{
"note": "X)D"
}
],
"status": "З",
"reason": "Н",
"resp": "Н",
"header": ")))",
"more_info_link": "ссылка",
"price": 10,
"push_text": ")))",
"what": "Д",
"username": "dev",
"position": "Технический директор",
"access": "С",
"emp_str": null,
"essence": null,
"svc": null,
"service_list": "Х",
"reason_str": "Неизвестно",
"what_str": "Весь дом",
"type_str": "Утечка ",
"status_str": "Закрыто",
"service_list_str": "ХВС",
"resp_str": "Неизвестно",
"houses": [
{
"street": "Луначарского ул",
"houses": "240"
}
],
"house_state_list": [
{
"status_id": 360827,
"house_id": 54696,
"status": "З",
"date_start_tz": "2024-09-02T09:00:00.000Z",
"date_end_tz": "2024-09-02T12:00:00.000Z",
"address": "Екатеринбург г, Луначарского ул, дом 240",
"street": "Луначарского ул",
"house": "240"
}
]
}
==== Получение списка домов, на которые распространяется оповещение в виде списка состояний по каждому дому ====
GET http://server.ru/v2/oi/:info_id/house_state
**переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|info_id|number|да|идентификатор оповещения, для которого нужно получить список домов|
**Тип ответа:** Массив объектов
**Параметры ответа (объектов массива):**
^ Название ^ Тип ^ Обязательно ^ Описание^
|status_id|number|да|id записи состояния|
|house_id|number|да|id дома|
|status|string|да|статус состояния дома "А" - активно "З" - закрыто|
|date_start_tz|string|да|Временная метка по UTC даты начала|
|date_end_tz|string|да|Временная метка по UTC даты окончания|
|address|string|да|Текстовое представление адреса|
|house|string|да|Текстовое представление дома|
|street|string|да|Текстовое представление улицы|
**Пример:**
//Запрос
/*
http://server.ru/v2/oi/139246/house_state
*/
// Ответ
[
{
"status_id": 4981824,
"house_id": 40783,
"status": "З",
"date_start_tz": "2024-01-15T10:18:00.000Z",
"date_end_tz": null,
"address": "Курган г, Бурова-Петрова ул, дом 78",
"house": "78",
"street": "Бурова-Петрова ул"
},
{
"status_id": 4981825,
"house_id": 49396,
"status": "З",
"date_start_tz": "2024-01-15T10:18:00.000Z",
"date_end_tz": null,
"address": "Курган г, Куртамышская ул, дом 18 К1",
"house": "18 К1",
"street": "Куртамышская ул"
}
]
==== Изменение в списке домов, на которые распространяется оповещение в виде списка состояний по каждому дому ====
PUT http://server.ru/v2/oi/:info_id/house_state/:status_id
**переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|info_id|number|да|идентификатор оповещения|
|status_id|number|да|идентификатор прикрепленного дома|
**Тело запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|status|string|да|статус|
|comment|string|да|комментарий|
|date_start_tz|string|да|дата начала в формате DD.MM.YYYY HH:mm|
|date_end_tz|string|да|дата окончания в формате DD.MM.YYYY HH:mm|
**Примеры:**
//Запрос
/*
http://server.ru/v2/oi/139704/house_state/360787
*/
// Тело запроса
{
"status": "А",
"date_start_tz": "25.09.2024 20:12",
"date_end_tz": "25.09.2024 20:12",
"comment": "123"
}
//Ответ
{
"ok": true
}
==== Получение списка домов, на которые распространяется оповещение в виде группировки по улицами ====
GET http://server.ru/v2/oi/:info_id/houses
**переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|info_id|number|да|идентификатор оповещения, для которого нужно получить список домов|
**Тип ответа:** Массив объектов
**Параметры ответа (объектов массива):**
^ Название ^ Тип ^ Обязательно ^ Описание^
|street|string|да|улица, к домам которой относится оповещение|
|houses|string|да|список домов на этой улице, к которым относится оповещение|
**Пример:**
//Запрос
/*
http://server.ru/v2/oi/139246/houses
*/
// Ответ
[
{
"street": "Апрельская ул",
"houses": "15"
},
{
"street": "Ленина ул",
"houses": "1"
}
]
==== Получение ленты событий оповещения ====
## OLD, смотри /all
GET http://server.ru/v2/oi/:info_id/feed?start=value1&count=value2
**переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|info_id|number|да|идентификатор оповещения, для которого нужно получить ленту событий|
Параметры запроса:
^ Название ^ Тип ^ Обязательно ^ Описание^
|start|number|да|с какой позиции показывать|
|count|number|да|количество выдаваемых элементов|
Тип ответа: Массив объектов
Параметры ответа
^ Название ^ Тип ^ Обязательно ^ Описание^
|created_at|string|да|дата и время создания|
|type|number|да|тип события (0 - комментарий / 1 - активность)|
|note|string|да|текстовое описание события|
|created_by|string|да|автор события|
**Пример:**
//Запрос
/*
http://server.ru/v2/oi/66776/feed?start=1&count=50
*/
// Ответ
[
{
"created_at": "29.01.2016 23:00",
"type": 1,
"note": "Статус оповещения изменился с \"Активное\" на \"Архивное\".\r\n",
"created_by": "Системный пользователь"
},
{
"created_at": "23.01.2016 09:28",
"type": 1,
"note": "Статус оповещения изменился с \"Плановое\" на \"Активное\".\r\n",
"created_by": "Лукашевич Светлана"
}
]
==== Получение деталей табов для оповещения ====
GET https://server.ru/v2/oi/:info_id/all
**Переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|info_id|number|да|Идентификатор оповещения, которую нужно поменять|
**Переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|house|number|нет|хотим ли мы подгружать адреса в ленту|
|house_id|number|нет|какие адреса подгружать в ленту, посылаем только если есть house|
|comment|number|нет|хотим ли мы подгружать комментарии в ленту|
|activity|number|нет|хотим ли мы подгружать историю активности в ленту|
|message|number|нет|хотим ли мы подгружать сообщения в ленту|
|call|number|нет|хотим ли мы подгружать звонки в ленту|
|push|number|нет|хотим ли мы подгружать пуши в ленту|
|file|number|нет|хотим ли мы подгружать прикрепленные файлы в ленту|
Если не передать ни один из параметров, значит будет грузиться все типы, поэтому передавать только в том случае, когда нужно получить конкретные типы.
Передаются как пример: comment=1
**Тип ответа:** Объект
**Параметры ответа:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|id|number|да|-|
|feed_type|string|да|конкретный тип сущности в ленте|
|created_on_tz|string|да|время создания|
|user_data|string|да|данные о пользователе в одной строке, с разделителем|
|payload|string|да|полезная информация в зависимости от типа сущности|
|feed_opt_1|string|да|резервные данные с 1 до 10, меняются в зависимости от сущности|
|feed_opt_2|string|да|-|
|feed_opt_3|string|да|-|
|feed_opt_4|string|да|-|
|feed_opt_5|string|да|-|
|feed_opt_6|string|да|-|
|feed_opt_7|string|да|-|
|feed_opt_8|string|да|-|
|feed_opt_9|string|да|-|
|feed_opt_10|string|да|-|
|username|string|да|имя пользователя|
|position|string|да|позиция|
|access|string|да|уровень доступа|
//Ответ
[
{
"id": 360787,
"user_data": "Системный пользователь|Директор|С",
"feed_type": "house",
"created_on_tz": "2022-08-08T10:04:18.521Z",
"payload": "Санкт-Петербург г, Афанасьевская ул, дом 1",
"feed_opt_1": "08.08.2022 13:59",
"feed_opt_2": "08.08.2022 13:59",
"feed_opt_3": "А",
"feed_opt_4": null,
"feed_opt_5": null,
"feed_opt_6": null,
"feed_opt_7": null,
"feed_opt_8": null,
"feed_opt_9": null,
"feed_opt_10": null,
"username": "Системный пользователь",
"position": "Директор",
"access": "С"
},
{
"id": 75361,
"user_data": "dev|Технический директор|С",
"feed_type": "comment",
"created_on_tz": "2023-03-16T04:24:11.510Z",
"payload": "duck",
"feed_opt_1": null,
"feed_opt_2": null,
"feed_opt_3": null,
"feed_opt_4": null,
"feed_opt_5": null,
"feed_opt_6": null,
"feed_opt_7": null,
"feed_opt_8": null,
"feed_opt_9": null,
"feed_opt_10": null,
"username": "dev",
"position": "Технический директор",
"access": "С"
},
{
"id": 204715,
"user_data": "dev|Технический директор|С",
"feed_type": "activity",
"created_on_tz": "2022-08-24T09:00:37.204Z",
"payload": " Статус оповещения изменился с \"Активное\" на \"Архивное\".\r\n",
"feed_opt_1": null,
"feed_opt_2": null,
"feed_opt_3": null,
"feed_opt_4": null,
"feed_opt_5": null,
"feed_opt_6": null,
"feed_opt_7": null,
"feed_opt_8": null,
"feed_opt_9": null,
"feed_opt_10": null,
"username": "dev",
"position": "Технический директор",
"access": "С"
},
{
"id": 2159872,
"user_data": "Предеин Анатолий Юрьевич",
"feed_type": "message",
"created_on_tz": "2022-08-24T08:38:51.346Z",
"payload": "Откл Хвс Гвс Тестовая рассылка. Придет письмо при закрытии? с 24.08.2022 13:38 до 25.08.2022 13:38 Луначарского ул:240",
"feed_opt_1": "9611111112",
"feed_opt_2": null,
"feed_opt_3": null,
"feed_opt_4": null,
"feed_opt_5": null,
"feed_opt_6": null,
"feed_opt_7": null,
"feed_opt_8": null,
"feed_opt_9": null,
"feed_opt_10": null,
"username": "Предеин Анатолий Юрьевич",
"position": null,
"access": null
},
{
"id": 5312541,
"user_data": null,
"feed_type": "call",
"created_on_tz": "2018-11-21T10:18:56.743Z",
"payload": "mMXkjhkjhMm",
"feed_opt_1": "Собственник",
"feed_opt_2": "36543545",
"feed_opt_3": "1",
"feed_opt_4": "Екатеринбург г, Амундсена ул, дом 118А, кв 14",
"feed_opt_5": null,
"feed_opt_6": null,
"feed_opt_7": null,
"feed_opt_8": null,
"feed_opt_9": null,
"feed_opt_10": null,
"username": null,
"position": null,
"access": null
},
{
"id": 301,
"user_data": "Системный пользователь|Директор|С",
"feed_type": "push",
"created_on_tz": "2022-08-08T10:04:18.690Z",
"payload": "Тестовое оповезение",
"feed_opt_1": null,
"feed_opt_2": null,
"feed_opt_3": null,
"feed_opt_4": null,
"feed_opt_5": null,
"feed_opt_6": null,
"feed_opt_7": null,
"feed_opt_8": null,
"feed_opt_9": null,
"feed_opt_10": null,
"username": "Системный пользователь",
"position": "Директор",
"access": "С"
},
{
"id": 40862,
"user_data": "Пользователь личного кабинета | |П",
"feed_type": "file",
"created_on_tz": "2024-07-16T05:34:54.731Z",
"payload": "https://cdn.ds24.ru/fs/3/1721108011_dsv2s.jpg",
"feed_opt_1": "1721108011_dsv2s.jpg",
"feed_opt_2": null,
"feed_opt_3": "1",
"feed_opt_4": null,
"feed_opt_5": null,
"feed_opt_6": null,
"feed_opt_7": null,
"feed_opt_8": null,
"feed_opt_9": null,
"feed_opt_10": null,
"username": "Пользователь личного кабинета ",
"position": " ",
"access": "П"
}
]
===== Счетчики =====
==== Получение списка активных показаний по счётчикам для текущего пользователя ====
GET https://server.ru/v2/meter?start=value1&count=value2&cnt_id=value3&house_id=value4&flat=value5&term_ids=value6
**Параметры запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|start|number|да|с какой позиции начать получать элементы списка|
|count|number|да|количество получаемых элементов списка|
|cnt_id|number|нет|идентификатор юр. лица|
|house_id|number|нет|идентификатор дома|
|flat|string|нет|номер квартиры|
|term_ids|string|нет|тип счетчиков через разделитель ":". Пример: "1:5"|
**Тип ответа:** Массив объектов
**Параметры ответа (объектов массива):**
^ Название ^ Тип ^ Обязательно ^ Описание^
|description|string|да|Назначение счетчика|
|house|string|да|Адрес дома, где установлен счетчик|
|flat|string|может быть null| Номер квартиры, где установлен счетчик|
|value|string|может быть null|Текущее показание счетчика|
|date|string|может быть null|Дата текущего показания|
|prev_value|string|да|Последнее показание|
|prev_date|string|да|Дата последнего показания|
|meter_id|number|да|идентификатор показания|
|meter_id_ext|string|да|"Внешний" идентификатор показания (сторонней системы)|
|term|string|да|текстовое описание типа показания|
**Примеры:**
//Запрос
/*
https://server.ru/meter?/v2/meter?start=1&count=3&cnt_id=10401&house_id=40783&flat=3&term_ids=1:5
*/
//Ответ
[
{
"description": "ХВС",
"house": "Курган г, Бурова-Петрова ул, дом 78",
"flat": "3",
"value": null,
"date": null,
"prev_value": ".087",
"prev_date": "25.06.2021",
"meter_id": 4075904,
"meter_id_ext": "3672939",
"term": "Холодная вода"
}
]
==== Получение списка квартир, которые связаны с активными показаниями ====
GET https://server.ru/v2/meter/flat_list?house_id=value
**Параметры запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|house_id | number | да | Идентификатор дома в системе, для которого нужно получить список квартир|
**Тип ответа:** Массив объектов
**Параметры ответа (объектов массива):**
^ Название ^ Тип ^ Обязательно ^ Описание^
| flat | string | да | Номер квартиры |
**Примеры:**
//Запрос
/*
https://server.ru/meter/flat_list?house_id=40783
*/
//Ответ
[
{
"flat": "1"
},
{
"flat": "2"
},
{
"flat": "3"
},
{
"flat": "4"
},
{
"flat": "5"
},
{
"flat": "6"
}
]
==== Получение списка типов счетчиков для дальнейшей фильтрации ====
GET https://server.ru/v2/meter/term_list
**Тип ответа:** Массив объектов
**Параметры ответа (объектов массива):**
^ Название ^ Тип ^ Обязательно ^ Описание^
|term_id|number|да|идентификатор типа счетчика|
|term|string|да|текстовое описание типа счетчика|
**Примеры:**
//Запрос
/*
https://server.ru/meter/term_list
*/
//Ответ
[
{
"term_id": 6,
"term": "Газ"
},
{
"term_id": 5,
"term": "Горячая вода"
},
{
"term_id": 7,
"term": "Отопление"
},
{
"term_id": 1,
"term": "Холодная вода"
},
{
"term_id": 3,
"term": "Электроэнергия"
},
{
"term_id": 221,
"term": "Электроэнергия ночь"
}
]
==== Сохранение показаний ====
PUT https://server.ru/v2/meter/:meter_id
**Переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|meter_id | number | да |идентификатор счетчика|
**Тело запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|value|string|да|значение показания счетчика|
|image_url|string|-|-|
|image_name|string|-|-|
**Тип ответа:** Объект
**Параметры ответа:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|affected_rows|number|да|Количество созданных / затронутых изменениями строк|
**Примеры:**
//Запрос
/*
https://server.ru/meter/121281
*/
// Тело запроса
{
"value": "150",
"image_url" : "https://ds24.ru/fs/static/2017/08/14/some_test.jpg",
"image_name" : "image"
}
//Ответ
{
"affected_rows": 2
}
===== Контакты =====
==== Получение списка контактов ====
GET https://server.ru/v2/contact?start=value1&count=value2&cnt_id=value3&phone=value4&house_id=value5&flat_id=value6&floor=value7&entrance=value8
**Параметры запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|start|number|да|с какой позиции начать показывать|
|count|number|да|сколько контактов показать|
|cnt_id|number|нет|идентификатор юр. лица|
|phone|string|нет|номер телефона|
|house_id|number|нет|идентификатор дома|
|entrance|string|нет|подъезд|
|floor|number|нет|этаж|
|flat_id|number|нет|идентификатор квартиры|
**Тип ответа:** Массив объектов
**Параметры ответа (объектов массива):**
^ Название ^ Тип ^ Обязательно ^ Описание^
|phone_id|number|да| Ид записи сномером телефона|
|phone|string|да| Номер телефона|
|house|string|да|Адрес дома|
|flat|string|да|номер квартиры|
|created_on_tz|string|да|дата создания в формате ISO|
|last_call_on_tz|string|да|последний звонок в формате ISO|
|fio|string|да|ФИО|
|flag_sms_notify|string|да|флаг для оповещения смс, может быть А, Д или Н|
|oico|string|да|флаг смс из ОЙКО, может быть Д или Н|
|entrance|string|может быть null| обозначение подъезда|
|floor|number|может быть null|номер этажа|
**Примеры:**
//Запрос
/*
https://server.ru/contact?cnt_id=10401&house_id=40783&start=1&count=5
*/
//Ответ
[
{
"phone": "9223223223",
"house": "Курган г, Бурова-Петрова ул, дом 78",
"flat": "тест-24",
"entrance": "2",
"floor": 3
},
{
"phone": "9223223224",
"house": "Курган г, Бурова-Петрова ул, дом 78",
"flat": "тест-25",
"entrance": null,
"floor": null
},
...
]
===== Заявки РСО =====
==== Создание заявки ====
POST https://server.ru/v2/request_rso
**Тело запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|house_id|number|да|ИД Дома|
|owner_id|number|нет|ИД Управляющей компании|
|svc_id|number|да|идентификатор РСО|
|note| string|да|Комметрарий от заявки|
|rso_comment| string|да|Комметрарий к заявке РСО|
|request_id|number|да|ИД Заявки|
**Тип ответа:** Объект
**Параметры ответа:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|request_rso_id|number|да|ид заявки рсо|
|house_id|number|да|ид дома|
|owner_id|number|да|ид управляющей компании|
|svc_id|number|да|идентификатор РСО|
|note|string|да|комментарий заявки рсо|
|created_on_tz|string|да|время создания заявки|
|status_id|number|да|ид статуса|
|rso_status_name|string|да|имя статуса|
|request_id|number|да|ид заявки, на основе которой создана заявка рсо|
**Примеры:**
//Тело запроса
{
"house_id" : 34021,
"svc_id:" : 1533,
"owner_id" : 23,
"request_id" : 1300673,
"note" : "123",
}
//Ответ
{
"request_rso_id": 77470,
"house_id": 54696,
"owner_id": 13521,
"svc_id": 5484,
"note": "123",
"created_on_tz": "2024-03-28T07:19:10.826Z",
"status_id": 1,
"rso_status_name": "Зарегистрирована",
"request_id": 1300673
}
===== Заявки =====
==== Создание заявки ====
POST https://server.ru/v2/request
**Тело запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|house_id|number|да|ид дома|
|ess_id|number|да|ид причины обращения|
|type_id|number|да|ид типа работ|
|flat_id|number|нет|ид квартиры|
|note| string|да|заметка|
|contphone|string|нет|номер телефона|
|flat|string|нет|номер помещения|
|entr|string|нет|подъезд|
|floor|string|нет|этаж|
|flat_type|number|нет|тип помещения. Смотреть [[d24:develop:v2:backend:v2#типы_помещений|описание типов помещений]]|
|email|string|нет|электронная почта|
|fio|string|нет|фио|
|appeal_num|string|нет|номер обращения|
|appeal_date|string|нет|дата создания номера обращения|
|desired_time_start|string|нет|желаемое время выполнения|
|check_work_id|number|нет|идентификатор работы|
|tag_ids|string|нет|идентификаторы тэгов для сохранения, указанные через запятую Пример: «1,2,3». |
|files|array|нет|массив файлов|
|comments|array|нет|массив комментариев|
files представляет собой массив объектов такого вида и передается в случае загрузки нескольких файлов:
|flag_webhook|string|нет|вебхук, отправлять жителю или нет|
|fileName|string|нет|имя файла|
|fileUrl|string|нет|юрл файла|
commentsпредставляет собой массив объектов такого вида и передается в случае прикрепления нескольких комментариев:
|note|string|нет|текст комментария|
|flag_webhook|string|нет|вебхук, отправлять жителю или нет|
**Тип ответа:**
**Параметры ответа:**
Заявка как в детализации заявки
**Примеры:**
//Тело запроса
{
"house_id" : 34021,
"ess_id" : 1533,
"type_id" : 23,
"flat_id": 111,
"note" : "Тест ppostman",
"contphone" : "9125212573",
"flat" : "123",
"entr" : "1",
"floor" : "9",
"email" : "predeinay@gmail.com",
"fio": "ФИО",
"appeal_num": "123",
"appeal_date": "2023-10-13T19:00:00.000Z",
"desired_time_start": "2024-04-05T19:00:00.000Z",
"check_work_id": 123,
"flat_type": 1,
"tag_ids": "666,901,902",
"files": [
{
"fileName": "9826171613_2.jpg",
"fileUrl": "https://cdn.ds24.ru/fs/static/2024/01/17/request_1705469628.jpg",
"flag_webhook": "Н"
},
{
"fileName": "9826171613_0.jpg",
"fileUrl": "https://cdn.ds24.ru/fs/static/2024/02/01/request_1706764444.pdf",
"flag_webhook": "Д"
}
],
"comments": [
{
"note": "комментарий 1",
"flag_webhook": "Н"
},
{
"note": "комментарий 2",
"flag_webhook": "Н"
},
],
}
//Ответ
{
"request_id": 1302749,
"rtype": "Плановая",
"req_type": "plan",
"flag_emergency": "Н",
"is_paid": "Н",
"is_local_need": "Н",
"is_favorites": "Н",
"is_closed": "N",
"is_oico_account": 0,
"house": "Белинского ул, дом 123",
"full_address": "Екатеринбург г, Белинского ул, дом 123",
"fias": null,
"flat": "кв 5",
"flat_num": "5",
"flat_type": 1,
"cnt_id": 13521,
"house_id": 55056,
"flat_id": 1211608,
"type_id": 21,
"ess_id": 3303,
"status_id": 1,
"reason_id": null,
"emp_id": null,
"resp_id": 35374,
"priority_id": null,
"request_rso_id": null,
"check_id": null,
"execution_time": "19.04.2024 06:19",
"closing_time": null,
"created_at": "05.04.2024 06:19",
"updated_at": null,
"deadline_at": "19.04.2024",
"local_at": null,
"appointed_at": "05.04.2024 19:00",
"execution_time_on_tz": "2024-04-19T06:19:44.000Z",
"closing_time_on_tz": null,
"created_on_tz": "2024-04-05T06:19:44.309Z",
"updated_on_tz": null,
"scheduled_execution_time_on_tz": "2024-04-19T06:19:44.000Z",
"desired_time_start_on_tz": "2024-04-05T19:00:00.000Z",
"note": "123 123",
"fio": "123",
"emp_note": null,
"floor": 1,
"entr": "11",
"autophone": null,
"contphone": "123",
"email": "123@123.ert",
"tags": null,
"last_comments": [],
"price": null,
"material_price": null,
"paid": null,
"ess": "Запрос записи разговора диспетчерской",
"emp": null,
"resp": "Системный пользователь ",
"created_by": "dev",
"emp_phone": null,
"resp_phone": null,
"uploads_count": 0,
"status": "Зарегистрирована",
"rso_status_name": null,
"ext_pay_system_id": "42",
"inn": "7203333262",
"what_was_done": null,
"oi_id": null,
"oi_status": null,
"rsfat_value": null,
"rsft_value": null,
"reason": null,
"type": "Прочее",
"rate": null,
"deadline_str": 14,
"appointed_str": "Сегодня с 19:00",
"cnt_callback_phone": "34332830521",
"request_tags": []
}
==== Изменение данных в заявке, добавление комментария ====
PUT https://server.ru/v2/request/:request_id
**Переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|request_id|number|да|Идентификатор заявки, которую нужно поменять|
**Тело запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|status_id|number | нет | ид статуса заявки |
|reason_id|number | нет | ид причины закрытия заявки |
|emp_id| number | нет | ид исполнителя |
|resp_id| number | нет | ид ответственного |
|deadline_at| string | нет | срок выполнения заявки |
|tag_ids| string | нет | идентификаторы тэгов для сохранения, указанные через запятую Пример: "1,2,3". чтобы удалить все тэги необходимо послать "0" |
|emp_note| string | нет | заметка от исполнителя |
|appeal_num| string | нет | номер обращения |
|appeal_date| string | нет | дата обращения |
|comment| string | нет | комментарий |
|entrance| string | нет | подъезд |
|floor| number | нет | этаж |
|fio| string| нет | фио|
|note|string|нет| заметка |
|comment_flag_webhook| string | нет | Отправлять ли жителю Д\Н |
|image_url| string | нет | Ссылка на изображение. Отправляется обязательно вместе с image_name |
|image_name| string | нет | Название изображения |
|appointed_at|string | нет | Дата, когда придёт исполнитель. Принимает "today" / "tomorrow" / "next_week" / дату в формате "ДД.ММ.ГГГГ HH24:MI" |
|local_at| string | нет | Дата, когда исполнитель локализовал аварию по заявке "ДД.ММ.ГГГГ ЧЧ:ММ" |
|material_price| number | нет | Стоимость материалов по заявке |
|price|number | нет | цена |
|what_was_done|string|нет| что было сделано |
|paid|number|нет| сколько оплачено |
|is_favorites|string|нет| Добавить/убрать из избранного (Д/Н) |
|contphone|string|нет| Контактный номер телефона жителя |
|flag_payment|string|нет| Оплачена ли заявка (Д/Н) |
|email|string|нет| Электронная почта |
|essence_id|number|нет| ИД причины обращения |
|priority_id|number|нет| Приоритет заявки |
**Тип ответа:** Объект
**Параметры ответа:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|affected_rows|number|да|количество затронутых изменениями / созданных строк (вместе с комментариями)|
|request|-|да|обновленная заявка с полями как в детализации|
**Примеры:**
//Запрос
/*
https://server.ru/v2/request/1298371
*/
// Тело запроса
{
"status_id" : 2,
"reason_id" : 9,
"emp_id" : 123,
"resp_id" : 123,
"deadline_at" : "01.01.2017",
"tag_ids" : "1,2,3,4,5",
"emp_note" : "типа скрытый от операторов текст",
"comment" : "Типа коммент от исполнителя",
"comment_flag_webhook": "Д",
"image_url" : "https://ds24.ru/fs/static/2017/08/14/some_test.jpg",
"image_name" : "some test",
"appointed_at": null,
"fio": "фио",
"type_id": "21,
"local_at" : "12.12.2020 12:12",
"material_price" : 333,
"price": 100.2,
"what_was_done": "что-то сделано",
"paid": 100.3,
"is_favorites" : "Д",
"phone_contact": "9754936397",
"flag_payment" : "Д",
"entrance" : "11"
"floor" : "11",
"email": "email@email.ru",
"essence_id": 111,
"priority_id": 2
}
//Ответ
{
"affected_rows": 1,
"request": {
"request_id": 1300673,
"rtype": "Плановая",
"req_type": "plan",
"flag_emergency": "Н",
"is_paid": "Д",
"is_local_need": "Н",
"is_favorites": "Н",
"is_closed": "N",
"is_oico_account": 1,
"house": "Луначарского ул, дом 240",
"full_address": "Екатеринбург г, Луначарского ул, дом 240",
"fias": null,
"flat": "кв 100",
"flat_num": "100",
"flat_type": 1,
"cnt_id": 13521,
"house_id": 54696,
"flat_id": 1206770,
"type_id": 21,
"ess_id": 4114,
"status_id": 1,
"reason_id": null,
"emp_id": 36059,
"resp_id": 35574,
"priority_id": null,
"request_rso_id": 77530,
"check_id": null,
"execution_time": "04.04.2022 00:00",
"closing_time": null,
"created_at": "01.08.2023 20:37",
"updated_at": "02.04.2024 05:56",
"deadline_at": "04.04.2022",
"local_at": "2024-04-01T00:00:00.000Z",
"appointed_at": "02.04.2024",
"execution_time_on_tz": "2022-04-04T00:00:00.000Z",
"closing_time_on_tz": null,
"created_on_tz": "2023-08-01T20:37:01.705Z",
"updated_on_tz": "2024-04-02T05:56:44.009Z",
"scheduled_execution_time_on_tz": null,
"desired_time_start_on_tz": "2024-04-02T00:00:00.000Z",
"note": "test1",
"fio": null,
"emp_note": "emp_note",
"floor": 11,
"entr": "11",
"autophone": null,
"contphone": "123",
"email": "mail@mail.ru",
"tags": "тестожидает оплаты",
"last_comments": [
{
"note": "1"
},
{
"note": "note1"
}
],
"price": 0,
"material_price": 10,
"paid": 100,
"ess": "Запросы по раскрытию информации по 731 пп",
"emp": "dsfjhskbskdf5",
"resp": "\"'`Alexander Galimov",
"created_by": "Пользователь личного кабинета ",
"emp_phone": "1746538770",
"resp_phone": null,
"uploads_count": 24,
"status": "Зарегистрирована",
"rso_status_name": "Зарегистрирована",
"ext_pay_system_id": "42",
"inn": "7203333262",
"what_was_done": "qwe1",
"oi_id": null,
"oi_status": null,
"rsfat_value": 6623,
"rsft_value": 90,
"reason": null,
"type": "Прочее",
"rate": null,
"deadline_str": -732,
"appointed_str": "02.04.2024",
"cnt_callback_phone": "34332830521",
"request_tags": [
{
"color": "#ADFFB2",
"title": "ожидает оплаты"
}
]
}
}
==== Получение списка заявок ====
GET https://server.ru/v2/request/iot?start&count&cnt_id&street&house_id&flat_id&type_id&type_ids&ess_id&ess_ids&emp_id&resp_id&status_ids&rtype_id
&rtype_ids&request_id&date_start&date_end&keywords&custom_filter&is_only_my&custom_order&house_ids&flat_ids&emp_ids&resp_ids&search_phone
&house_group_ids&period_exec
**Параметры запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|start|number|да|C какой позиции получить заявки|
|count|number|да|Сколько заявок получить|
|cnt_id|number|нет| идентификатор юр. лица|
|city|string|нет| Название города|
|street|string|нет|улица|
|type_id|number|нет|идентификатор типа работ|
|flat_type|number|нет|тип помещения|
|type_ids|string|нет| список идентификаторов типов работ разделенных двоеточием. Пример: "3:12"|
|ess_ids|string|нет| список идентификаторов причин обращения через двоеточие. Пример: "21:32:77"|
|tag_ids|string|нет| идентификаторы тэгов для заявок|
|status_ids|string|нет|список идентификаторов статусов через двоеточие. Пример: "1:2:3"|
|rtype_ids|string|нет|список идентификаторов типов заявки через двоеточие. Пример: "1:2:3"|
|request_id|number|нет|идентификатор заявки|
|date_start|string|нет|дата начала (фильтруется по дате создания) в формате DD.MM.YYYY|
|date_end|string|нет|дата окончания (фильтруется по дате создания) в формате DD.MM.YYYY|
|keywords|string|нет|ключевые слова|
|is_only_my|number|нет|фильтр, определяющий необходимо ли показывать все заявки или только те, у которых пользователь - ответственный / исполнитель ( 0 - все / 1 - пользователя)|
|house_ids|string|нет|список идентификаторов домов через двоеточие. Пример: "1:2:3"|
|flat_ids|string|нет|список идентификаторов помещений через двоеточие. Пример: "1:2:3"|
|emp_ids|string|нет|список идентификаторов ответственных через двоеточие. Пример: "1:2:3"|
|resp_ids|string|нет|список идентификаторов исполнителей через двоеточие. Пример: "1:2:3"|
|search_phone|string|нет|фильтр по номеру телефона.|
|house_group_ids|string|нет|список идентификаторов групп домов через двоеточие. Пример: "1:2:3"|
|period_exec|string|нет|фильтр по срокам выполнения. Просроченные: П,На сегодня: С,На завтра: З,На ближайшие 3 дня: Т,На неделю: Н, Все: В|
|is_favorites|number|нет|фильтр, определяющий необходимо ли показывать все заявки или только те, которые у пользователя в избранном ( 0 - все / 1 - избранные)|
|add_type|string|нет|фильтр SLA. Тип фильтра. значения: RSFAT - первое принятие в работу; RSFT - время до выполнения|
|add_more_than|number|нет|фильтр SLA. Больше чем. указывается в количестве секунд. Не будет работать, если не указан add_type|
|add_less_than|number|нет|фильтр SLA. Меньше чем. указывается в количестве секунд. Не будет работать, если не указан add_type|
**Тип ответа:** Массив объектов
**Параметры ответа (объектов массива):**
^ Название ^ Тип ^ Обязательно ^ Описание^
|rn|number|да|порядковый номер выборки|
|request_id|number|да|идентификатор заявки|
|flag_emergency|string|да| Аварийная ли заявка. "Д" - аварийная заявка / "Н" - не аварийная заявка|
|note|string|да|текст заявки|
|tags|string|нет|тэги заявки|
|last_comments|array|да|список последних комментариев|
|rate|string|нет|рейтинг заявки|
|house|string|да|Адрес дома|
|ext_request_id|string|нет|идентификатор заявки из внешней системы (например, ойко)|
|request_type |number|нет|тип заявки в числовом обозначении|
|cnt_id |number|нет|ид УК|
|flat|string|может быть null|номер квартиры|
|fias|string|может быть null|номер фиаса|
|full_address|string|да|текстовое представление адреса|
|entr|string|нет|обозначение подъезда|
|resp_id|number|нет|идентификатор ответственного сотрудника|
|resp|string|нет|ответственный сотрудник|
|status|string|да|текстовое описание статуса|
|status_id|number|да|идентификатор статуса|
|created_at|string|да|дата и время создания заявки в часовом поясе пользователя|
|updated_at|string|нет| дата и время обновления заявки|
|execution_time|string|нет|дата и время выполнения заявки|
|scheduled_execution_time_on_tz|string|нет|срок выполнения по регламенту в формате ISO|
|closing_time|string|нет|дата и время закрытия заявки|
|price|number|может быть null| Цена заявки. Определена, если заявка платная, если нет, то null|
|material_price|number|-|стоимость материалов по заявке|
|request_tags|array|может быть []|тэги заявки|
|uploads_count|number|-|кол-во скачиваний заявки|
|appointed_str|string|может быть null|время прихода специалиста в формате сегодня / завтра / вчера / дата c hh:mm( до hh:mm)|
|appointed_at|string|может быть null|Дата и время прихода специалиста|
|deadline_str|number|да|количество дней до конца ожидания выполнения заявки. Может иметь отрицательное значение.|
|emp|string|может быть null|ФИО исполнителя|
|emp_id|number|может быть null|идентификатор исполнителя|
|is_closed|string|да|закрыта ли заявка Y / N|
|req_type|string|да|тип заявки 'plan', 'pay', 'emerg', 'warranty'|
|reason|string|может быть null|текстовое описание причины статуса|
|reason_id|number|нет|идентификатор причины статуса|
|local_at|string|может быть null|Дата, когда исполнитель локализовал аварию по заявке «ДД.ММ.ГГГГ ЧЧ:ММ» |
|contphone|string|да|Номер телефона клиента обратившегося с заявкой|
|house_id|number|нет|идентификатор дома|
|flat_id|number|нет|идентификатор помещения|
|flat_type|number|нет|тип помещения|
|flat_num|string|нет|номер помещения|
|autophone|string|нет|АОН|
|ess_id|number|нет|идентификатор причины обращения|
|request_rso_id|number|нет|номер заявки в РСО|
|editable|string|нет|редактируема ли Y / N|
|type_id|number|нет|идентификатор типа заявки|
|is_favorites|string|да|добавлена ли заявка в избранное Д/Н|
**Примеры:**
//Запрос
/*
https://server.ru/v2/request/iot?start=1&count=5
*/
//Ответ
[
{
"rn": 1,
"request_id": 1305732,
"flag_emergency": "Н",
"note": "И ставит",
"house": "Академика Бардина ул, дом 200",
"full_address": "Екатеринбург г, Академика Бардина ул, дом 200",
"fias": null,
"flat": "кв 1",
"request_type ": 1,
"cnt_id ": 100,
"flat_num": "1",
"flat_type": 1,
"entr": "12",
"status": "Принята в работу",
"created_at": "29.07.2024 13:24",
"updated_at": "29.07.2024 13:28",
"execution_time": "02.02.2026 00:00",
"scheduled_execution_time_on_tz": "2024-04-19T06:19:44.000Z",
"closing_time": null,
"price": null,
"material_price": null,
"tags": "тестожидает оплаты",
"request_tags": [
{
"color": "#FF00FF",
"title": "123"
}
],
"last_comments": [
{
"note": "оле ле ола ла"
}
],
"uploads_count": 0,
"appointed_str": null,
"appointed_at": null,
"emp": "kfkfkfkfkfkf",
"resp": "Системный пользователь ",
"deadline_str": 546,
"reason": null,
"reason_id": null,
"status_id": 2,
"is_closed": "N",
"emp_id": 35875,
"resp_id": 35374,
"request_type ": 1,
"cnt_id ": 100,
"local_at": null,
"house_id": 55061,
"flat_id": 1213449,
"contphone": null,
"autophone": null,
"ess_id": 1600,
"ext_request_id": null,
"type_id": 28,
"req_type": "plan",
"rate": null,
"is_favorites": "Н",
"request_rso_id": 78081,
"editable": "N",
},
{
"rn": 2,
"request_id": 1305731,
"flag_emergency": "Н",
"note": "Стстстсат",
"house": "Академика Бардина ул, дом 200",
"full_address": "Екатеринбург г, Академика Бардина ул, дом 200",
"fias": null,
"flat": "кв 1нцнццрцр",
"flat_num": "1нцнццрцр",
"flat_type": 1,
"entr": null,
"request_type ": 1,
"cnt_id ": 100,
"status": "Принята в работу",
"created_at": "29.07.2024 13:23",
"updated_at": "05.08.2024 09:02",
"execution_time": "16.08.2024 13:23",
"closing_time": null,
"price": null,
"material_price": null,
"request_tags": []
"last_comments": [],
"uploads_count": 0,
"appointed_str": null,
"appointed_at": null,
"emp": null,
"resp": "Системный пользователь ",
"deadline_str": 11,
"reason": null,
"reason_id": null,
"status_id": 2,
"is_closed": "N",
"emp_id": null,
"resp_id": 35374,
"local_at": null,
"house_id": 55061,
"flat_id": 1214364,
"contphone": null,
"autophone": null,
"ess_id": 4079,
"ext_request_id": null,
"type_id": 143,
"req_type": "plan",
"rate": null,
"is_favorites": "Н",
"request_rso_id": null,
"editable": "Y",
}
...
]
==== Получение списка доступных тэгов ====
GET https://server.ru/v2/request/tag_list?request_id&cnt_id
**Параметры запроса:**
^Название^Тип^Обязательно^Описание^
|request_id|number|нет|идентификатор заявки. Если его передать то в is_set Y / N будет показываться Y для тех тэгов которые установлены в указанной заявке |
|cnt_id|number|нет|идентификатор юр. лица. Если отсутствует, то выдаются теги по всем доступным юр. лицам|
**Параметры ответа:**
^Название^Тип^Обязательно^Описание^
|tag_id|number|да|идентификатор тега|
|title|string|да|наименование|
|color|string|нет|цвет|
|owner_id|number|нет|идентификатор ук|
|is_set|string|да|установлено ли|
**Пример:**
// запрос
/*
https://server.ru/v2/request/tag_list
*/
// ответ:
[
{
"tag_id": 8,
"title": "ГЖИ",
"color": "#E9DFFA",
"is_set": "N",
"owner_id": 13521
},
{
"tag_id": 841,
"title": "Чат",
"color": "#FF00FF",
"is_set": "N",
"owner_id": null
},
...
]
==== Получение детализации по заявке ====
GET https://server.ru/v2/request/:request_id
**Переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|request_id|number|да|идентификатор заявки, по которой нужно получить детализацию|
**Тип ответа:** Объект
**Параметры ответа:**
^ Название ^ Тип ^ Описание^
|request_id|number|идентификатор заявки|
|rtype|string|тип заявки|
|req_type|string|тип заявки полем из бд|
|flag_emergency|string|аварийная ли заявка. Д - аварийная / Н - не аварийная|
|prepay_flag|string|оплачиваемая ли заявка. Д - можно редактировать суммы к оплате /qr код для оплаты / Н - нет нельзя|
|is_rso_available|string|работа с заявками в РСО Д/Н|
|note|string|текст заявки|
|house|string| Адрес дома|
|fias|string| фиас|
|full_address|string| Полный адрес дома|
|debt|number| Долг за квартиру|
|flat|string|тип и номер квартиры|
|flat_num|string|номер квартиры|
|flat_type|number|тип помещения|
|status|string|текущий статус|
|reason|string|причина статуса|
|created_at|string|Дата и время создания заявки в часовом поясе пользователя. Формат DD.MM.YYYY hh24:mi|
|updated_at|string|Дата и время изменения заявки в часовом поясе пользователя. Формат DD.MM.YYYY hh24:mi|
|floor|number|номер этажа|
|ext_request_id|string|ид заявки из внешних ресурсов|
|request_type |number|тип заявки в числовом обозначении|
|entr|string|обозначение подъезда|
|appeal_num|string|номер обращения|
|appeal_date|string|дата обращения|
|autophone|string|АОН|
|contphone|string|если житель пожелал оставить другой контактный телефон|
|email|string|Адрес электронной почты жителя|
|tags|string|тэги заявки|
|emp_status|string|статус исполнителя|
|resp_status|string|статус оветственного|
|type|string|Тип работ (из справочника)|
|ess|string|Причина обращения (из справочника)|
|emp|string|ФИО исполнителя заявки|
|resp|string|ФИО ответственного по заявке|
|created_by|string|пользователь, создавший заявку|
|deadline_at|string|Последняя дата срока выполнения заявки в формате DD.MM.YYYY |
|closing_time|string|Время закрытия заявки в формате DD.MM.YYYY hh24:mi |
|execution_time|string|Дата срока выполнения заявки в формате DD.MM.YYYY hh24:mi|
|execution_time_on_tz|string|Дата срока выполнения заявки в формате YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"|
|closing_time_on_tz|string|Дата закрытия заявки в формате YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"|
|created_on_tz|string|Дата создания заявки в формате YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"|
|updated_on_tz|string|Дата обновления в формате YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"|
|scheduled_execution_time_on_tz|string|Дата запланированного выполнения заявки формате YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"|
|desired_time_start_on_tz|string|Дата желаемого выполнения заявки формате YYYY-MM-DD"T"HH24:MI:SS.FF3"Z"|
|deadline_str|number|Количество до конца срока выполнения заявки. Может иметь отрицательное значение|
|emp_note|string|скрытый комментарий только для пользователей Д24 (операторы не видят)|
|appointed_at|string|время и дата прибытия исполнителя в часовом поясе пользователя. Формат - DD.MM.YYYY |
|emp_phone|string|телефон(ы) исполнителя|
|resp_phone|string|телефон(ы) ответственного|
|status_id|number| Идентификатор статуса|
|reason_id|number | Идентификатор причины|
|type_id|number | Идентификатор типа работ|
|ess_id|number | Идентификатор причины обращения|
|essence_id|number | Идентификатор причины обращения|
|emp_id|number | Идентификатор исполнителя|
|resp_id|number| Идентификатор ответственного|
|cnt_id|number| Идентификатор юр. лица|
|oi_id|number| Идентификатор оповещения|
|oi_status|string| Статус оповещения|
|house_id|number| Идентификатор дома|
|priority_id|number| Идентификатор приоритета заявки|
|flat_id|number| Идентификатор помещения|
|request_rso_id|number| Идентификатор РСО заявки|
|rso_status_name|string| Статус РСО заявки|
|is_paid|string| Оплачено или нет. Д - оплачено / Н - не оплачено|
|price|number| стоимость заявки|
|rate|number| рейтинг заявки|
|paid|number| сколько оплачено в данный момент по заявке|
|material_price| number|стоимость материалов по заявке|
|position| string|позиция сотрудника|
|access| string|доступ|
|appointed_str|string|желаемое время прихода специалиста|
|uploads_count|number|кол-во скачиваний заявки|
|last_comments|array|комменты к заявке в виде массива|
|request_tags|array|тэги заявки в виде массива|
|check_id|number|id связанного с заявкой чек-листа (если он есть, то заявка была создана через чек-лист)|
|is_local_need|string|нужна ли локализация аварии. Н - нет / Д - да|
|local_at|string| время локализации в формате YYYY-MM-DD"T"HH24:MI:SS.FF3"Z" |
|localization_on|string| время локализации в формате DD.MM.YYYY hh24:mi |
|what_was_done|string| что было сделано |
|cnt_callback_phone| string|телефон для обращения в кц|
|is_favorites|string|добавлена ли заявка в избранное Д/Н|
|is_closed|string|закрыта ли заявка Y/N|
|ext_pay_system_id|string|код платежной системы из ойко|
|inn|string|инн юр лица|
|is_oico_account|number|Есть ли у собственника приложение oico, варианты ответа 0 - нет приложения/1 - есть приложение) |
|fio|string| ФИО заявителя |
|rsft_value|number| SLA Время первого принятия в работу |
|rsfat_value|number| SLA Время выполнения |
**Примеры:**
//Запрос
/*
https://server.ru/v2/request/1300673
*/
//Ответ
{
"request_id": 1300673,
"rtype": "Плановая",
"req_type": "plan",
"flag_emergency": "Н",
"prepay_flag" : "Д",
"is_paid": "Д",
"is_rso_available": "Д"
"is_local_need": "Н",
"is_favorites": "Н",
"is_closed": "N",
"is_oico_account": 1,
"house": "Луначарского ул, дом 240",
"full_address": "Екатеринбург г, Луначарского ул, дом 240",
"fias": null,
"flat": "кв 100",
"flat_num": "100",
"flat_type": 1,
"cnt_id": 13521,
"appeal_num": null,
"appeal_date": null,
"ext_request_id": null,
"house_id": 54696,
"flat_id": 1206770,
"request_type ": 1,
"debt": null,
"type_id": 21,
"ess_id": 4114,
"essence_id": 4114,
"position": null,
"access": "О"
"status_id": 1,
"reason_id": null,
"emp_id": 36059,
"resp_id": 35574,
"priority_id": null,
"emp_status": "Р",
"resp_status": "Р"
"request_rso_id": 77530,
"check_id": null,
"execution_time": "04.04.2022 00:00",
"closing_time": null,
"created_at": "01.08.2023 20:37",
"updated_at": "02.04.2024 05:56",
"deadline_at": "04.04.2022",
"local_at": "2024-04-01T00:00:00.000Z",
"localization_on": "01.04.2024 00:00",
"appointed_at": "02.04.2024",
"execution_time_on_tz": "2022-04-04T00:00:00.000Z",
"closing_time_on_tz": null,
"created_on_tz": "2023-08-01T20:37:01.705Z",
"updated_on_tz": "2024-04-02T05:56:44.009Z",
"scheduled_execution_time_on_tz": null,
"desired_time_start_on_tz": "2024-04-02T00:00:00.000Z",
"note": "test1",
"fio": null,
"emp_note": "emp_note",
"floor": 1,
"entr": "1",
"autophone": null,
"contphone": "123",
"email": "mail@mail.ru",
"tags": "тестожидает оплаты",
"last_comments": [
{
"note": "1"
},
{
"note": "note1"
}
],
"price": 0,
"material_price": 10,
"paid": 100,
"ess": "Запросы по раскрытию информации по 731 пп",
"emp": "dsfjhskbskdf5",
"resp": "\"'`Alexander Galimov",
"created_by": "Пользователь личного кабинета ",
"emp_phone": "1746538770",
"resp_phone": null,
"uploads_count": 24,
"status": "Зарегистрирована",
"rso_status_name": "Зарегистрирована",
"ext_pay_system_id": "42",
"inn": "7203333262",
"what_was_done": "qwe1",
"oi_id": null,
"oi_status": null,
"rsfat_value": 6623,
"rsft_value": 90,
"reason": null,
"type": "Прочее",
"rate": null,
"deadline_str": -732,
"appointed_str": "02.04.2024",
"cnt_callback_phone": "34332830521",
"request_tags": [
{
"color": "#ADFFB2",
"title": "ожидает оплаты"
}
]
}
==== Получение деталей табов для заявки ====
GET https://server.ru/v2/request/:request_id/all
**Переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|request_id|number|да|Идентификатор заявки, которую нужно поменять|
**Переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|comment|number|нет|хотим ли мы подгружать комментарии в ленту|
|activity|number|нет|хотим ли мы подгружать историю активности в ленту|
|sms|number|нет|хотим ли мы подгружать смс в ленту|
|call|number|нет|хотим ли мы подгружать звонки в ленту|
|call_task|number|нет|хотим ли мы подгружать задания по звонкам в ленту|
|file|number|нет|хотим ли мы подгружать прикрепленные файлы в ленту|
|telegram|number|нет|хотим ли мы подгружать телеграм сообщения в ленту|
|pushes|number|нет|хотим ли мы подгружать пуши из МП в ленту|
Если не передать ни один из параметров, значит будет грузиться все типы, поэтому передавать только в том случае, когда нужно получить конкретные типы.
Передаются как пример: comment=1
**Тип ответа:** Объект
**Параметры ответа:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|id|number|да|-|
|feed_type|string|да|конкретный тип сущности в ленте|
|created_on_tz|string|да|время создания|
|user_data|string|да|данные о пользователе в одной строке, с разделителем|
|payload|string|да|полезная информация в зависимости от типа сущности|
|feed_opt_1|string|да|резервные данные с 1 до 10, меняются в зависимости от сущности|
|feed_opt_2|string|да|-|
|feed_opt_3|string|да|-|
|feed_opt_4|string|да|-|
|feed_opt_5|string|да|-|
|feed_opt_6|string|да|-|
|feed_opt_7|string|да|-|
|feed_opt_8|string|да|-|
|feed_opt_9|string|да|-|
|feed_opt_10|string|да|-|
|username|string|да|имя пользователя|
|position|string|да|позиция|
|access|string|да|уровень доступа|
//Ответ
[
{
"id": 1978271,
"user_data": "dev| |С",
"feed_type": "comment",
"created_on_tz": "2024-03-28T07:35:36.494Z",
"payload": "123",
"feed_opt_1": "Н",
"feed_opt_2": null,
"feed_opt_3": null,
"feed_opt_4": null,
"feed_opt_5": null,
"feed_opt_6": null,
"feed_opt_7": null,
"feed_opt_8": null,
"feed_opt_9": null,
"feed_opt_10": null,
"username": "dev",
"position": " ",
"access": "С"
},
{
"id": 10677037,
"user_data": "dev| |С",
"feed_type": "activity",
"created_on_tz": "2024-03-28T07:19:10.826Z",
"payload": "На основе данной заявки была создана заявка в ГазУралКомплект #77470",
"feed_opt_1": null,
"feed_opt_2": null,
"feed_opt_3": null,
"feed_opt_4": null,
"feed_opt_5": null,
"feed_opt_6": null,
"feed_opt_7": null,
"feed_opt_8": null,
"feed_opt_9": null,
"feed_opt_10": null,
"username": "dev",
"position": " ",
"access": "С"
},
{
"id": 2152559,
"user_data": null,
"feed_type": "sms",
"created_on_tz": "2018-03-23T04:37:27.986Z",
"payload": "Заявка 1287313, следите по тел. 349-91-11 или на https://pultdoma.ru",
"feed_opt_1": "9133815924",
"feed_opt_2": "2018-03-23 08:37:00 ",
"feed_opt_3": null,
"feed_opt_4": null,
"feed_opt_5": null,
"feed_opt_6": null,
"feed_opt_7": null,
"feed_opt_8": null,
"feed_opt_9": null,
"feed_opt_10": null,
"username": null,
"position": null,
"access": null
},
{
"id": 5308122,
"user_data": "Почевалов Андрей Александрович|Ст.инженер|П",
"feed_type": "call",
"created_on_tz": "2018-03-24T03:07:06.745Z",
"payload": "c1-1521860826.65794",
"feed_opt_1": "Исполнитель",
"feed_opt_2": "9232230214",
"feed_opt_3": "3",
"feed_opt_4": null,
"feed_opt_5": null,
"feed_opt_6": null,
"feed_opt_7": null,
"feed_opt_8": null,
"feed_opt_9": null,
"feed_opt_10": null,
"username": "Почевалов Андрей Александрович",
"position": "Ст.инженер",
"access": "П"
},
{
"id": 37521,
"user_data": "dev| |С",
"feed_type": "file",
"created_on_tz": "2024-03-25T09:22:05.250Z",
"payload": "ljklk",
"feed_opt_1": "lj",
"feed_opt_2": null,
"feed_opt_3": null,
"feed_opt_4": null,
"feed_opt_5": null,
"feed_opt_6": null,
"feed_opt_7": null,
"feed_opt_8": null,
"feed_opt_9": null,
"feed_opt_10": null,
"username": "dev",
"position": " ",
"access": "С"
},
]
==== Получение контрольных вопросов для заявки ====
GET https://server.ru/v2/request/:request_id/questions
**Переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|request_id|number|да|Идентификатор заявки, которую нужно поменять|
**Тип ответа:** Объект
**Параметры ответа:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|answer_id|number|да|ид ответа|
|question_id|number|да|ид вопроса|
|question_text|string|да|текст вопроса|
|answer_text|string|да|текст ответа|
|answer_type|string|да|тип ответа|
**Примеры:**
//Ответ
[
{
"answer_id": 257,
"question_id": 35,
"question_text": "Оцените качество выполнения заявки",
"answer_text": "2",
"answer_type": "Н"
}
]
==== Получение подписчиков заявки ====
GET https://server.ru/v2/request/:request_id/subscribers
**Переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|request_id|number|да|Идентификатор заявки, которую нужно поменять|
**Тип ответа:** Объект
**Параметры ответа:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|id|number|да|-|
|username|string|да|имя пользователя|
|access|string|да|уровень доступа|
|position|string|да|позиция|
**Примеры:**
//Ответ
[
{
"id":1672,
"username":"Служба поддержки",
"access":"С",
"position":"Директор"
}
]
==== Получение SLA заявки ====
GET https://server.ru/v2/request/:request_id/sla
**Переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|request_id|number|да|Идентификатор заявки, которую нужно поменять|
**Тип ответа:** Объект
**Параметры ответа:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|name|string|да|наименования статуса|
|status_id|number|да|ид статуса|
|created_on_tz|string|да|время создания|
|hours_round|number|да|округленное до часов общее время заявки в работе|
|days|number|да|кол-во дней заявки в работе|
|hours|number|да|кол-во часов заявки в работе|
|minutes|number|да|кол-во минут заявки в работе|
|seconds|number|да|кол-во секунд заявки в работе|
|req_sla_first_apply_time|number|да|первое принятие в работу|
|req_sla_finish_time|number|да|время окончания|
**Примеры:**
//Ответ
[
{
"name": "Принята в работу",
"status_id": 2,
"created_on_tz": "2023-03-27T07:25:29.616Z",
"hours_round": 8808,
"days": 367,
"hours": 0,
"minutes": 6,
"seconds": 0,
"req_sla_first_apply_time": null,
"req_sla_finish_time": null
}
]
==== Добавление комментария или прикрепление файла в ленту ====
POST https://server.ru/v2/request/:request_id/all/:feed_type
**Переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|request_id|number|да|идентификатор заявки|
|feed_type|string|да|тип сущности, которую собираемся менять|
feed_type может быть comment или file
**Тело запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|note|string|нет|комметарий|
|files|array|нет|массив файлов|
|flag_webhook |string|нет|вебхук, отправлять жителю или нет|
|fileName |string|нет|имя файла|
|fileUrl |string|нет|юрл файла|
files представляет собой массив объектов такого вида и передается в случае загрузки нескольких файлов:
|flag_webhook |string|нет|вебхук, отправлять жителю или нет|
|fileName |string|нет|имя файла|
|fileUrl |string|нет|юрл файла|
**Тип ответа:** Объект
**Параметры ответа:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|ok|boolean|да|успешное обновление|
**Примеры:**
//Прикрепление файлов
//Тело запроса
{
"files": [
{
"fileName": "9826171613_2.jpg",
"fileUrl": "https://cdn.ds24.ru/fs/static/2024/01/17/request_1705469628.jpg",
"flag_webhook": "Н"
},
{
"fileName": "9826171613_0.jpg",
"fileUrl": "https://cdn.ds24.ru/fs/static/2024/02/01/request_1706764444.pdf",
"flag_webhook": "Д"
}
]
}
//Ответ
{"ok":true}
==== Изменение объекта в ленте (табах) заявки ====
POST https://server.ru/v2/request/:request_id/all/:feed_type/:id
**Переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|request_id|number|да|идентификатор заявки|
|feed_type|string|да|тип сущности|
|id|string|да|ид объекта, который собираемся менять|
feed_type может быть comment, file
**Тело запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|note|string|нет|комментарий|
|flag_webhook |string|нет|вебхук, отправлять жителю или нет|
|mark |number|нет|оценка|
|mark_comment |string|нет|комментарий к оценке|
|delete_file |boolean|нет|булевое обозначение удаления файла|
**Тип ответа:** Объект
**Параметры ответа:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|ok|boolean|да|успешное обновление|
**Примеры:**
//Изменения флага для комментария или прикрепленного файла
//Тело запроса
{
"flag_webhook": "Д"
}
//Ответ
{"ok":true}
//Удаление файла
//Тело запроса
{
"delete_file": true
}
//Ответ
{"ok":true}
==== Получение количества не принятых в работу заявок ====
GET https://server.ru/v2/request/custom/new
**Тип ответа:** Объект
**Параметры ответа:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|request_count|number|да|количество заявок, которые не приняты в работу|
|request_emerg_count|number|да|количество не принятых в работу **аварийных** заявок из числа request_count|
**Примеры:**
//Запрос
/*
https://server.ru/v2/request/custom/new
*/
//Ответ
{
"request_count": 0,
"request_emerg_count": 0
}
==== Принятие в работу всех непринятых заявок ====
POST https://server.ru/v2/request/custom/new/apply
**Тип ответа:** Объект
**Параметры ответа:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|request_count|number|да|Количество принятых в работу заявок|
**Примеры:**
//Запрос
https://server.ru/v2/request/custom/new/apply
/*
https://server.ru/v2/request
*/
//Ответ
{
"request_count": 0
}
==== Отказ от принятия заявки в работу ====
POST https://server.ru/v2/request/:request_id/refuse
**Переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|request_id|number|да|идентификатор заявки|
**Тело запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|refuse_id|string|да|Код причины отказа от заявки из [[https://ds24.ru/wiki/doku.php?id=d24:develop:v2:backend:v2#%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B0_%D0%BF%D1%80%D0%B8%D1%87%D0%B8%D0%BD_%D0%BE%D1%82%D0%BA%D0%B0%D0%B7%D0%B0_%D0%BE%D1%82_%D0%B7%D0%B0%D1%8F%D0%B2%D0%BA%D0%B8|списка причин отказа от заявки]]|
**Тип ответа:** Объект
**Параметры ответа:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|request_id|number|да|Отправленный в теле запроса идентификатор заявки|
**Примеры:**
//Запрос
/*
https://server.ru/v2/request/1298309/refuse
*/
//Тело запроса
{
"refuse_id": "2"
}
//Ответ
{
"request_id": 1298309
}
==== Возврат к предшествующей причине обращения гарантийной заявки ====
POST https://server.ru/v2/request/:request_id/flashback
**Переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|request_id|number|да|идентификатор заявки|
**Тип ответа:** Объект
**Параметры ответа:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|request_id|number|да|идентификатор измененной заявки. В случае ошибки вернет 0. Возможные ошибки - нет доступа к заявке / заявка не является в данный момент гарантийной)|
**Примеры:**
//Запрос
/*
https://server.ru/v2/request/1298309/flashback
*/
//Ответ
{
"request_id": 1298309
}
==== Перевод аварийной заявки на участок ====
POST https://server.ru/v2/request/:request_id/tocurrentrepair
- сработает только если flag_emergency = Д в тек момент
- устанавливается время локализации = systimestamp
- устанавливается статус "Требуется передать", что бы была возможность сбросить флаг аварийности
- flag_emergency = Н (заявка перестает быть аварийной)
- исполнитель назначается дневной по плановым / платным заявкам
- автотегирование с правилом "Отправляют на участок (Сценарий исполнителя)"
**Переменные URL**
^ Название ^ Тип ^ Обязательно ^ Описание^
|request_id|number|да|идентификатор заявки|
**Тип ответа:** Объект
**Параметры ответа:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|request_count|number|да|количество заявок переведенных на участок|
**Примеры:**
//Запрос
/*
https://server.ru/v2/request/1298309/tocurrentrepair
*/
//Ответ
{
"request_count": 0
}
==== Публикация комментария / фотографии для жителя ====
POST https://server.ru/v2/request/:request_id/feed/:id
**Переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|request_id|number|да|идентификатор заявки|
|id|number|да|идентификатор комментария / фотографии|
**Тело запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|mtype|number|да|тип объекта (0 - комментарий, 2,3 - фото)|
|webhook_flag|string|да|"статус" публикации (Д - опубликовать, Н - снять с публикации) |
**Тип ответа:** Объект
**Параметры ответа:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|affected_rows|number|да|количество затронутых изменениями строк|
**Примеры:**
//Запрос
/*
https://server.ru/v2/request/:1298309/feed/124657
*/
//Тело запроса:
{
"mtype": 0,
"webhook_flag": "Д"
}
//Ответ
{
"affected_rows": 1
}
==== Получение ленты по заявке ====
GET https://server.ru/v2/request/:request_id/feed
**Переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|request_id|number|да|идентификатор заявки|
**Параметры запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|start|number|да|позиция, с которой получить ленту|
|count|number|да|количество элементов в ленте|
**Тип ответа:** Массив объектов
**Параметры ответа (объектов массива):**
^ Название ^ Тип ^ Обязательно ^ Описание^
|created_at|string|да|Дата создания|
|created_on_tz|string|да| Zulu Временная метка события по utc |
|type|number|да|Тип события 0 - комментарий, 1 - активность, 2 - файлы, 3 - изображения с превью, 4 - запись разговора|
|note|string|да|текст события|
|created_by|string|да|автор события|
|id|number|да|идентификатор события|
|flag_webhook|string|да| Статус публикации события. Д - опубликовано / Н - не опубликовано"|
|creator_type|number|да|0 - событие внутри системы, 1 - событие от собственника ч/з мп|
|creator_id|number|да|id пользователя создавшего событие в ленте|
**Примеры:**
//Запрос
/*
https://server.ru/v2/request/964825/feed
*/
//Ответ
[
{
"created_at": "12.03.2024 01:16",
"created_on_tz": "2024-03-11T20:16:44.842Z",
"type": 0,
"note": "прот",
"created_by": "кто-то очень умный",
"flag_webhook": "Н",
"id": 27072208,
"creator_type": 0,
"creator_id": 33
},
{
"created_at": "12.03.2024 01:16",
"created_on_tz": "2024-03-11T20:16:44.840Z",
"type": 1,
"note": "Статус сменился с Принята в работу на Выполнена",
"created_by": "кто-то очень умный",
"flag_webhook": null,
"id": 59487612,
"creator_type": 0,
"creator_id": 33
},
{
"created_at": "11.03.2024 16:08",
"created_on_tz": "2024-03-11T11:08:51.999Z",
"type": 0,
"note": "фывафыва",
"created_by": "кто-то очень умный",
"flag_webhook": "Н",
"id": 27067540,
"creator_type": 0,
"creator_id": 278794
},
{
"created_at": "11.03.2024 16:08",
"created_on_tz": "2024-03-11T11:08:51.979Z",
"type": 1,
"note": "Статус сменился с Зарегистрирована на Принята в работу",
"created_by": "кто-то очень умный",
"flag_webhook": null,
"id": 59470759,
"creator_type": 0,
"creator_id": 278794
}
]
==== Добавление фотографий к заявке ====
POST https://server.ru/v2/request/:request_id/add_images
**Переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|request_id|number|да|идентификатор заявки|
**Параметры запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|images|array|да|Массив с объектами вида { image_name: 'name.jpg', image_url: 'http://server.ru/image.jpg }, где image_name - имя файла изображения, image_url - url изображения|
**Параметры ответа:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|affected_rows|number|да|Количество созданных строк|
**Примеры:**
//Запрос
/*
https://server.ru/v2/request/964825/add_images
*/
// тело запроса
{
"images": [
{
"image_name": "996780_img.jpg",
"image_url": "https://ds24.ru/fs/static/2021/11/25/996780_img.jpg"
},
{
"image_name": "some_test.jpg",
"image_url": "https://ds24.ru/fs/static/2017/08/14/some_test.jpg"
},
{
"image_name": "ios_img",
"image_url": "https://ds24.ru/fs/static/2021/12/16/feed_img_NzE0.jpg"
}
]
}
//Ответ
{
"affected_rows": 3
}
===== Пуши =====
==== Получение списка push-уведомлений для пользователя ====
GET https://server.ru/v2/push/?start&count
**Параметры запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|start|number|да|с какой позиции получить push-уведомления|
|count|number|да|какое количество push-уведомлений получить|
**Тип ответа:** Массив объектов
**Параметры ответа (объектов массива):**
^ Название ^ Тип ^ Обязательно ^ Описание^
|rn|number|да|порядковый номер|
|push_id|number|да|идентификатор пуша|
|message|string|да|сообщение|
|object_id|number|да|идентификатор объекта|
|object_type|string|да|тип пуша|
|status|number|да|статус пуша. Смотреть [[d24:develop:v2:backend:v2#статусы_push-уведомления|описание статусов пуша]] |
|type_description|string|да|описание типа пуша.|
|created_at|string|да|время создания пуша в формате DD.MM.YYYY hh.mm|
|created_on_tz|string|да|время создания пуша в формате ISO|
|object_status|string|да|состояние статуса из заявки|
|address_full|string|да|полный адрес|
**Примеры:**
//Запрос
/*
https://server.ru/v2/push/?start=1&count=2
*/
//Ответ
[
{
"rn": 1,
"push_id": 25536,
"message": "blabla",
"object_id": 321,
"object_type": "З_Н",
"status": 1,
"type_description": "Новая заявка",
"created_at": "09.12.2021 14:33"
},
{
"rn": 2,
"push_id": 25535,
"message": "Комментарий к #1298471: комментарий",
"object_id": 1298471,
"object_type": "З_К",
"status": 0,
"type_description": "Новый комментарий к заявке",
"created_at": "09.12.2021 14:33"
}
]
==== получение детализации push-уведомления ====
GET https://server.ru/v2/push/:push_id
**Переменные URL:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|push_id|number|да|идентификатор пуша, для которого нужно получить детализацию|
**Тип ответа:** Объект
**Параметры ответа:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|push_id|number|да|идентификатор пуша|
|message|string|да|сообщение|
|object_id|number|да|идентификатор объекта|
|object_type|string|да|тип пуша|
|status|number|да|статус пуша. Смотреть [[d24:develop:v2:backend:v2#статусы_push-уведомления|описание статусов пуша]] |
|type_description|string|да|описание типа пуша|
|created_at|string|да|время создания пуша в формате DD.MM.YYYY hh.mm|
**Примеры:**
//Запрос
/*
https://server.ru/v2/push/25536
*/
//Ответ
{
"push_id": 25536,
"message": "blabla",
"object_id": 321,
"object_type": "З_Н",
"status": 2,
"type_description": "Новая заявка",
"created_at": "22.12.2021 10:37"
}
==== Пометить прочитанными все push-уведомления у пользователя ====
POST https://server.ru/v2/push/readall
**Тип ответа:** Объект
**Параметры ответа:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|affected_rows|number|да|количество затронутых обновлением строк|
**Примеры:**
//Запрос
/*
https://server.ru/v2/push/readall
*/
//Ответ code: 200
{
affected_rows: 167
}
===== Журнал звонков =====
==== Получение списка звонков от клиентов ====
GET https://server.ru/v2/calls_log/client
**Параметры запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|start|number|да|с какой позиции получить звонки|
|count|number|да|какое количество звонков получить|
|start_date|string|да|начальный период для звонков в формате ISO|
|end_date|string|да|конечный период для звонков в формате ISO|
|cnt_id|number|да|ид управляющей компании|
|city_text|string|нет|название города|
|street_text|string|нет|название улицы|
|house_ids|string|нет|ид домов через запятую|
|flat_ids|string|нет|ид помещений через запятую|
|phone_search|string|нет|телефон|
|rated|string|нет|условие по фильтрации оценок, принимает rated = по оцененным, answered = по отвеченным, all = по оцененным и отвеченным|
**Параметры ответа (объектов массива):**
^ Название ^ Тип ^ Обязательно ^ Описание^
|call_id|number|да|порядковый номер|
|created_on_tz|string|да|время создания в формате ISO|
|phone|number|да|телефон|
|city_text|string|да|город|
|street_text|string|да|улица|
|house|string|да|дом|
|waiting_time|string|да|время ожидания звонка|
|mark|number|да|оценка звонка|
|mark_feedback|string|да|ответ на оценку из МП|
|record|string|да|запись разговора|
|flat|string|да|квартира|
|oper|string|да|оператор|
|out_count|number|да|количество исходящих звонков|
//Ответ
[
{
"call_id": 5315676,
"created_on_tz": "2020-07-02T10:38:17.461Z",
"phone": 123,
"city_text": "Екатеринбург г",
"street_text": "Луначарского ул",
"house": "240",
"waiting_time": null,
"mark": 2,
"mark_feedback": "ответ на очень длинный комментарий",
"record": "mMqqqqwXMm",
"flat": "кв 1",
"oper": "Петрова Галина",
"out_count": null
}
]
==== Получение списка звонков от исполнителей ====
GET https://server.ru/v2/calls_log/exec
**Параметры запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|start|number|да|с какой позиции получить звонки|
|count|number|да|какое количество звонков получить|
|start_date|string|да|начальный период для звонков в формате ISO|
|end_date|string|да|конечный период для звонков в формате ISO|
|cnt_id|number|да|ид управляющей компании|
|employee_ids|string|нет|ид сотрудников через запятую|
|phone_search|string|нет|телефон|
|rated|string|нет|условие по фильтрации оценок, принимает rated = по оцененным, answered = по отвеченным, all = по оцененным и отвеченным|
**Параметры ответа (объектов массива):**
^ Название ^ Тип ^ Обязательно ^ Описание^
|call_id|number|да|порядковый номер|
|created_on_tz|string|да|время создания в формате ISO|
|phone|number|да|телефон|
|emp|string|да|исполнитель|
|emp_pos|string|да|должность исполнителя|
|waiting_time|string|да|время ожидания звонка|
|mark|number|да|оценка звонка|
|mark_feedback|string|да|ответ на оценку из МП|
|record|string|да|запись разговора|
|oper|string|да|оператор|
//Ответ
[
{
"call_id": 4917151,
"created_on_tz": "2017-12-27T10:51:42.469Z",
"phone": 9617496539,
"emp": "Павлов Артем",
"emp_pos": "36",
"record": "1514371901.3283147",
"oper": "Пахоруков Сергей Анатольевич",
"waiting_time": "00:00:17",
"mark": 4,
"mark_feedback": null
}
]
==== Получение списка звонков для РСО ====
GET https://server.ru/v2/calls_log/rso
**Параметры запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|start|number|да|с какой позиции получить звонки|
|count|number|да|какое количество звонков получить|
|start_date|string|да|начальный период для звонков в формате ISO|
|end_date|string|да|конечный период для звонков в формате ISO|
|cnt_id|number|да|ид управляющей компании|
|svc_id|number|нет|ид управляющей компании РСО|
|phone_search|string|нет|телефон|
|rated|string|нет|условие по фильтрации оценок, принимает rated = по оцененным, answered = по отвеченным, all = по оцененным и отвеченным|
**Параметры ответа (объектов массива):**
^ Название ^ Тип ^ Обязательно ^ Описание^
|call_id|number|да|порядковый номер|
|created_on_tz|string|да|время создания в формате ISO|
|phone|number|да|телефон|
|name|string|да|название РСО|
|waiting_time|string|да|время ожидания звонка|
|mark|number|да|оценка звонка|
|mark_feedback|string|да|ответ на оценку из МП|
|record|string|да|запись разговора|
|oper|string|да|оператор|
//Ответ
[
{
"call_id": 5312859,
"created_on_tz": "2019-01-24T08:36:29.036Z",
"phone": 123,
"name": "Курганская Генерирующая компания",
"oper": "Петрова Галина",
"waiting_time": null,
"mark": 3,
"mark_feedback": null,
"record": "mMXdsfMm"
}
]
==== Детализация звонка ====
GET https://server.ru/v2/calls_log/:call_id
**Параметры запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|call_id|number|да|ид звонка|
**Параметры ответа (объектов массива):**
^ Название ^ Тип ^ Обязательно ^ Описание^
|call_id|number|да|порядковый номер|
|created_on_tz|string|да|время создания в формате ISO|
|phone|number|да|телефон|
|waiting_time|string|да|время ожидания звонка|
|employee_id|string|да|сотрудник|
|mark|number|да|оценка звонка|
|mark_comment|string|да|комментарий, оставленный при оценке звонка|
|mark_employee|string|да|комментатор|
|city_text|string|да|город|
|street_text|string|да|улица|
|house|string|да|дом|
|flat|string|да|квартира|
|mark_feedback|string|да|ответ на оценку из МП|
|scenario|number|да|сценарий звонка|
|record|string|да|запись разговора|
|oper|string|да|оператор|
|emp|string|да|исполнитель|
|emp_pos|string|да|должность исполнителя|
|svc_name|string|да|название РСО|
|owner_id|number|да|ид УК|
//Ответ
{
"call_id": 5315676,
"created_on_tz": "2020-07-02T10:38:17.461Z",
"phone": 123,
"record": "mMqqqqwXMm",
"employee_id": "12345",
"mark": 2,
"mark_comment": "очень длинный комментарий очень длинный комментарий очень длинный комментарий очень длинный комментарий очень длинный комментарий очень длинный комментарий очень длинный комментарий ",
"mark_feedback": "ответ на очень длинный комментарий",
"mark_employee": "dev",
"employee_id": null,
"scenario": 0,
"city_text": "Екатеринбург г",
"street_text": "Луначарского ул",
"house": "240",
"flat": "кв 1",
"oper": "Петрова Галина",
"emp": null,
"emp_pos": null,
"svc_name": null,
"svc_id": null,
"waiting_time": null,
"owner_id": 13521
}
==== Получение списка исходящих звонков ====
GET https://server.ru/v2/calls_log/:call_id/out
**Параметры запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|call_id|number|да|ид звонка|
**Параметры квери запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|cnt_id|number|да|ид управляющей компании|
**Параметры ответа (объектов массива):**
^ Название ^ Тип ^ Обязательно ^ Описание^
|calldate_on_tz|string|да|время звонка в ISO|
|record|string|да|запись разговора|
|dst|string|да|телефон|
|name|string|да|имя|
|dialstatus|string|да|статус|
//Ответ
[
{
"calldate_on_tz": "2016-04-30T21:53:42.000Z",
"record": "1462053220.168732",
"dst": "89005201455",
"name": "Иванов Виктор Иннокентьевич",
"dialstatus": "ANSWER"
}
]
==== Добавление или изменение оценки к звонку ====
POST https://server.ru/v2/calls_log/:call_id/mark
**Параметры запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|call_id|number|да|ид звонка|
**Параметры тела запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|mark|number|да|оценка звонка|
|mark_comment|strring|да|комментарий|
**Параметры ответа (объектов массива):**
^ Название ^ Тип ^ Обязательно ^ Описание^
|call_id|number|да|ид звонка|
|mark|number|да|оценка звонка|
|mark_comment|string|да|комментарий|
//Ответ
{
"call_id": 2490610,
"mark": 3,
"mark_comment": "qwe"
}
===== Профиль =====
==== Получение детализации профиля ====
GET https://server.ru/v2/profile/detail
**Тип ответа:** Объект
**Параметры ответа:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|username| string |да| Имя пользователя |,
|can_close_request|boolean |да| доступ к закрытию заявок true или false |,
|can_access_meters|boolean |да| доступ к счетчикам true или false |,
|can_access_checklist|boolean |да| доступ к чеклистам true или false |,
|can_access_settings|boolean |да| доступ к настройкам true или false |,
|can_access_contacts|boolean |да| доступ к контактам true или false|,
|is_iot|string|да| системный ли пользователь Y \ N|,
|account_name| string |да| имя аккаунта|,
|phone| string |да| Номер телефона пользователя|,
|emp_id| number |да| ид пользователя |,
|not_read_push_count| number |да|количество непрочитанных push-уведомлений |,
|can_comment_to_ext_system|number|да|варианты 0 / 1|
|token_id| number |да| ид токена|,
|can_access_material_price|boolean |да| доступ к изменению цены материалов true или false |
|sip|array|да|Массив с объектами. Тип объектов см. ниже|
|access_status_list|string|да|Идентификаторы разрешенных статусов для изменения через двоеточие. Пример: 2:5:21:3:25:47|
|ref_users|object|да|Объект со всеми полями в юзере. см ниже|
|ref_countries|object|да|Объект со страной юзера. см ниже|
**sip**:
^название^тип^описание^
|queue_num|string|-|
|queue_name|string|-|
**ref_users**
^название^тип^обязательно^описание^
|ALLOWED_CLOSED_REASON|string|нет|Идентификаторы разрешенных причин закрытия заявки для изменения через двоеточие. Пример: 7164:7:8|
|||||
**Примеры:**
//Запрос
/*
https://server.ru/v2/profile/detail
*/
//Ответ
{
"username": "dev",
"can_close_request": false,
"can_access_meters": true,
"can_access_contacts": true,
"can_access_checklist": true,
"can_access_settings": true,
"account_name": "Лучшая",
"phone": null,
"emp_id": 35753,
"not_read_push_count": 82,
"can_comment_to_ext_system": 1,
"token_id": 5626,
"can_access_material_price": false,
"access_status_list": "2:5:21:3:25:47",
"ref_users": {
"EMPLOYEE_ID": 35753,
"LOGIN": "dev",
"POSITION": null,
"PHONES": null,
"ACCOUNT_ID": 2621,
"EMAIL": null,
"USERNAME": "dev",
"access": "А",
"STATUS": "Р",
"CC_EMP_ID": null,
"FLAG_LOGIN": "Д",
"POSITION_ID": 7,
"PROFILE_ID": null,
"VERIFIED": "Д",
"FLAG_OI_SMS": "Д",
"FLAG_NOTICE_DEBT": "Н",
"VAC_DATE_START": "2021-08-23T13:26:00.000Z",
"VAC_DATE_END": "2021-09-06T00:00:00.000Z",
"VAC_EMPLOYEE_ID": null,
"FLAG_DASHBOARD": "Д",
"FLAG_NIGHT_SERVICE": "Н",
"FLAG_SMS_SEND": "Д",
"SMS_CHARSET_TYPE": "Р",
"FLAG_METERS": "Д",
"TOKEN": null,
"VAC_COMMENT": null,
"FLAG_REQ_CONTROL": "Д",
"TIME_TO_CONTROL": null,
"FLAG_CONTACT": "Д",
"FLAG_UPLOAD_DEBT": "Н",
"FLAG_SHOW_DEBT": "Н",
"GCM_ID": null,
"ANDROID_VERSION": null,
"ANDROID_ACTIVITY_TZ": null,
"FLAG_PP_SMS_SEND": "Н",
"FLAG_PP_CALL_SEND": "Н",
"TIMETABLE": null,
"TELEGRAM_CHAT_ID": null,
"PHONES_OTHER": null,
"NOTIFY_COUNT": 183,
"NOTIFY_CLICK": 0,
"NOTIFY_PARAMS": "О;К",
"FLAG_CAN_CLOSE": "Н",
"FLAG_CURATOR": "Д",
"FLAG_RESP_TLGRM": "Д",
"FLAG_PP_CUSTOM_PROFILE": "Н",
"FLAG_CONTRACTOR": "Н",
"FLAG_CURATOR_TAKE_OFF": "Н",
"PUSH_CONFIG": "З_Н:З_К:З_Ф:З_СО:З_СП:on",
"FLAG_CAN_CHANGE_DEADLINE": "Д",
"CHIEF_EMPLOYEE_ID": null,
"FLAG_PP_EMAIL_SEND": "Н",
"FLAG_CAN_COMMENT_TO_EXT_SYSTEM": "Д",
"FLAG_KEY_EMPLOYEE": "Н",
"PP_CALL_PASS_DELAY": null,
"BLOCKED_STATUSES": null,
"ALLOWED_STATUSES": "2:5:21:3:25:47",
"FLAG_CHECK_LIST": "Д",
"FLAG_MATERIAL_PRICE": "Н",
"ALLOWED_CLOSED_REASON": null,
"IS_NEW_UI_REQUESTS": "Y",
"FLAG_SUPPORT": "Н",
"FLAG_VOIP_CALL": "Д",
"flag_check_list": "Д",
"FLAG_CAN_CHANGE_ESSENCE": "Д",
"employee_id": 35753,
"username": "dev",
"allowed_statuses": "2:5:21:3:25:47",
"accessToken": "9]J!5bzQ3B$__R|_*k.C!x3
==== Получение списка включенных push-уведомлений для профиля ====
GET https://server.ru/v2/profile/settings_push
**Тип ответа:** Массив объектов
**Параметры ответа (объектов массива):**
^ Название ^ Тип ^ Обязательно ^ Описание^
|descr|string |да|описание|
|value|string |да|значение|
|is_set|string |да|установлено ли|
**Примеры:**
//Запрос
/*
https://server.ru/v2/profile/settings_push
*/
//Ответ
[
{
"descr": "Назначен исп/отв в заявке",
"value": "З_Н",
"is_set": "1"
},
{
"descr": "Добавлен комментарий к заявке",
"value": "З_К",
"is_set": "1"
},
{
"descr": "Добавлен файл к заявке",
"value": "З_Ф",
"is_set": "1"
},
...
]
==== Изменение данных в профиле ====
POST https://server.ru/v2/profile/update
**Тело запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|fcm_token|string|нет|Если вдруг пуш секрет изменился на девайсе или был получен позже|
|push_config|string|нет|какие пуши юзеру необходимы|
|notify_params|string|нет|типы оповещений пользователя|
|notify_count|string|нет|количество непрочитанных оповещений|
|start_app|string|нет|выполняется каждый раз 1 раз при запуске АПП чтобы вести статистику использования апп|
|voip_token|string|нет|Если вдруг voip_token для sip звонилки изменился на девайсе или был получен позже|
|brand_code|string|нет|бренд код заложенный для WL |
|countrie_id|number|нет|ид страны |
**Тип ответа:** Объект
**Параметры ответа:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|affected_rows|number|да|Количество затронутых изменениями строк в БД|
**Примеры:**
//Тело запроса
{
"fcm_token": "NEWTOKEN123",
"push_config": "З_Ф:З_Н:З_К",
"notify_params": "О;К",
"notify_count": 15,
"start_app" : "im started!!",
"brand_code" : "EASYSOLUTION"
"countrie_id" : "1"
}
//Ответ
{
"affected_rows": 3
}
===== AEI (НЕ ИСПОЛЬЗОВАТЬ) =====
==== Работа с заявками ====
POST https://server.ru/aei/request
**Тело запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|token|string|да|Токен авторизации|
|act|string|да|Тип действия. Может быть 'list', 'detail' или 'create'|
|req или data|object|да|Объект с параметрами запроса|
В зависимости от типа act объект req или data может отличаться
Для 'create' посылается data
^ Название ^ Тип ^ Обязательно ^ Описание^
|hid|number|да|ID дома|
|eid|number|да|ID причины обращения|
|tid|number|да|ID типа работ|
|iid|number|да|ID оповещения|
|empid|number|да|ID исполнителя|
|fstr|string|да|помещение|
|ftype|number|да|тип помещения|
|rstr|string|да|описание заявки|
|phone|string|да|телефон|
|email|string|да|почта|
|price|number|да|цена|
|paid|number|да|сколько оплачено|
|erid|number|да|ext_request_id если заявка создана из интеграции|
|dtime|string|да|desired_time желаемое время выполнения|
|files|array|да|массив прикрепленных файлов|
Для 'list' посылается req
^ Название ^ Тип ^ Обязательно ^ Описание^
|hid|number|да|ID дома|
|fstr|string|да|помещение|
|ftype|number|да|тип помещения|
|count|number|да|сколько данных выдавать, максимум 30|
|start|number|да|с какой позиции выдать|
Для 'detail' посылается req
^ Название ^ Тип ^ Обязательно ^ Описание^
|rid|number|да|ID заявки|
**Примеры:**
//Тело запроса create
{
"token": "reET[{t9IfiL}-6!Zy2%i)noPySw_IVfF2A58D530F82792E08C9FFB0E7F0EE1F",
"act": "create",
"data": {
"hid": 55059,
"eid" : 4122,
"tid" : 23,
"fstr": "1",
"ftype": 1,
//"iid": 1,
//"empid": 1,
"rstr": "aei request",
"phone": "9125212573",
"email": null,
"price": 0,
"paid": 0,
"erid": 123,
"dtime": null,
"files": []
}
}
//Ответ
{
"ok": true,
"data": {
"rid": 1308921,
"request_type": 3
}
}
//Тело запроса list
{
"token": "reET[{t9IfiL}-6!Zy2%i)noPySw_IVfF2A58D530F82792E08C9FFB0E7F0EE1F",
"act": "list",
"req": {
"hid": 55059,
"fstr": "1",
"ftype": 1,
"count" : 1,
"start" : 1
}
}
//Ответ
{
"ok": true,
"data": [
{
"rid": 1308921,
"rstr": "aei request",
"stat": "Зарегистрирована",
"ldate": "13.02.2025 17:05",
"crdate": "13.02.2025 17:05",
"cphone": "9125212573"
}
]
}
//Тело запроса detail
{
"token": "reET[{t9IfiL}-6!Zy2%i)noPySw_IVfF2A58D530F82792E08C9FFB0E7F0EE1F",
"act": "detail",
"req": {
"rid": 1308918
}
}
//Ответ
{
"ok": true,
"data": {
"rid": 1308918,
"rstr": "aei request",
"stat": "Зарегистрирована",
"ldate": "",
"date": "13.02.2025 16:57",
"tstr": "Сантехника",
"estr": "Неисправность запорной арматуры стояка ХВС в подвале",
"resp": "dev",
"emp": "ПлановоПлатный сотрудник",
"edate": "18.02.2025",
"prior": "",
"ccount": 0,
"price": 0,
"flagpay": 1,
"paid": 0,
"request_type": 3,
"service": "23:4122",
"sid": 1,
"emppos": "",
"cphone": "9125212573",
"category_str": "Неисправность запорной арматуры стояка ХВС в подвале",
"service_str": "Сантехника",
"prepay_flag": "Н",
"what_was_done": "",
"answers": []
}
}
==== Работа с заявками из интеграции пульт дома ====
POST https://server.ru/aei/requestPultdoma.ru
**Тело запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|token|string|да|Токен авторизации|
|act|string|да|Тип действия. Может быть 'listComment', 'createComment', 'detail' или 'payment'|
|req или data|object|да|Объект с параметрами запроса|
В зависимости от типа act объект req или data может отличаться
Для 'detail' посылается data
^ Название ^ Тип ^ Обязательно ^ Описание^
|rid|number|да|ID заявки|
|phone|string|да|телефон|
Для 'listComment' посылается req
^ Название ^ Тип ^ Обязательно ^ Описание^
|rid|number|да|ID заявки|
|count|number|да|сколько данных выдавать, максимум 30|
|start|number|да|с какой позиции выдать|
Для 'createComment' посылается data
^ Название ^ Тип ^ Обязательно ^ Описание^
|rid|number|да|ID заявки|
|phone|string|да|телефон|
|cstr|string|да|текст комментария|
|files|aray|да|прикрепляемый файл|
Для 'payment' посылается data
^ Название ^ Тип ^ Обязательно ^ Описание^
|rid|number|да|ID заявки|
|price|number|да|стоимость|
|flagpay|number|да|оплачена или нет 1 или 0|
**Примеры:**
//Тело запроса detail
{
"token": "reET[{t9IfiL}-6!Zy2%i)noPySw_IVfF2A58D530F82792E08C9FFB0E7F0EE1F",
"act": "detail",
"req": {
"rid": 1308918,
"phone": "9125212573"
}
}
//Ответ
{
"ok": true,
"data": {
"rid": 1308918,
"rstr": "aei request",
"stat": "Зарегистрирована",
"ldate": "13.02.2025 17:56",
"date": "13.02.2025 16:57",
"tstr": "Сантехника",
"estr": "Неисправность запорной арматуры стояка ХВС в подвале",
"resp": "dev",
"emp": "ПлановоПлатный сотрудник",
"edate": "18.02.2025",
"prior": "",
"ccount": 1
}
}
//Тело запроса createComment
{
"token": "reET[{t9IfiL}-6!Zy2%i)noPySw_IVfF2A58D530F82792E08C9FFB0E7F0EE1F",
"act": "createComment",
"data": {
"rid": 1308918,
"phone": "9125212573",
"cstr": "текст комментария",
"files": []
}
}
//Ответ
{
"ok": true
}
//Тело запроса listComment
{
"token": "reET[{t9IfiL}-6!Zy2%i)noPySw_IVfF2A58D530F82792E08C9FFB0E7F0EE1F",
"act": "listComment",
"req": {
"rid": 1308918,
"count": 1,
"start": 1
}
}
//Ответ
{
"ok": true,
"data": [
{
"cstr": "текст комментария",
"date": "13.02.2025 17:57",
"type": 1,
"mtype": 0
}
]
}
//Тело запроса payment
{
"token": "reET[{t9IfiL}-6!Zy2%i)noPySw_IVfF2A58D530F82792E08C9FFB0E7F0EE1F",
"act": "payment",
"data": {
"rid": 1308918,
"price": 1,
"flagpay": 1
}
}
//Ответ
{
"ok": true
}
==== Работа с оповещениями====
POST https://server.ru/aei/oi
**Тело запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|token|string|да|Токен авторизации|
|act|string|да|Тип действия. Может быть 'list', 'detail' или 'listAll'|
|req|object|да|Объект с параметрами запроса|
Для 'list'
^ Название ^ Тип ^ Обязательно ^ Описание^
|hid|number|да|ID дома|
|count|number|да|сколько данных выдавать, максимум 30|
|start|number|да|с какой позиции выдать|
Для 'listAll'
^ Название ^ Тип ^ Обязательно ^ Описание^
|count|number|да|сколько данных выдавать, максимум 30|
|start|number|да|с какой позиции выдать|
Для 'detail'
^ Название ^ Тип ^ Обязательно ^ Описание^
|oiid|number|да|ID оповещения|
**Примеры:**
//Тело запроса list
{
"token": "reET[{t9IfiL}-6!Zy2%i)noPySw_IVfF2A58D530F82792E08C9FFB0E7F0EE1F",
"act": "list",
"req" : {
"hid" : 55059,
"start" : 1,
"count" : 1
}
}
//Ответ
{
"ok": true,
"data": [
{
"oid": 140606,
"stat": 0,
"ostr": "Ббббббббб",
"slist": "",
"tstr": "Прочее",
"sdate": "19.07.2024 16:25",
"edate": ""
}
]
}
//Тело запроса listAll
{
"token": "reET[{t9IfiL}-6!Zy2%i)noPySw_IVfF2A58D530F82792E08C9FFB0E7F0EE1F",
"act": "listAll",
"req" : {
"start" : 1,
"count" : 1
}
}
//Ответ
{
"ok": true,
"data": [
{
"oid": 143005,
"stat": 0,
"ostr": "Блаблабла",
"slist": "Холодная вода, Горячая вода",
"tstr": "Отключение",
"sdate": "23.12.2024 10:12",
"edate": "",
"hs": [
{
"addr": "Белинского ул",
"nums": "123"
}
]
}
]
}
//Тело запроса detail
{
"token": "reET[{t9IfiL}-6!Zy2%i)noPySw_IVfF2A58D530F82792E08C9FFB0E7F0EE1F",
"act": "detail",
"req" : {
"oiid" : 140606
}
}
//Ответ
{
"ok": true,
"data": [
{
"oid": 143005,
"stat": 0,
"ostr": "Блаблабла",
"slist": "Холодная вода, Горячая вода",
"tstr": "Отключение",
"sdate": "23.12.2024 10:12",
"edate": "",
"hs": [
{
"addr": "Белинского ул",
"nums": "123"
}
]
}
]
}
==== Работа со справочниками ====
POST https://server.ru/aei/reference
**Тело запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|token|string|да|Токен авторизации|
|act|string|да|Тип действия. Может быть 'houseList', 'flatList', 'typeList', 'essList', 'statusList', 'empList', 'reopenSubstatusList' или 'createFlat'|
|req или data|object|да|Объект с параметрами запроса|
Для 'houseList', 'typeList', 'statusList', 'empList' и 'reopenSubstatusList'
^ Название ^ Тип ^ Обязательно ^ Описание^
|count|number|да|сколько данных выдавать, максимум 30|
|start|number|да|с какой позиции выдать|
Для 'flatList'
^ Название ^ Тип ^ Обязательно ^ Описание^
|hid|number|да|ID дома|
|count|number|да|сколько данных выдавать, максимум 30|
|start|number|да|с какой позиции выдать|
Для 'essList'
^ Название ^ Тип ^ Обязательно ^ Описание^
|tid|number|да|ID типа работ|
|count|number|да|сколько данных выдавать, максимум 30|
|start|number|да|с какой позиции выдать|
Для 'createFlat' посылается data
^ Название ^ Тип ^ Обязательно ^ Описание^
|hid|number|да|ID типа работ|
|fstr|string|да|помещение|
|ftype|number|да|тип помещения|
**Примеры:**
//Тело запросов 'houseList', 'typeList', 'statusList', 'empList' и 'reopenSubstatusList', просто меняем на нужный в поле act
{
"token": "reET[{t9IfiL}-6!Zy2%i)noPySw_IVfF2A58D530F82792E08C9FFB0E7F0EE1F",
"act": "houseList",
"req" : {
"start" : 1,
"count" : 1
}
}
//Ответ houseList
{
"ok": true,
"data": [
{
"hid": "54916",
"hstr": "Верхняя Пышма г, Александра Козицына ул, дом 1"
}
]
}
//Ответ typeList
{
"ok": true,
"data": [
{
"tid": 23,
"tstr": "Сантехника"
}
]
}
//Ответ statusList
{
"ok": true,
"data": [
{
"sid": 1,
"sstr": "Зарегистрирована"
}
]
}
//Ответ empList
{
"ok": true,
"data": [
{
"eid": 35373,
"fio": "Системный пользователь"
}
]
}
//Ответ reopenSubstatusList
{
"ok": true,
"data": [
{
"ssid": 221,
"ssstr": "работы не выполнены1"
}
]
}
//Тело запроса essList
{
"token": "reET[{t9IfiL}-6!Zy2%i)noPySw_IVfF2A58D530F82792E08C9FFB0E7F0EE1F",
"act": "essList",
"req" : {
"tid": 21,
"start" : 1,
"count" : 1
}
}
//Ответ
{
"ok": true,
"data": [
{
"eid": 1626,
"estr": "Составить акт залива"
}
]
}
//Тело запроса flatList
{
"token": "reET[{t9IfiL}-6!Zy2%i)noPySw_IVfF2A58D530F82792E08C9FFB0E7F0EE1F",
"act": "flatList",
"req" : {
"hid": 54916,
"start" : 1,
"count" : 1
}
}
//Ответ
{
"ok": true,
"data": [
{
"fstr": "офис кв 1",
"ftype": 4
}
]
}
//Тело запроса createFlat
{
"token": "reET[{t9IfiL}-6!Zy2%i)noPySw_IVfF2A58D530F82792E08C9FFB0E7F0EE1F",
"act": "createFlat",
"data" : {
"hid": 54916,
"tid": 21,
"fstr": "офис кв 21",
"ftype": 1
}
}
//Ответ
{
"ok": true
}
==== Список адресов по номеру телефона ====
GET https://server.ru/aei/oico/address/:phone
**Параметры запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|phone|string|да|телефон|
**Примеры:**
//Запрос
https://server.ru/aei/oico/address/3522223173
//Ответ
[
items: [
{
"house_id": 202,
"flat_num": "8",
"flat_type": 3
}
]
]
==== Список причин обращений ====
GET https://server.ru/aei/oico/ess
**Примеры:**
//Ответ
[
"items": [
{
"type_str": " ДУ - аренда/продажа",
"ess_str": "Аренда квартир",
"ess_code": "361:4543"
},
{
"type_str": " ДУ - аренда/продажа",
"ess_str": "Аренда нежилых помещений/парковочных мест",
"ess_code": "361:4403"
},
{
"type_str": " ДУ - аренда/продажа",
"ess_str": "Присмотр за квартирой во время отсутствия хозяев",
"ess_code": "361:4503"
}
]
]
===== FS API =====
==== Отправка файла на сервер FS API ====
POST https://ds24.ru/fs
// Загрузка фото test.jpg на ds24.ru/fs
curl -v -H "filename: test.jpg" -X POST --data-binary "@test.jpg" https://ds24.ru/fs/
Ответ:
{
"ok":true,
"file":"https://ds24.ru/fs/static/2017/08/11/test_OTA4.jpg",
"thumbnail":"https://ds24.ru/fs/static/2017/08/11/test_OTA4_th.jpg"
}
===== Тесты =====
==== Добавление пуша для отправки пользователю ====
GET https://server.ru/v2/test/push?message&object_id&object_type
**Параметры запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|message|string|да|сообщение для пользователя|
|object_id|number|да|код объекта (например номер заявки)|
|object_type|string|да|Тип пуша (см типы пушей)|
**Примеры:**
// Запрос
/*
https://server.ru/v2/test/push?message=blablabla&object_id=123&object_type=З_Н
*/
//Ответ
{ 1 }
===== Чек-листы =====
==== Получение списка чек-листов ====
GET https://server.ru/v2/checklist?start&count&statuses&employee_id&cnt_id&house_id
**Параметры запроса:**
^ Название ^ Тип ^ Обязательно ^ Описание^
|start|number|да|Позиция, с которой получить данные|
|count|number|да|количество получаемых данных|
|statuses|string|нет|фильтр по статусам. Отправляется список статусов в формате STATUS1:STATUS2:STATUS3. Пример: "PENDING:INWORK".\\ Смотреть [[d24:develop:v2:backend:v2#статусы_чек-листа|описание статусов чек-листа.]]|
|employee_id|number|нет|фильтр по исполнителю|
|cnt_id|number|нет|идентификатор юр. лица|
|house_id|number|нет|фильтр по дому|
|check_id|number|нет|фильтр по идентификатору чек-листа|
|date_start|string|нет|дата и время начала в ISO формате|
|date_end|string|нет|дата и время конца в ISO формате|
**Тип ответа:** Массив с объектами
**Параметры ответа (объектов массива):**
^ Название ^ Тип ^ Обязательно ^ Описание^
|check_id|number|да|Идентификатор чек-листа|
|name|string|да| название чек-листа |
|check_on_tz|string|да| дата выполнения чек-листа в ISO формате |
|status|string|да| код статуса Смотреть [[d24:develop:v2:backend:v2#статусы_чек-листа|описание статусов чек-листа.]] |
|days_count|number|да| количество оставшихся дней до выполнения чек-листа|
|house_text|string|да|один из домов, отмеченных в чек-листе|
|houses_count|number|да|количество домов, отмеченных в чек-листе|
|username|string|да| исполнитель |
|employee_id|number|да|id исполнителя|
|count_all|number|да|количество всех чек-листов, подходящих под текущий запрос. (для подсчета количества страниц в пагинации)|
**Примеры:**
// Запрос
/*
https://server.ru/v2/checklist
*/
//Ответ
[
{
"check_id": 6849,
"name": "PAU_чеклист 1",
"check_on_tz": "2021-10-17T04:00:00.000Z",
"status": "INWORK",
"days_count": 2,
"house_text": "Бурова-Петрова ул, дом 78",
"houses_count": 5,
"username": "Предеин Анатолий",
"employee_id": 33,
"count_all": 20
}
]
==== Получение детализации чек-листа ====
GET https://server.ru/v2/checklist/:check_id
**Переменные URL:**
^Название^тип^обязательно^описание^
|check_id|number|да|идентификатор чек-листа, для которого нужно получить детализацию|
**Тип ответа:** Объект
**Параметры ответа:**
^Название^тип^обязательно^описание^
| check_id | number | да | Идентификатор чек-листа |
| name | string| да | название чек-листа |
| note | string| да | описание чек-листа |
| check_on_tz | string| да | дата выполнения чек-листа в ISO формате |
|status|string|да| код статуса. Смотреть [[d24:develop:v2:backend:v2#статусы_чек-листа|описание статусов чек-листа.]]|
| username | string| да | исполнитель |
| success_count | number | да | количество успешно выполненных работ по чек-листу |
| with_violations_count | number | да | количество работ с нарушениями |
| all_works_count | number | да | количество всех работ |
| requests_count | number | да | количество созданных заявок для работ|
|employee_id|number|да|идентификатор исполнителя|
**Примеры:**
// Запрос
/*
https://server.ru/v2/checklist/6849
*/
//Ответ
{
"check_id": 6849,
"name": "PAU_чеклист 1",
"note": "описание PAU_чеклист 1",
"check_on_tz": "2021-10-17T04:00:00.000Z",
"username": "Предеин Анатолий",
"success_count": 1,
"with_violations_count": 1,
"all_works_count": 5,
"requests_count": 1,
"status": "INWORK",
"employee_id": 33
}
==== Получение списка домов, указанных в чек-листе ====
GET https://server.ru/v2/checklist/:check_id/house
**Переменные URL**
^Название^тип^обязательно^описание^
|check_id|number|да|идентификатор чек-листа, для которого нужно получить дома|
**Тип ответа:** Массив с объектами
**Параметры ответа**
^Название^тип^обязательно^описание^
|house_id|number|да|идентификатор дома|
|house_text|string|да|адрес дома|
**Примеры:**
// Запрос
/*
https://server.ru/v2/checklist/6849/house
*/
//Ответ
[
{
"house_id": 40783,
"house_text": "Бурова-Петрова ул, 78"
},
...
]
==== Получение списка работ, указанных в чек-листе ====
GET https://server.ru/v2/checklist/:check_id/work
**Переменные URL**
^Название^тип^обязательно^описание^
|check_id|number|да|идентификатор чек-листа, для которого нужно получить список работ|
**Тип ответа:** Массив с объектами
**Параметры ответа**
^Название^тип^обязательно^описание^
|check_work_id|number|да|идентификатор работы|
|name|string|да|название работы|
|work_group_name|string|нет| название группы работ (если работа находится в группе)|
|work_group_id|number|нет|идентификатор группы работ (если работа находится в группе) |
|check_id|number|да|идентификатор чек-листа, к которому привязана работа|
|status|number|да| код статуса работы. [[d24:develop:v2:backend:v2#статусы_работ_чек-листа|описание статусов работ чеклиста]]|
**Примеры:**
// Запрос
/*
https://server.ru/v2/checklist/6849/work
*/
//Ответ
[
{
"check_work_id": 23365,
"name": "PAU_работа 1",
"work_group_name": "PAU_группа 1",
"work_group_id": 101,
"check_id": 6849,
"status": 0
},
{
"check_work_id": 23366,
"name": "PAU_работа 2",
"work_group_name": "PAU_группа 1",
"work_group_id": 101,
"check_id": 6849,
"status": 1
},
{
"check_work_id": 23367,
"name": "PAU_работы 3",
"work_group_name": null,
"work_group_id": null,
"check_id": 6849,
"status": 0
},
{
"check_work_id": 23368,
"name": "PAU_работа 4",
"work_group_name": null,
"work_group_id": null,
"check_id": 6849,
"status": 2
}
]
==== Получение детализации работы из чек-листа ====
GET https://server.ru/v2/checklist/work/:check_work_id
**Переменные URL**
^Название^тип^обязательно^описание^
|check_work_id|number|да|идентификатор работы, для которой нужно получить детализацию|
**Тип ответа:** Объект
**Параметры ответа**
^Название^тип^обязательно^описание^
|check_work_id|number|да|идентификатор работы|
|name|string|да|название работы|
|note|string|да|описание работы|
|check_id|number|да|идентификатор чек-листа, к которому привязана работа|
|check_status|string|да|Код статуса чеклиста, к которому привязана работа. [[d24:develop:v2:backend:v2#статусы_чек-листа|Описание статусов чеклиста]]|
|status|number|да| код статуса работы. [[d24:develop:v2:backend:v2#статусы_работ_чек-листа|Описание статуса работ чеклиста]] |
|criteria|string|нет| критерии. Текст в виде списка(с символами переноса строки) |
|ess_id|number|да| ИД причина обращения для создания заявки |
|ess|string|да| Текст причины обращения для создания заявки |
|type_id|number|да|идентификатор типа работы|
|required_action_list |string|нет|Перечень действий необходимых при выполнении работы|
**Примеры:**
// Запрос
/*
https://server.ru/v2/checklist/work/23365
*/
//Ответ
{
"check_work_id": 23365,
"check_id": 6849,
"check_status": "INWORK",
"status": 0,
"name": "PAU_работа 1",
"note": "описание работы 1",
"criteria": "- все ли хорошо 1\r\n- все ли хорошо 2\r\n?",
"ess_id" : 123,
"ess" : "Какая то причина обращения для создания заявки",
"type_id: 24,
"required_action_list" : "Y_P:Y_R:I_P:I_C:I_R"
}
правила и особенности формирования "required_action_list"
Y_ / N_ / I_ - это действия (Есть нарушения / Нет нарушений / Невозможно выполонить)
P / C / R - это необходимая сущность (Фото/ Коммент / Заявка)
Как пример Y_P:Y_R:I_P:I_C:I_R - если есть нарушения надо фото и заявку, если невозможно выполнить то и фото и коммент и заявку
==== Получение новостной ленты для работы из чек-листа ====
GET https://server.ru/v2/checklist/work/:check_work_id/feed
**Переменные URL**
^Название^тип^обязательно^описание^
|check_work_id|number|да|идентификатор работы, для которой нужно получить детализацию|
**Тип ответа:** Массив с объектами
**Параметры ответа**
^Название^тип^обязательно^описание^
|check_work_id|number|да|идентификатор работы|
|type|number|да|тип элемента ленты|
|note|string|да|комментарий или URL изображения в зависимости от типа|
|created_on_tz|string|да| когда создан |
|created_by|string|да| кем создан |
|flag_webhook|string|да|Y или N|
**Описание типов элемента ленты (type):**
^тип^описание^
|0|Комментарий|
|3|Изображение|
**Примеры:**
// Запрос
/*
https://server.ru/v2/checklist/work/23410/feed
*/
//Ответ
[
{
"note": "https://ds24.ru/fs/static/2021/11/25/996780_img.jpg",
"type": 3,
"check_work_id": 23410,
"created_on_tz": "2021-12-06T13:08:11.142Z",
"created_by": "dev",
"flag_webhook": "N"
},
{
"note": "Были нарушения",
"type": 0,
"check_work_id": 23410,
"created_on_tz": "2021-12-06T13:00:55.673Z",
"created_by": "dev",
"flag_webhook": "N"
},
...
]
==== Начать работу с чек-листом ====
POST https://server.ru/v2/checklist/:check_id/start
**Переменные URL**
^Название^тип^обязательно^описание^
|check_id|number|да|идентификатор чек-листа|
**Тип ответа:** Объект
**Параметры ответа**
^Название^тип^обязательно^описание^
|affected_rows|number|да|количество затронутых изменениями строк|
**Примеры:**
// Запрос
/*
https://server.ru/v2/checklist/6882/start
*/
//Ответ
{
"affected_rows": 1
}
==== Завершение чек-листа ====
POST https://server.ru/v2/checklist/:check_id/finish
**Переменные URL**
^Название^тип^обязательно^описание^
|check_id|number|да|идентификатор чек-листа|
**Тип ответа:** Объект
**Параметры ответа**
^Название^тип^обязательно^описание^
|affected_rows|number|да|количество затронутых изменениями строк|
**Примеры:**
// Запрос
/*
https://server.ru/v2/checklist/6882/finish
*/
//Ответ
{
"affected_rows": 1
}
==== Изменение статуса работы, указанной в чек-листе ====
POST https://server.ru/v2/checklist/work/:check_work_id
**Переменные URL**
^Название^тип^обязательно^описание^
|check_work_id|number|да|идентификатор работы из чек-листа|
**Тело запроса:**
^Название^тип^обязательно^описание^
|status|number|да|код статуса, на который произойдет замена текущего статуса|
|comment|string|нет|комментарий (если нужно передать комментарий вместе со статусом)|
**Тип ответа:** Объект
**Параметры ответа**
^Название^тип^обязательно^описание^
|affected_rows|number|да|количество затронутых изменениями строк|
**Примеры:**
// Запрос
/*
https://server.ru/v2/checklist/work/23410
*/
//тело запроса
{
"status": 3,
"comment": "тест изменения статуса с комментарием"
}
//Ответ
{
"affected_rows": 2
}
==== Добавление комментария или изображения в новостную ленту работы ====
POST https://server.ru/v2/checklist/work/:check_work_id/feed
**Переменные URL**
^Название^тип^обязательно^описание^
|check_work_id|number|да|идентификатор работы из чек-листа|
**Тело запроса:**
^Название^тип^обязательно^описание^
|image_name|string|нет|Название изображения (если нужно сохранить изображение. Передается только вместе с image_url)|
|image_url|string|нет|URL изображения (если нужно сохранить изображение. Передается только вместе с image_name)|
|comment|string|нет|комментарий (если нужно сохранить комментарий)|
**Тип ответа:** Объект
**Параметры ответа**
^Название^тип^обязательно^описание^
|affected_rows|number|да|количество затронутых изменениями строк|
**Примеры:**
// Запрос
/*
https://server.ru/v2/checklist/work/23410/feed
*/
//тело запроса
{
"comment": null, // если поле null, то можно не указывать его в теле запроса
"image_name": "some_test.jpg",
"image_url": "https://ds24.ru/fs/static/2017/08/14/some_test.jpg"
}
//Ответ
{
"affected_rows": 1
}
===== Сохраненные настройки фильтров =====
==== создание настроек фильтров ====
POST https://server.ru/v2/request_filter
**Тело запроса:**
^Название^тип^обязательно^описание^
|cnt_id|number|нет|id Организации |
|note|string|да|Описание настройки фильтров|
|filter_data|string|да|Настройки фильтров в виде строки в формате JSON|
**Тип ответа:** Объект
**Параметры ответа**
^Название^тип^обязательно^описание^
|filter_id|number|да| id сохраненных настроек|
|cnt_id|number|нет|id организации|
|employee_id|number|да|id сотрудника|
|note|string|да|описание настроек фильтра|
|filter_data|string|да|Данные настроек фильтра в виде строки в формате JSON. см пример|
**Примеры:**
// Запрос
/*
https://server.ru/v2/request_filter
*/
//тело запроса
{
cnt_id: 10401,
filter_data: "{\"period_exec\":-1,\"street\":\"Агатовая ул\",\"city\":\"all\",\"is_only_my\":0,\"period\":\"all\",\"custom_order\":\"create\",\"group_obj_id\":\"notSel\",\"resp_ids\":[],\"emp_ids\": [],\"rtype_ids\":[],\"status_ids\":[],\"type_ids\":[],\"ess_ids\":[],\"tag_ids\":[],\"house_ids\":[],\"flat_ids\":
[],\"sort\":\"D\",\"search_phone\":\"\",\"keywords\":\"\",\"request_id\":\"\",\"add_type\":\"notSel\",\"add_less_than\":0,\"add_more_than\":0,\"add_more_less_select\":\"more\"}",
note: "Тестовый фильтр"
}
//Ответ
{
"filter_id": 13261,
"cnt_id": 10401,
"note": "Тестовый фильтр",
"filter_data": "{\"period_exec\":-1,\"street\":\"Агатовая ул\",\"city\":\"all\",\"is_only_my\":0,\"period\":\"all\",\"custom_order\":\"create\",\"group_obj_id\":\"notSel\",\"resp_ids\":[],\"emp_ids\":[],\"rtype_ids\":[],\"status_ids\":[],\"type_ids\":[],\"ess_ids\":[],\"tag_ids\":[],\"house_ids\":[],\"flat_ids\":[],\"sort\":\"D\",\"search_phone\":\"\",\"keywords\":\"\",\"request_id\":\"\",\"add_type\":\"notSel\",\"add_less_than\":0,\"add_more_than\":0,\"add_more_less_select\":\"more\"}",
"employee_id": 127853
}
==== Обновление настроек фильтров ====
PUT https://server.ru/v2/request_filter/:filter_id
**Тело запроса:**
^Название^тип^обязательно^описание^
|note|string|да|Описание настройки фильтров|
**Тип ответа:** Объект
**Параметры ответа**
^Название^тип^обязательно^описание^
|filter_id|number|да| id сохраненных настроек|
|note|string|да|описание настроек фильтра|
**Примеры:**
// Запрос
/*
PUT https://server.ru/v2/request_filter/13261
*/
//тело запроса
{
note: "Тестовый фильтр"
}
//Ответ
{
"filter_id": 13261,
"note": "Тестовый фильтр",
}
==== Удаление настроек фильтров ====
DELETE https://server.ru/v2/request_filter/:filter_id
**Тип ответа:** Объект
**Параметры ответа**
^Название^тип^обязательно^описание^
|filter_id|number|да| id удаленных настроек|
**Примеры:**
// Запрос
/*
DELETE https://server.ru/v2/request_filter/13261
*/
//Ответ
{
"filter_id": 13261
}
==== получение настроек фильтров ====
GET https://server.ru/v2/request_filter?cnt_id=value
**query параметры:**
^Название^тип^обязательно^описание^
|cnt_id|number|нет|id Организации |
**Тип ответа:** Массив
**Параметры ответа**
^Название^тип^обязательно^описание^
|filter_id|number|да| id сохраненных настроек|
|cnt_id|number|да|id организации|
|employee_id|number|да|id сотрудника|
|note|string|да|описание настроек фильтра|
|filter_data|string|да|Данные настроек фильтра в виде строки в формате JSON. см пример|
**Примеры:**
// Запрос
/*
GET https://server.ru/v2/request_filter/10401
*/
//Ответ
[
{
"filter_id": 13261,
"cnt_id": 10401,
"note": "Тестовый фильтр",
"employee_id": 127853,
"filter_data": "{\"period_exec\":-1,\"street\":\"Агатовая ул\",\"city\":\"all\",\"is_only_my\":0,\"period\":\"all\",\"custom_order\":\"create\",\"group_obj_id\":\"notSel\",\"resp_ids\":[],\"emp_ids\":[],\"rtype_ids\":[],\"status_ids\":[],\"type_ids\":[],\"ess_ids\":[],\"tag_ids\":[],\"house_ids\":[],\"flat_ids\":[],\"sort\":\"D\",\"search_phone\":\"\",\"keywords\":\"\",\"request_id\":\"\",\"add_type\":\"notSel\",\"add_less_than\":0,\"add_more_than\":0,\"add_more_less_select\":\"more\"}"
}
]
==== описание filter_data ====
посмотреть описание полей можно тут: [[d24:develop:v2:backend:v2#получение_списка_заявок|]]
^название^значение по дефолту
|period_exec|-1|
|street|"all"|
|city|"all"|
|is_only_my |0|
|period |"all" (обозначает все)|
|custom_order |"create"|
|group_obj_id |"notSel" (обозначает не выбрано)|
|resp_ids |[] (пустой массив)|
|emp_ids |[] (пустой массив)|
|rtype_ids |[] (пустой массив)|
|status_ids |[] (пустой массив)|
|type_ids |[] (пустой массив)|
|ess_ids |[] (пустой массив)|
|tag_ids |[] (пустой массив)|
|house_ids |[] (пустой массив)|
|flat_ids |[] (пустой массив)|
|sort |"D"|
|search_phone |"" (пустая строка)|
|keywords |""(пустая строка)|
|request_id |""(пустая строка)|
|add_type |"notSel" (обозначает не выбрано)|
|add_less_than |0|
|add_more_than |0|
|add_more_less_select |"more"|
**нужно добавить is_favorites в disp_front**