====== Описание 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 при наличии) * З_СР Заявки | Срочные заявки - открытие приложения с предустановленным фильтром ?????????????? 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/" } ===== Аутентификация и Авторизация ===== 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-уведомлений | Параметры ответа ^ Название ^ Тип ^ Обязательно ^ Описание ^ | ok | boolean | да | true / false. Успешно ли выполнен запрос к серверу.| | credentials | boolean | да | true / false. Успешность аутентификации. true - аутентификация пройдена, false - нет.| | msg | string | нет | информационное сообщение для вывода пользователю. Отправляется, если произошла ошибка и при отправке проверочного кода. | | token | string | нет | Многоразовый индивидуальный токен авторизации. Используется в последующих запросах к серверу| Пример: // Тело запроса { "devType" : "int", "pushToken" : "" } // в 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 | нет | название улицы| Тип ответа: Массив с объектами Параметры ответа (объектов массива) ^ Название ^ Тип ^ Обязательно ^ Описание^ | 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|нет|номер этажа| **Пример:** //Запрос /* 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": "оф scriptalert(1)/script", "flat_type": 4, "flat_num": "scriptalert(1)/script", "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&find Параметры запроса: ^ Название ^ Тип ^ Обязательно ^ Описание^ |house_id|number|да|идентификатор дома| |find|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|да|идентификатор исполнителя в системе| **Пример:** //Запрос /* GET http://server.ru/v2/ref/emp_list */ // Ответ [ { "emp" : "Иванов Иван Иванович", "emp_id" : 23 }, { "emp" : "Клабуков Александр Витальевич [deprecated]", "emp_id" : 12 }, { "emp" : "Григорович Сергей Константинович", "emp_id" : 13 } ] ==== Получение списка ответственных ==== 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|да|идентификатор ответственного в системе| **Пример:** //Запрос /* GET http://server.ru/v2/ref/resp_list */ // Ответ [ { "resp": "Иванов Иван Иванович", "resp_id": 35713 }, { "resp": "Клабуков Александр Игоревич [deprecated]", "resp_id": 35293 }, { "resp": "Пажитнов Алексей Леонидович", "resp_id": 28853 }, ... ] ==== Получение списка статусов ==== GET http://server.ru/v2/ref/status_list?request_id=value Параметры запроса: ^ Название ^ Тип ^ Обязательно ^ Описание^ |request_id|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": "Платные" } ] ==== Получение списка причин статусов ==== GET http://server.ru/v2/ref/status_reason_list?status_id=value Параметры запроса: ^ Название ^ Тип ^ Обязательно ^ Описание^ |status_id|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" } ] ===== Оповещения ===== ==== Создание оповещения ==== 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|да|идентификатор оповещения, которое нужно обновить| **Параметры тела запроса:** ^ Название ^ Тип ^ Обязательно ^ Описание^ |status|string|нет|Новый статус заявки| |comment|string|нет|Новый комментарий от пользователя| **Тип ответа:** Объект **Параметры ответа:** ^ Название ^ Тип ^ Обязательно ^ Описание^ |affected_rows|number|да|Количество созданных/затронутых изменениями строк, в том числе и созданный комментарий| **Пример:** //Запрос /* http://server.ru/v2/oi/139245 */ //Тело запроса { "status": "A", "comment": "Комментарий для теста" } // Ответ { "affected_rows": 2 } ==== Получение списка оповещений ==== 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|да|список домов оповещения| **Параметры массива 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" } ] }, ... ] ==== Получение детализации оповещения ==== GET http://server.ru/v2/oi/:info_id **переменные URL:** ^ Название ^ Тип ^ Обязательно ^ Описание^ |info_id|number|да|идентификатор оповещения, для которого нужно получить детализацию| Тип ответа: Объект Параметры ответа **Параметры ответа**: ^ Название ^ Тип ^ Обязательно ^ Описание^ |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|да| дата и время создания оповещения| |start_at_tz|string|да|дата и время начала в часовом поясе пользователя в формате ISO| |end_at_tz|string|да|дата и время конца в часовом поясе пользователя в формате ISO| |created_on_tz|string|да|дата и время создания оповещения в формате ISO| |updated_on_tz|string|да|дата и время обновления оповещения в формате ISO| |note|string|да|текст оповещения| |last_comments|string|да|последние комментарии| |houses|string|да|список домов для оповещения| |status|string|да|статус оповещения статус оповещения "А" - активно "З" - закрыто| |status_str|string|да|текстовое описание статуса оповещения| |service_list|string|может быть null|код услуги, к которой относится оповещение| |service_list_str|string|может быть null|услуга, к которой относится оповещение| |reason|string|да|Код причины| |reason_str|string|да|текстовое описание причины| |resp|string|да|код ответственного| |resp_str|string|да|ответственный. Если РСО, тогда svc_id и svc не null| |svc_id|number|может быть null| идентификатор РСО| |svc|string|может быть null|название РСО| **Пример:** //Запрос /* http://server.ru/v2/oi/66776 */ // Ответ { "info_id": 66776, "type": "О", "type_str": "Отключение ", "start_at": "22.01.2016 08:40", "end_at": "22.01.2016 16:30", "created_at": "21.01.2016 09:19", "note": "плановые работы на подстанции 292 отключение 2 секции шин.", "status": "З", "status_str": "Закрыто", "service_list": "Э", "service_list_str": "Электричество", "reason": "П", "reason_str": "Плановые работы", "resp": "Р", "resp_str": "РСО", "svc_id": 6, "svc": "Электросети" } ==== Получение списка домов, на которые распространяется оповещение в виде списка состояний по каждому дому ==== GET http://server.ru/v2/oi/:info_id/house_state **переменные URL:** ^ Название ^ Тип ^ Обязательно ^ Описание^ |info_id|number|да|идентификатор оповещения, для которого нужно получить список домов| **Тип ответа:** Массив объектов **Параметры ответа (объектов массива):** ^ Название ^ Тип ^ Обязательно ^ Описание^ |status_id|string|да|id записи состояния| |house_id|string|да|id дома| |status|string|да|статус состояния дома "А" - активно "З" - закрыто| |date_start_tz|string|да|Временная метка по UTC даты начала| |date_end_tz|string|да|Временная метка по UTC даты окончания| |address|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" }, { "status_id": 4981825, "house_id": 49396, "status": "З", "date_start_tz": "2024-01-15T10:18:00.000Z", "date_end_tz": null, "address": "Курган г, Куртамышская ул, дом 18 К1" } ] ==== Получение списка домов, на которые распространяется оповещение в виде группировки по улицами ==== 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" } ] ==== Получение ленты событий оповещения ==== 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/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|number|может быть null|Текущее показание счетчика| |date|string|может быть null|Дата текущего показания| |prev_value|number|да|Последнее показание| |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|да|Комметрарий к заявке РСО| |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|нет|ид чек-листа| **Тип ответа:** **Параметры ответа:** Заявка как в детализации заявки **Примеры:** //Тело запроса { "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 } //Ответ { "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 | нет | заметка от исполнителя | |comment| string | нет | комментарий | |entrance| string | нет | подъезд | |floor| number | нет | этаж | |note|string|нет| заметка | |comment_flag_webhook| string | нет | Отправлять ли жителю Д\Н | |image_url| string | нет | Ссылка на изображение. Отправляется обязательно вместе с image_name | |image_name| string | нет | Название изображения | |appointed_at|string | нет | Дата, когда придёт исполнитель. Принимает "today" / "tomorrow" / "next_week" / дату в формате "ДД.ММ.ГГГГ" | |local_at| string | нет | Дата, когда исполнитель локализовал аварию по заявке "ДД.ММ.ГГГГ ЧЧ:ММ" | |material_price| number | нет | Стоимость материалов по заявке | |price|number | нет | цена | |what_was_done|string|нет| что было сделано | |paid|number|нет| сколько оплачено | |is_favorites|string|нет| Добавить/убрать из избранного (Д/Н) | |phone_contact|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, "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?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&exec_time_start&exec_time_end **Параметры запроса:** ^ Название ^ Тип ^ Обязательно ^ Описание^ |start|number|да|C какой позиции получить заявки| |count|number|да|Сколько заявок получить| |cnt_id|number|нет| идентификатор юр. лица| |city|string|нет| Название города| |street|string|нет|улица| |house_id|number|нет|идентификатор дома| |flat_id|number|нет|идентификатор квартиры| |type_id|number|нет|идентификатор типа работ| |type_ids|string|нет| список идентификаторов типов работ разделенных двоеточием. Пример: "3:12"| |ess_id|number|нет|идентификатор причины обращения| |ess_ids|string|нет| список идентификаторов причин обращения через двоеточие. Пример: "21:32:77"| |emp_id|number|нет|идентификатор исполнителя| |resp_id|number|нет|идентификатор ответственного| |status_ids|string|нет|список идентификаторов статусов через двоеточие. Пример: "1:2:3"| |rtype_id|number|нет|идентификатор типа заявки| |rtype_ids|string|нет|список идентификаторов типов заявки через двоеточие. Пример: "1:2:3"| |request_id|number|нет|идентификатор заявки| |date_start|string|нет|дата начала (фильтруется по дате создания) в формате DD.MM.YYYY| |date_end|string|нет|дата окончания (фильтруется по дате создания) в формате DD.MM.YYYY| |keywords|string|нет|ключевые слова| |custom_filter|string|нет|возможные значения фильтра: new / in_work / on_hold / deadline / finished . Mожет быть передано несколько значений через двоеточие (:).| |is_only_my|number|нет|фильтр, определяющий необходимо ли показывать все заявки или только те, у которых пользователь - ответственный / исполнитель ( 0 - все / 1 - пользователя)| |custom_order|string|нет|тип сортировки заявок ( По дате изменения: update; По дате создания: create; По сроку выполнения: execution; По дате выполнения: closing| |sort|string|нет|Направление сортировки. по возрастанию(asc): A; по убыванию(desc): D;| |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 дня: Т,На неделю: Н,Выполненные: И, Все: В| |exec_time_start|string|нет|начало срока выполнения| |exec_time_end|string|нет|конец срока выполнения| |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|да| текст заявки| |house|string|да|Адрес дома| |flat|string|может быть null|номер квартиры| |entr|string|нет|обозначение подъезда| |status|string|да|текстовое описание статуса| |status_id|number|да|идентификатор статуса| |created_at|string|да|дата и время создания заявки в часовом поясе пользователя| |updated_at|string|нет| дата и время обновления заявки| |execution_time|string|нет|дата и время выполнения заявки| |price|number|может быть null| Цена заявки. Определена, если заявка платная, если нет, то null| |material_price|number|-|стоимость материалов по заявке| |tags|string|может быть null|тэги заявки| |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|идентификатор исполнителя| |reason|string|может быть null|текстовое описание причины статуса| |local_at|string|может быть null|Дата, когда исполнитель локализовал аварию по заявке «ДД.ММ.ГГГГ ЧЧ:ММ» | |contphone|string|да|Номер телефона клиента обратившегося с заявкой| |house_id|number|нет|идентификатор дома| |flat_type|number|нет|тип помещения] |flat_num|string|нет|номер помещения| |autophone|string|нет|АОН| |ess_id|number|нет|идентификатор причины обращения| |type_id|number|нет|идентификатор типа заявки| |is_favorites|string|да|добавлена ли заявка в избранное Д/Н| **Примеры:** //Запрос /* https://server.ru/v2/request/?start=1&count=5 */ //Ответ [ { "rn": 1, "request_id": 1298931, "flag_emergency": "Н", "note": "Химчистка домашнего текстиля", "house": "Луначарского ул, дом 240", "flat": "кв 100", "entr": "2", "status": "Зарегистрирована", "created_at": "17.03.2022 15:26", "updated_at": null, "execution_time": "21.03.2022 15:26", "price": null, "material_price": null, "tags": "сайт", "uploads_count": 0, "appointed_str": null, "appointed_at": null, "emp": null, "deadline_str": -14, "reason": null, "status_id": 1, "emp_id": null, "local_at": null, "house_id": 54696, "flat_type": 1, "flat_num": "100", "contphone": "9826171613", "autophone": null, "ess_id": 3263, "type_id": 21, "is_favorites" :"Д" }, { "rn": 2, "request_id": 1298930, "flag_emergency": "Н", "note": "Химчистка домашнего текстиля", "house": "Луначарского ул, дом 240", "flat": "кв 100", "entr": null, "status": "Зарегистрирована", "created_at": "17.03.2022 15:26", "updated_at": "31.03.2022 13:28", "execution_time": "21.03.2022 15:26", "price": null, "material_price": null, "tags": "сайт", "uploads_count": 0, "appointed_str": null, "appointed_at": null, "emp": "dev", "deadline_str": -14, "reason": null, "status_id": 1, "emp_id": 35753, "local_at": null, "house_id": 54696, "flat_type": 1, "flat_num": "100", "contphone": "9826171613", "autophone": null, "ess_id": 3263, "type_id": 21, "is_favorites" :"Н" }, ... ] ==== Получение списка доступных тэгов ==== 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|нет|цвет| |is_set|string|да|установлено ли| **Пример:** // запрос /* https://server.ru/v2/request/tag_list */ // ответ: [ { "tag_id": 8, "title": "ГЖИ", "color": "#E9DFFA", "is_set": "N" }, { "tag_id": 841, "title": "Чат", "color": "#FF00FF", "is_set": "N" }, ... ] ==== Получение детализации по заявке ==== GET https://server.ru/v2/request/:request_id **Переменные URL:** ^ Название ^ Тип ^ Обязательно ^ Описание^ |request_id|number|да|идентификатор заявки, по которой нужно получить детализацию| **Тип ответа:** Объект **Параметры ответа:** ^ Название ^ Тип ^ Описание^ |request_id|number|идентификатор заявки| |rtype|string|тип заявки| |req_type|string|тип заявки полем из бд| |flag_emergency|string|аварийная ли заявка. Д - аварийная / Н - не аварийная| |note|string|текст заявки| |house|string| Адрес дома| |fias|string| фиас| |full_address|string| Полный адрес дома| |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|номер этажа| |entr|string|обозначение подъезда| |autophone|string|АОН| |contphone|string|если житель пожелал оставить другой контактный телефон| |email|string|Адрес электронной почты жителя| |tags|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 | Идентификатор причины обращения| |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|стоимость материалов по заявке| |appointed_str|string|желаемое время прихода специалиста| |uploads_count|number|кол-во скачиваний заявки| |last_comments|string|комменты к заявке в виде массива| |request_tags|string|тэги заявки в виде массива| |check_id|number|id связанного с заявкой чек-листа (если он есть, то заявка была создана через чек-лист)| |is_local_need|string|нужна ли локализация аварии. Н - нет / Д - да| |local_at|string| время локализации | |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": "Н", "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": 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|нет|хотим ли мы подгружать звонки в ленту| |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 до 5, меняются в зависимости от сущности| |feed_opt_2|string|да|-| |feed_opt_3|string|да|-| |feed_opt_4|string|да|-| |feed_opt_5|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, "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, "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, "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, "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, "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|нет|комметарий| |flag_webhook |string|нет|вебхук, отправлять жителю или нет| |fileName |string|нет|имя файла| |fileUrl |string|нет|юрл файла| **Тип ответа:** Объект **Параметры ответа:** ^ Название ^ Тип ^ Обязательно ^ Описание^ |ok|boolean|да|успешное обновление| **Примеры:** //Добавление комментария //Тело запроса { "note": "123" "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, call, file **Тело запроса:** ^ Название ^ Тип ^ Обязательно ^ Описание^ |note|string|нет|комментарий| |flag_webhook |string|нет|вебхук, отправлять жителю или нет| |mark_average |number|нет|оценка| |delete_file |boolean|нет|булевое обозначение удаления файла| **Тип ответа:** Объект **Параметры ответа:** ^ Название ^ Тип ^ Обязательно ^ Описание^ |ok|boolean|да|успешное обновление| **Примеры:** //Изменения флага для комментария или прикрепленного файла //Тело запроса { "flag_webhook": "Д" } //Ответ {"ok":true} //Изменения оценки звонка //Тело запроса { "mark_average": 4 } //Ответ {"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 - комментарий, 1- фото)| |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 изображения| **Параметры ответа:** ^ Название ^ Тип ^ Обязательно ^ Описание^ |affecred_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/profile/detail **Тип ответа:** Объект **Параметры ответа:** ^ Название ^ Тип ^ Обязательно ^ Описание^ |username| string |да| Имя пользователя |, |can_close_request|boolean |да| доступ к закрытию заявок 1 или 0 |, |can_access_meters|boolean |да| доступ к счетчикам 1 или 0 |, |can_access_contacts|boolean |да| доступ к контактам1 или 0|, |account_name| string |да| имя аккаунта|, |phone| string |да| Номер телефона пользователя|, |emp_id| number |да| ид пользователя |, |not_read_push_count| number |да|количество непрочитанных push-уведомлений |, |can_comment_to_ext_system| |да|варианты 0 / 1| |token_id| number |да| ид токена|, |can_access_material_price|boolean |да| доступ к изменению цены материалов 1 или 0 | |sip|array|да|Массив с объектами. Тип объектов см. ниже| |access_status_list|string|да|Идентификаторы разрешенных статусов для изменения через двоеточие. Пример: 2:5:21:3:25:47| |ref_users|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": "Д", "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|нет|какие пуши юзеру необходимы| |start_app|string|нет|выполняется каждый раз 1 раз при запуске АПП чтобы вести статистику использования апп| |voip_token|string|нет|Если вдруг voip_token для sip звонилки изменился на девайсе или был получен позже| |brand_code|string|нет|бренд код заложенный для WL | **Тип ответа:** Объект **Параметры ответа:** ^ Название ^ Тип ^ Обязательно ^ Описание^ |affected_rows|number|да|Количество затронутых изменениями строк в БД| **Примеры:** //Тело запроса { "fcm_token": "NEWTOKEN123", "push_config": "З_Ф:З_Н:З_К", "start_app" : "im started!!", "brand_code" : "EASYSOLUTION" } //Ответ { "affected_rows": 3 } ===== 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**