Описание API мобильного приложения Д24 v2

Данное API потеряет поддержку с 04.2022

  • З_СП Заявка | принята в работу
  • З_СО Заявка | открыта повторно
  • З_К Заявка | Комментарий к заявке добавлен
  • З_Ф Заявка | Фото к заявке добавлено
  • З_Н Заявка | Пользователь назначен исполнителем или ответственным
  • О_С Оповещение | Оповещение новое об отключениях
  • З_СР Заявки | Срочные заявки - открытие приложения с предустановленным фильтром
  • З_НП Заявки | Не принятые в работу - открытие приложения с предустановленным фильтром
  • З_КА Заявки | Посылается запрос по статусу аварийной заявки с быстрой кнопкой «Авария устранена»

POST https://auth.ds24.ru/api/user/auth

// Запрос
{
    "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" : "9125212573"
}
// Ответ
{
    "ok": true,
    "server": "https://ds24.ru/"
}

Регистрация http://server.ru/registration

Пользователь вводит свой логин и пароль на форме например «login : predeinay : superpass» , (login означает что авторизация происходит по логину и паролю) интерфейс должен закодировать эту строку в base64 чтобы получилась вот такая «строка bG9naW4gOiBwcmVkZWluYXkgOiBzdXBlcnBhc3M=» затем интерфейс посылает http запрос с заголовком «authorization: bG9naW4gOiBwcmVkZWluYXkgOiBzdXBlcnBhc3M=» и JSON объектом методом POST на URL: http://server.ru/registration

// Запрос
{
  "devType"   : "android",                       // Тип устройства, чтобы Д24 понимал как слать пуши и т.п.
  "pushToken" : "klnefkszkjn5lkawelnflkzsdfk"    // токен для пушей
}
// Ответ
{
    "ok"          : true,                           // если нет ошибок при оработке запроса true иначе false
    "credentials" : true,                           // логин и пароль верные
    "msg"         : "что то пошло не так",          // какой то текст который нужно показать юзеру на экране
    "token"       : "someverysecrettoken123123123"  // многоразовый индивидуальный токен устройства
}

Проверка по номеру телефона

сначала шлем номер телефона для формирования смс кода , заголовок выглядит так : «phone : 9125212573», где phone означает авторизацию по номеру телефона когда хотим провалидировать смс код, то шлем так «phone : 9125212573 : 12345»

Проверка валидности токена при любых последующих запросах к Д24 При запросах к API каждый раз для проверки прав доступа необходимо добавлять заголовок «authorization: base64(someverysecrettoken123123123)» где base64 - функция кодирования строки на разных языках может отличаться

Для работы с справочниками http://server.ru/reference

Получение списка доступных юр лиц

// запрос
{
  "act" : "cnt_list"
}
 
// ответ
{
    "ok": true,
    "token": true,
    "data": [{
        "cnt": "Жил. трест Кир. р-на (Спартак)",
        "cnt_id": 10983
    }, {
        "cnt": "Жил. трест Кир. р-на (Центр)",
        "cnt_id": 11041
    }, {
        "cnt": "Жил. трест Кир. р-на ООО РЭУ-25 (Рекорд)",
        "cnt_id": 11081
    }, {
        "cnt": "Жил. трест Кир. р-на ООО РЭУ-25 (Квартал-К)",
        "cnt_id": 11082
    }, {
        "cnt": "Жил. трест Кир. р-на (Леон)",
        "cnt_id": 11122
    }, {
        "cnt": "Жил. трест Кир. р-на (Микрорайон)",
        "cnt_id": 11123
    }, {
        "cnt": "Жил. трест Кир. р-на (Александр)",
        "cnt_id": 11141
    }, {
        "cnt": "Жил. трест Кир. р-на (Радуга)",
        "cnt_id": 11301
    }, {
        "cnt": "Жил. трест Кир. р-на (УК)",
        "cnt_id": 11601
    }]
}

Получение списка доступных улиц/нас. пунктов

// Запрос
{
  "act" : "street_list",
  "req" : {
            "cnt_id" : 1    // cnt_id - обязательный параметр
          }
}
 
// Ответ
{
    "ok": true,
    "token": true,
    "data": [{
        "street": "Александрова ул"
    }, {
        "street": "Гурьевская ул"
    }, {
        "street": "Инициативная ул"
    }, {
        "street": "Леонова ул"
    }, {
        "street": "Рекордная ул"
    }]
}

Получение списка доступных домов (не работает | не используется на фронте)

JSON запрос:
 
{
  "act" : "house_list",
  "req" : {
            "cnt_id" : 1,        // cnt_id - условный параметр, можно опустить указывание юр лица тогда покажутся все улицы/нас. пункты по доступным юр лицам
            "street"     : "Механический п."
          }
}
JSON ответ в случае успеха:
 
{
    "ok": true,
    "token": true,
    "data": [{
        "house": "32",
        "house_id": 38502
    }, {
        "house": "34",
        "house_id": 38506
    }, {
        "house": "34А",
        "house_id": 38625
    }, {
        "house": "36",
        "house_id": 38509
    }, {
        "house": "38",
        "house_id": 38512
    }, {
        "house": "40",
        "house_id": 38516
    }, {
        "house": "44",
        "house_id": 38521
    }, {
        "house": "48А",
        "house_id": 38630
    }, {
        "house": "50А",
        "house_id": 39543
    }]
}

Получение списка доступных домов

JSON запрос:
 
{
  "act" : "address_list",
  "req" : {
            "cnt_id" : 11601,        // cnt_id - условный параметр, можно опустить указывание юр лица тогда покажутся все улицы/нас. пункты по доступным юр лицам
          }
}
JSON ответ в случае успеха:
 
{
    "ok": true,
    "token": true,
    "data": [{
        "address":"Кемерово г, Дружбы ул, дом 1Б",
        "house_id":50136
        },
        {
        "address":"Кемерово г, Дружбы ул, дом 1А",
        "house_id":50135
        },
        ...
    ]}
}

Получение списка доступных подъездов по дому.

JSON запрос:
 
{
  "act" : "entrance_list",
  "req" : {
             "house_id" : 1251
          }
}
JSON ответ в случае успеха:
 
{
    "ok": true,
    "token": true,
    "data": [
        {"entrance":"1"},{"entrance":"2"},{"entrance":"3"},{"entrance":"4"},{"entrance":"5"}
    ]
}

Получение списка доступных этажей по дому.

JSON запрос:
 
{
  "act" : "floor_list",
  "req" : {
             "house_id" : 1251
          }
}
JSON ответ в случае успеха:
 
{
    "ok": true,
    "token": true,
    "data": [
        {"floor":0},{"floor":1},{"floor":2},{"floor":3},{"floor":4},{"floor":5}
    ]
}

Получение списка доступных квартир

JSON запрос:
 
{
  "act" : "flat_list",
  "req" : {
             "house_id" : 1251,  // id дома
             "entrance":"2",     // необязательно - подъезд в формате строки, т.к. есть 2ё1 и т.д.
             "floor":5,          // необязательно - номер этажа
          }
}
JSON ответ в случае успеха:
 
{
    "ok": true,
    "token": true,
    "data": [{
        "flat": "37",
        "flat_id": 55282
    },{
        "flat": "38",
        "flat_id": 55283
    },{
        "flat": "39",
        "flat_id": 55284
    },{
        "flat": "40",
        "flat_id": 55285
    }]
}

Получение типов работ

JSON запрос:
 
{
  "act" : "type_list"
}
JSON ответ в случае успеха:
 
{
    "ok": true,
    "token": true,
    "data": [{
        "type": "Сантехника",
        "type_id": 23
    }, {
        "type": "Электричество",
        "type_id": 24
    }]
}

Получение причин обращений

JSON запрос:
 
{
	"act": "ess_list",
	"req" : {
		"type_ids" : "23:24" // условный параметр, через : -  типы работ
	}
}
JSON ответ в случае успеха:
 
{
  "ok"    : true,
  "token" : true,
  "data"  : [
              {"ess" : "Заменить что-то",   "ess_id" : 23},
              {"ess" : "Поменять что-то",    "ess_id" : 12},
              {"ess" : "Вызвать сантехника" , "ess_id" : 13}
            ]
}

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

JSON запрос:
 
{
  "act" : "emp_list"
}
JSON ответ в случае успеха:
 
{
  "ok"    : true,
  "token" : true,
  "data"  : [
              {"emp" : "Предеин Вася",  "emp_id" : 23},     // для emp - префикс emp, Для resp префикс resp
              {"emp" : "Предеин Петя",  "emp_id" : 12},
              {"emp" : "Предеин Толя",  "emp_id" : 13}
            ]
}

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

JSON запрос:
 
{
  "act" : "resp_list"
}
JSON ответ в случае успеха:
 
{
  "ok"    : true,
  "token" : true,
  "data"  : [
              {"emp" : "Предеин Вася",  "resp_id" : 23},     // для emp - префикс emp, Для resp префикс resp
              {"emp" : "Предеин Петя",  "resp_id" : 12},
              {"emp" : "Предеин Толя",  "resp_id" : 13}
            ]
}

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

JSON запрос:
 
{
  "act" : "status_list"
}
JSON ответ в случае успеха:
 
{
    "ok": true,
    "token": true,
    "data": [{
        "status": "Зарегистрирована",
        "status_id": 1,
        "reasons" : 0,                      // кол-во доступных причин статуса (например если статус = "Отложена", то причин будет к пример 5)
                                            // сделано это для удобства обработки на фронте (не делать лишний запрос если причин по статусу = 0)
        "need_comment": 0                   // необходимо ли обязательно указывать коммент в момент перевода заявки в данный стутус (0 нет 1 да)
 
    }, {                                   
        "status": "Требуется отклик",
        "status_id": 65,
        "reasons" : 2,
        "need_comment": 1
    }]
}

Список статусов в виде дерева

JSON запрос:
 
{
  "act" : "status_tree_list"
}
JSON ответ в случае успеха:
 
{
    "ok": true,
    "token": true,
    "data": [{
        "status": "Открытые заявки",
        "status_id": "1:65:70:5:2:23:4"
    }, {
        "status": "...Новые",
        "status_id": "1:65:70:5"
    }, {
        "status": ".....|Зарегистрирована",
        "status_id": "1"
    }, {
        "status": ".....|Открыта повторно",
        "status_id": "5"
    }]
}

Список типов заявок

JSON запрос:
 
{
  "act" : "reqtype_list"
}
JSON ответ в случае успеха:
 
{
    "ok": true,
    "token": true,
    "data": [{
        "rtype_id": 1,
        "rtype": "Обычные"
    }, {
        "rtype_id": 2,
        "rtype": "Аварийные"
    }, {
        "rtype_id": 3,
        "rtype": "Платные"
    }]
}

Список причин статусов

JSON запрос:
 
{
  "act" : "status_reason_list",
  "req" : {
           "status_id" : 25
          }
}
JSON ответ в случае успеха:
 
{
    "ok": true,
    "token": true,
    "data": [{
        "reason_id": 7,
        "reason": "заявитель доволен"
    }, {
        "reason_id": 8,
        "reason": "невозможно проверить"
    }, {
        "reason_id": 9,
        "reason": "автоматически"
    }]
}

Для работы с заявками https://server.ru/request

Получить список заявок по параметрам (список сортированный от последней к первой)

JSON запрос:
 
{
  "act" : "list"
  "req" : {
            "start"      : 1,                   // с какой позиции начать показывать
            "count"      : 30,                  // сколько заявок показать
            "cnt_id"     : 123,                 // необязательно код юр лица
            "street"     : "Какая то улица ул", // необязательно улица/нас пункт
            "house_id"   : 123,                 // необязательно код дома
            "flat_id"    : 123,                 // необязательно код квартиры
            "type_id"    : 123,                 // необязательно код тип работ
            "type_ids"   : "123:124:125",       // необязательно коды типов работ через :
            "ess_id"     : 123,                 // необязательно код причины обращения
            "ess_ids"    : "123:1234:12345",    // необязательно коды причин обращений через :
            "emp_id"     : 123,                 // необязательно код исполнителя
            "resp_id"    : 123,                 // необязательно код ответственного
            "status_ids" : "1:2:3",             // необязательно код статуса
            "rtype_id"   : 1,                   // необязательно код типа заявки
            "rtype_ids"  : "1:2:3",             // необязательно коды типов заявок через :
            "request_id" : 886534,              // необязательно номер заявки
            "date_start" : "01.01.2017",        // необязательно дата начала (фильтруется по дате создания) в формате DD.MM.YYYY
            "date_end"   : "01.04.2017",        // необязательно дата окончания (фильтруется по дате создания) в формате DD.MM.YYYY
            "keywords"   : "бла-бла бла-бла"    // ключевые слова
            "custom_filter" : "my_in_work"      // фильтр, отменяющий все остальные, принимает my_new/my_in_work/my_on_hold и возвращает заявки, где данный пользователь является исполнителем или ответственным.
}
JSON ответ в случае успеха:
 
{
    "ok": true,
    "token": true,
    "data": [{
        "rn": 1,                                                                                            // порядковый номер выборки
        "request_id": 803075,                                                                               // номер заявки
        "note": "Выход сантехника для проведения работ на имуществе собственника, заменить, счетчик, ХВС.", // текст заявки
        "house": "Кемерово г, Инициативная ул, дом 100",                                                    // дом
        "flat": "6",                                                                                        // квартира
        "status": "Выполнена",                                                                              // статус
        "created_at": "01.02.2017 08:26",                                                                   // когда была создана в UTC пользователя
        "price": 3444,                                             // цена, если заявка платная, если нет, то null
        "appointed_str": "Завтра с 10:52",                             // строка, в которой хранится время прихода специалиста в формате сегодня|завтра|вчера|дата c hh:mm( до hh:mm)
        "deadline_str": 21,                                            // количество дней до дедлайна, может иметь отрицательное значение
        "emp": "Фурсов Андрей Борисович",                              // исполнитель
        "reason": null                                                 // причина статуса
    }, {
        "rn": 2,
        "request_id": 775786,
        "note": "Утечка на сетях, ХВС, в подвале",
        "house": "Кемерово г, Инициативная ул, дом 100",
        "flat": "2",
        "status": "Закрыта",
        "created_at": "06.01.2017 14:45",
        "price": 5553.99,
        "appointed_str": null, 
        "deadline_str": 2,
        "emp": null,   
        "reason": "действия не требуются"
    }, {
        "rn": 3,
        "request_id": 694934,
        "note": "Запах канализации, в подъезде№1",
        "house": "Кемерово г, Инициативная ул, дом 100",
        "flat": "5",
        "status": "Закрыта",
        "created_at": "19.10.2016 11:06",
        "price": null,
        "appointed_str": null, 
        "deadline_str": -2,
        "emp": "Башкирев Эдуард Олегович", 
        "reason": "невозможно проверить"
    }, {
        "rn": 4,
        "request_id": 678818,
        "note": "Утечка на сетях отопления",
        "house": "Кемерово г, Инициативная ул, дом 100",
        "flat": "10",
        "status": "Закрыта",
        "created_at": "04.10.2016 18:24",
        "price": null,
        "appointed_str": null, 
        "deadline_str": 22,
        "emp": "Башкирев Эдуард Олегович"
    }, {
        "rn": 5,
        "request_id": 639544,
        "note": "Запах канализации в под№1",
        "house": "Кемерово г, Инициативная ул, дом 100",
        "flat": "5",
        "status": "Закрыта",
        "created_at": "22.08.2016 14:32",
        "price": null,
        "appointed_str": null, 
        "deadline_str": -22,
        "emp": "Башкирев Эдуард Олегович", 
        "reason": null
    }, {
        "rn": 6,
        "request_id": 461115,
        "note": "Запах канализации, в подъезде №1, в квартире, из подвала",
        "house": "Кемерово г, Инициативная ул, дом 100",
        "flat": "5",
        "status": "Закрыта",
        "created_at": "11.11.2015 10:58",
        "price": null,
        "appointed_str": null, 
        "deadline_str": -2,
        "emp": "Башкирев Эдуард Олегович", 
        "reason": null
    }, {
        "rn": 7,
        "request_id": 384807,
        "note": "Нет горячей воды, не течет из крана",
        "house": "Кемерово г, Инициативная ул, дом 100",
        "flat": "8",
        "status": "Закрыта",
        "created_at": "12.08.2015 11:31",
        "price": null,
        "appointed_str": null, 
        "deadline_str": -2,
        "emp": "Башкирев Эдуард Олегович", 
        "reason": null
    }, {
        "rn": 8,
        "request_id": 304411,
        "note": "Запах канализации, в квартире",
        "house": "Кемерово г, Инициативная ул, дом 100",
        "flat": "6",
        "status": "Закрыта",
        "created_at": "10.03.2015 15:48",
        "price": null,
        "appointed_str": null, 
        "deadline_str": -2,
        "emp": "Башкирев Эдуард Олегович", 
        "reason": null
    }, {
        "rn": 9,
        "request_id": 291302,
        "note": "Запах канализации, в подъезде, из подвала",
        "house": "Кемерово г, Инициативная ул, дом 100",
        "flat": "2",
        "status": "Закрыта",
        "created_at": "13.02.2015 11:16",
        "price": null,
        "appointed_str": null, 
        "deadline_str": -2,
        "emp": "Башкирев Эдуард Олегович", 
        "reason": null
    }, {
        "rn": 10,
        "request_id": 272963,
        "note": "Незначительная утечка, ХВС в районе счетчика, перекрыли",
        "house": "Кемерово г, Инициативная ул, дом 100",
        "flat": "6",
        "status": "Закрыта",
        "created_at": "15.01.2015 08:14",
        "price": null,
        "appointed_str": null, 
        "deadline_str": -2,
        "emp": "Башкирев Эдуард Олегович", 
        "reason": null
    }, {
        "rn": 11,
        "request_id": 157553,
        "note": "Запах канализации в подъезде и квартире из подвала",
        "house": "Кемерово г, Инициативная ул, дом 100",
        "flat": "2",
        "status": "Закрыта",
        "created_at": "15.07.2014 14:11",
        "price": null,
        "appointed_str": null, 
        "deadline_str": -2,
        "emp": "Башкирев Эдуард Олегович", 
        "reason": null
    }, {
        "rn": 12,
        "request_id": 137216,
        "note": "Нет горячей воды (не течет из крана) с 10:00",
        "house": "Кемерово г, Инициативная ул, дом 100",
        "flat": "3",
        "status": "Закрыта",
        "created_at": "27.05.2014 11:54",
        "price": 500,
        "appointed_str": null, 
        "deadline_str": -2,
        "emp": "Башкирев Эдуард Олегович", 
        "reason": null
    }]
}

Детализация по заявке

JSON запрос:
 
{
  "act" : "detail",
  "req" : {
            "request_id" : 137216
          }
}
JSON ответ в случае успеха:
 
{
    "ok": true,
    "token": true,
    "data": {
        "request_id": 157553,                                          // номер заявки
        "rtype": "Плановая",                                           // тип заявки
        "flag_emergency": "Д",                                         // аварийная ли заявка (Д/Н)
        "note": "Запах канализации в подъезде и квартире из подвала",  // текст заявки
        "house": "Кемерово г, Инициативная ул, дом 100",               // дом
        "flat": "2",                                                   // квартира
        "status": "Закрыта",                                           // тек. статус
        "reason": "автоматически",                                     // причина статуса
        "created_at": "15.07.2014 14:11",                              // когда создана? в UTC пользователя DD.MM.YYYY hh24:mi
        "updated_at": "30.07.2014 01:00",                              // когда изменена? в UTC пользователя DD.MM.YYYY hh24:mi
        "floor": 1,                                                    // этаж
        "entr": "1",                                                   // подъезд / парадная
        "autophone": "3842",                                           // АОН
        "contphone": "9089592689",                                     // если житель пожелал оставить другой контактный телефон
        "email": null,                                                 // email жителя
        "type": "Сантехника",                                          // тип работ из справочника
        "ess": "Запах канализации",                                    // причина обращения из справочника
        "emp": "Золотухин Алексей Викторович",                         // исполнитель по заявке
        "resp": "Золотухин Алексей Викторович",                        // ответственный по заявке
        "created_by": "Стрижева Елизавета",                            // кто создал заявку
        "deadline_at": null,                                           // Срок выполнения заявки (DD.MM.YYYY)
        "deadline_str": -2,                                            // кол-во дней до дедлайна
        "emp_note": null,                                              // скрытый комментарий только для пользователей Д24 (операторы не видят)
        "appointed_at": null,                                          // когда придет исполнитель? в UTC пользователя DD.MM.YYYY hh24:mi  
        "emp_phone":  "9039435858",                                    // телефон(ы) исполнителя
        "resp_phone": "9039435858",                                    // телефон(ы) ответственного
        "status_id": 25,                                               // код статуса
        "reason_id": 9,                                                // код причины
        "type_id": 23,                                                 // код типа работ
        "ess_id": 1537,                                                // код причины обращения
        "emp_id": 4002,                                                // код исполнителя
        "resp_id": 4002,                                               // код ответственного
        "cnt_id": 10401,                                               // код юр лица
        "is_paid": "Д",                                                // флаг оплачено
        "price": 1000,                                                 // стоимость заявки
        "paid": 200                                                    // сколько оплачено в данный момент по заявке
 
    }
}

Лента событий по заявке

JSON запрос:
 
{
  "act" : "feed",
  "req" : {
            "request_id" : 964825,  // номер заявки
            "start"      : 1,       // с какой позиции начать
            "end"        : 2        // сколько взять
          }
}
JSON ответ в случае успеха:
 
{
    "ok":true,
    "token":true,
    "data": [
        {
        "created_at":"17.07.2017 18:58", // Дата создания
        "type":1,                        // Тип события 0 - комментарий, 1 - активность, 2 - файлы,
                                         // 3 - изображения с превью, 4 - запись разговора
        "note":"Смена исполнителя  ->> Башкирев Эдуард Олегович\r\n...", // текст события
        "created_by":"Журавлева Марина Сергеевна",                        // автор события
        "id": 12345,                      // Id события
        "flag_webhook": Д                 // "Статус" публикации события
        },
        {
        "created_at":"17.07.2017 18:03",
        "type":3,
        "note":"https://pultdoma.ru/front/uploads/img/17-07-2017/3196190_549_2_596c99ab73ae0.jpg",
        "created_by":"Пользователь личного кабинета  ",
        "id": 123456,                      // Id события
        "flag_webhook": Н                 // "Статус" публикации события (Д/Н)
        }
    ]
}

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

JSON запрос:
 
{
  "act" : "activity_list",
  "req" : {
             "start" : 1,              // с какой позиции начать
             "count" : 30,             // сколько взять
             "request_id" : 157553     // номер заявки
          }
}
JSON ответ в случае успеха:
 
{
    "ok": true,
    "token": true,
    "data": [{
        "note": "Статус сменился с Зарегистрирована на Принята в работу; <br>",  // текст активности
        "created_at": "12.02.2017 04:11",                                        // когда произошло событие
        "created_by": "Усачева Наталья Леонидовна",                              // инициатор события
        "rn": 1                                                                  // номер выборки
    }, {
        "note": "Аварийный сантехник принял заявку в работу",
        "created_at": "12.02.2017 04:11",
        "created_by": "Усачева Наталья Леонидовна",
        "rn": 2
    }]
}

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

JSON запрос:
 
{
  "act" : "comment_list",
  "req" : {
             "start" : 1,              // с какой позиции начать
             "count" : 30,             // сколько взять
             "request_id" : 157553     // номер заявки
          }
}
JSON ответ в случае успеха:
 
{
    "ok": true,
    "token": true,
    "data": [{
        "mtype": 1,                                                                                                  // 1 - файл, 0 - коммент
        "note": "https://192.168.8.50/pultdoma.dev/frontend/web/uploads/img/15-03-2017/17_158_4_58c939ddae5e9.jpg",  // url файла, или текст коммента
        "created_by": "Пользователь личного кабинета  ",
        "created_at": "15.03.2017 19:55",
        "rn": 1
    }, {
        "mtype": 0,
        "note": "от оператора",
        "created_by": "Маслова Наталья",
        "created_at": "08.03.2017 19:46",
        "rn": 2
    }, {
        "mtype": 0,
        "note": "от коллеги",
        "created_by": "Басардинский Сергей Владимирович",
        "created_at": "08.03.2017 19:46",
        "rn": 3
    }, {
        "mtype": 0,
        "note": "от жителя",
        "created_by": "Пользователь личного кабинета  ",
        "created_at": "08.03.2017 19:46",
        "rn": 4
    }, {
        "mtype": 1,
        "note": "https://www.dropbox.com/s/kfvn1t7himchrc4/2017-01-06_16-27-25_%D0%9C%D0%BE%D1%81%D0%BA.%2073%20%D0%BA.4%20%D0%BA%D0%B2.46%20%282%29.pdf?dl=0",
        "created_by": "Дзюба Ольга Эдуардовна",
        "created_at": "06.01.2017 18:21",
        "rn": 5
    }]
}

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

// запрос
{
  "act" : "create",
  "data" : {
    "house_id" : 34021,          // обязательный параметр
    "ess_id" : 1533,             // обязательный параметр
    "type_id" : 23,              // обязательный параметр 
    "note" : "Тест ppostman",    // обязательный параметр
    "contphone" : "9125212573",
    "flat" : "123",
    "entr" : "1",
    "floor" : "9",
    "email" : "predeinay@gmail.com"
  }
}
// ответ
{
    "ok": true,
    "token": true,
    "data": {
        "request_id": 1294515
    }
}

Изменение данных в заявке, написание комментария

JSON запрос:
 
{
  "act"     : "update",                                   // хотим что то изменить с заявкой
  "req"     : {
                 "request_id" : 123123123                 // код заявки если необходимо провести действие с указанной заявкой (изменить,добавить коммент и т.п.)
              },                                         
  "data"    : {                                           // если требуется обновить какие то данные в заявке то необходим объект "data"
                "status_id"   : 2,                        // перечень возможных новых значений для update таблицы заявок
                "reason_id"   : 9,                        // обратить внимание, сюда пихать только те значения, которые действительно изменил пользователь
                "emp_id"      : 123,                      // а не всю модель заявки
                "resp_id"     : 123,
                "deadline_at" : "01.01.2017",
                "tag_ids"     : "1,2,3,4,5",              // Ид тэгов для сохранения через запятую, чтобы удалить все тэги необходимо послать "0"
                "emp_note"    : "типа скрытый от операторов текст",
                "comment"     : "Типа коммент от исполнителя",    // (необязательно) если пользователь хочет добавить комментарий
                "image_url"   : "https://ds24.ru/fs/static/2017/08/14/some_test.jpg", // Ссылка на изображение, обязательно в связке с image_name
                "image_name"  : "some test",                                          // Название изображения
                "appointed_at": "next_week",                                           // Дата, когда придёт исполнитель, принимает "today" / "tomorrow" / "next_week" / дату в формате "ДД.ММ.ГГГГ"
                "local_at"    : "12.12.2020 12:12",                                     // Дата, когда исполнитель локализовал аварию по заявке "ДД.ММ.ГГГГ ЧЧ:МИ"
               "material_price" : 333                                                   // Стоимость материалов по заявке 
               }
}
JSON ответ в случае успеха:
 
{
  "ok":true,
  "token":true,
  "data": {
            "affected_rows":3  // кол-во затронутых записей (всего 3: сам update в заявку, создание коммента, загрукзка изображения)
          }
}

Получение списка доступных тэгов

JSON запрос:
 
{
  "act" : "tag_list",
  "req" : {
            "cnt_id" : 1,        // cnt_id - условный параметр, можно опустить указывание юр лица тогда покажутся все тэги по доступным юр лицам
            "request_id" : 1234  // request_id - условный параметр, если его передать то в is_set Y/N будет показываться Y для тех тэгов которые установлены в указанной заявке 
          }
}
JSON ответ в случае успеха:
 
{
    "ok": true,
    "token": true,
    "data": [
        {
            "tag_id": 801,
            "title": "Yit PLUS [Ромажка]",
            "color": "#C28CC2",
            "is_set": "N"
        },
        {
            "tag_id": 11,
            "title": "администрация",
            "color": "#F5F6C3",
            "is_set": "N"
        },
        {
            "tag_id": 13,
            "title": "весенне-летний период",
            "color": "#ACF2CF",
            "is_set": "N"
        },
        {
            "tag_id": 8,
            "title": "ГЖИ",
            "color": "#E9DFFA",
            "is_set": "N"
        },
        {
            "tag_id": 16,
            "title": "закупка материалов",
            "color": "#FADCDC",
            "is_set": "N"
        },
        {
            "tag_id": 3,
            "title": "запланировано",
            "color": "#FAB1D8",
            "is_set": "N"
        },
        {
            "tag_id": 522,
            "title": "метка [Ромажка]",
            "color": "#8BC4F7",
            "is_set": "Y"
        },
        {
            "tag_id": 17,
            "title": "нет собственника",
            "color": "#F1F2E1",
            "is_set": "N"
        },
        {
            "tag_id": 2,
            "title": "ожидает оплаты",
            "color": "#ADFFB2",
            "is_set": "N"
        },
        {
            "tag_id": 402,
            "title": "оплачена",
            "color": "#55E0A2",
            "is_set": "N"
        },
        {
            "tag_id": 14,
            "title": "осенне-зимний период",
            "color": "#F5F6F9",
            "is_set": "N"
        },
        {
            "tag_id": 12,
            "title": "письменный ответ",
            "color": "#E0FFD6",
            "is_set": "N"
        },
        {
            "tag_id": 10,
            "title": "прокуратура",
            "color": "#F5F6DE",
            "is_set": "N"
        },
        {
            "tag_id": 361,
            "title": "простая [Ромажка]",
            "color": "#D43939",
            "is_set": "N"
        },
        {
            "tag_id": 821,
            "title": "рабочее время [Ромажка]",
            "color": "#EBEBEB",
            "is_set": "Y"
        },
        {
            "tag_id": 9,
            "title": "роспотребнадзор",
            "color": "#CEC9FF",
            "is_set": "N"
        },
        {
            "tag_id": 321,
            "title": "сайт",
            "color": "#FFA366",
            "is_set": "N"
        },
        {
            "tag_id": 15,
            "title": "согласовать со старшим по дому",
            "color": "#F5F6EF",
            "is_set": "N"
        },
        {
            "tag_id": 5,
            "title": "требуется вышка",
            "color": "#DEBADE",
            "is_set": "N"
        },
        {
            "tag_id": 6,
            "title": "требуется сварка",
            "color": "#D9F8FF",
            "is_set": "N"
        },
        {
            "tag_id": 4,
            "title": "требуется спецтехника",
            "color": "#78DFE6",
            "is_set": "N"
        },
        {
            "tag_id": 61,
            "title": "требуется текущий ремонт",
            "color": "#CF765D",
            "is_set": "N"
        },
        {
            "tag_id": 7,
            "title": "утвердить на общем собрании",
            "color": "#F5F6FE",
            "is_set": "N"
        },
        {
            "tag_id": 841,
            "title": "Чат",
            "color": "#FF00FF",
            "is_set": "N"
        },
        {
            "tag_id": 523,
            "title": "эээ [Ромажка]",
            "color": "#65EBB6",
            "is_set": "N"
        },
        {
            "tag_id": 781,
            "title": "ээээээ [Ромажка]",
            "color": "#0088FF",
            "is_set": "N"
        }
    ]
}

Для работы с оповещениями https://server.ru/oi

Создание оповещение

{
	"act": "create",
	"data": {
		"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": "плановые работы на подстанции 292 отключение 2 секции шин.(Васильев)"
	}
}
resp
{
    "ok": true,
    "token": true,
    "data": {
        "affected_rows": 1,
        "info_id": 138864
    }
}

Возможно дома находятся в разных УК для каждой УК создастся свое оповещение, affected_rows будет > 1 а info_id - показывается только последнего созданного

Тип оповещения:

  • Утечка У
  • Опрессовка Р
  • Отключение услуг О
  • Подвоз воды В
  • Подпоры П
  • Прочее Д
  • Акция А

Услуги:

  • ХВС Х
  • ГВС Г
  • Канализация К
  • Отопление О
  • Электричество Э
  • Газ З
  • Лифт Л

Зона отвественности:

  • Управляющая компания У
  • Ресурсоснабжающая организация Р
  • Неизвестно Н

Причина (одиночный выбор):

  • Авария А
  • Плановые работы П
  • Задолженность за оплату З
  • Неизвестно Н

Объект

  • Несколько домов М
  • Весь дом Д
  • Подъезд П
  • Стояк С
  • Несколько квартир К
  • Неизвестно Н

Получить оповещения по параметрам (список сортирован от последней к первой).

JSON запрос:
 
{
"act"   : "list",
"req"   :{
        "custom_filter": "active_alerts", // Необязательно. Отменяет все прочие фильтры.
        "start"  : 1,        // с какой позиции начать показывать             
        "count"  : 5,       //  сколько заявок показать
        "cnt_id" : 12265,  //   необязательно код юр лица
        "status" : "А",   //    необязательно статус оповещения
        "type"   : "О:Д",//     необязательно тип оповещения
        "service": "Х:Г"//      необязательно список услуг
        }
}
JSON ответ в случае успеха:
 
{
  "ok":true,
  "token":true,
  "data": [{
            "info_id":110670,               // id оповещения
            "type":"О",                     // тип оповещения
            "type_str":"Отключение ",       // тип оповещения полностью
            "start_at":"17.07.2017 16:53",  // когда начало? в UTC пользователя DD.MM.YYYY hh24:mi
            "end_at":null,                  // когда конец? в UTC пользователя DD.MM.YYYY hh24:mi
            "note":"Закрыли ГВС на дом, порыв лежака под полом в кв.9", // текст оповещения
            "status":"Активно",             // статус оповещения полностью
            "service_list":"Г"              // код услуги к которой относится оповещение
            "service_list_str":"ГВС"        // услуга к которой относится оповещение
            "object_list" : [
               {"street":"Куртамышская ул","houses": "1,2,3,4,5"},
               {"street":"9 мая","houses":"55,77,88А"}
            ]
    }, {
            "info_id":110663,
            "type":"О", 
            "type_str":"Отключение ",
            "start_at":"17.07.2017 15:29",
            "end_at":null,
            "note":"Отключена Г.В до 18.07.17г , сдача т/узлов.",
            "status":"Активно",
            "service_list":"Г",
            "service_list_str":"ГВС"
    }, {
            "info_id":110635,
            "type":"Д", 
            "type_str":"Прочее ",
            "start_at":"17.07.2017 13:09",
            "end_at":null,
            "note":"№297 от 17.07.17г. АО КТСК сообщает, что повреждение на т/трассе по адр : ИНИЦИАТИВНАЯ 37 частично устранили 17.07.17 г в 17-00, задвижку Т-2 в ТК 9/4 открыли. Потребителям необходимо открыть входную задвижку  Т-2 в т/узлах жилых домов по адресу ИНИЦИАТИВНАЯ №  33, 35, 37. ПОПОВА 1.  Т-1 закрыть с  момента получения  телефонограммы , ГВС подать по Т-2. Гаков,Гусейнова.",
            "status":"Активно",
            "service_list":null,
            "service_list_str":null
    }, {
            "info_id":110620,
            "type":"О", 
            "type_str":"Отключение ",
            "start_at":"17.07.2017 16:27",
            "end_at":null,
            "note":"Кв № 2 и №18",
            "status":"Активно",
            "service_list":"Э",
            "service_list_str":"Электричество"
    }]
 
}

Детализация по оповещению.

JSON запрос:
 
{
"act"   : "detail",
"req"   :{
        "info_id"  : 66776,        // id оповещения         
        }
}
JSON ответ в случае успеха:
 
{
    "ok":true,
    "token":true,
    "data":
    {
        "info_id":66776,                    // id оповещения
        "type":"О",                         // тип оповещения
        "type_str":"Отключение ",           // тип оповещения полностью
        "start_at":"22.01.2016 10:40",      // когда начало? в UTC пользователя DD.MM.YYYY hh24:mi
        "end_at":"22.01.2016 18:30",        // когда конец? в UTC пользователя DD.MM.YYYY hh24:mi
        "created_at":"22.01.2016 18:30",    // когда создана? в UTC пользователя DD.MM.YYYY hh24:mi
        "note":"плановые работы на подстанции 292 отключение 2 секции шин.(Васильев)",  // текст оповещения
        "status":"З",                       // статус оповещения
        "status_str":"Закрыто",             // статус оповещения полностью
        "service_list":"Э",                 // код услуги к которой относится оповещение
        "service_list_str":"Электричество", // услуга к которой относится оповещение
        "reason":"П",                       // код причины
        "reason_str":"Плановые работы",     // причина отключения полностью
        "resp":"Р",                         // код ответственного
        "resp_str":"РСО",                   // ответственный, если РСО, тогда svc_id и svc не null
        "svc_id":6,                         // id РСО
        "svc":"Электросети"                 // РСО полностью
    }
}

Лента событий оповещения

JSON запрос:
 
{
  "act" : "feed",
  "req" : {
            "info_id" : 66776,      // id оповещения
            "start"      : 1,       // с какой позиции начать
            "count"      : 2        // сколько взять
          }
}
{
    "ok":true,
    "token":true,
    "data": [
        {
        "created_at":"23.01.2016 11:28", // Дата создания
        "type":1,                        // Тип события 0 - комментарий, 1 - активность
        "note":"Статус оповещения изменился с \"Плановое\" на \"Активное\".\r\n", // текст события
        "created_by":"Лукашевич Светлана"                        // автор события
        },
        {
        "created_at":"30.01.2016 01:00",
        "type":1,
        "note":"Статус оповещения изменился с \"Активное\" на \"Архивное\".\r\n",
        "created_by":"Системный пользователь"
        }
    ]
}

Список домов по оповещению

JSON запрос:
 
{
  "act"     : "houses",                                 
  "req" :{
        "info_id"  : 66776,        // id оповещения         
        }
}
{
    "ok":true,
    "token":true,
    "data": [{
            "street":"Гоголя ул", // улица с домами к которой относится оповещение
            "houses":"124, 126"   // список домов
            },{
            "street":"К.Маркса ул",
            "houses":"145, 147"
            }]
}

Изменение данных в оповещении, написание комментария.

JSON запрос:
 
{
  "act"     : "update",                                 
  "data"    : { // если требуется обновить какие то данные в заявке то необходим объект "data"
                "info_id"     : 110900                             // id оповещения
                "status"      : "А",                               // (необязательно) меняем статус заявки
                "comment"     : "Типа коммент от исполнителя",     // (необязательно) если пользователь хочет добавить комментарий
              }
}
JSON ответ в случае успеха:
 
{
  "ok":true,
  "token":true,
  "data": {
            "affected_rows": 1  // кол-во затронутых записей, в том числе и добавленный комментарий
          }
}

Получить список активных показаний по счётчикам для текущего пользователя.

JSON запрос:
 
{
    "act"   : "list",
    "req"   : {
        "start"   : 1,              // с какой позиции начать показывать             
        "count"   : 2,              // сколько показать
        "cnt_id"  : 10983,          // необязательно код юр лица
        "house_id": 45123,          // необязательно код дома
        "flat"    : "1",            // необязательно нормер квартиры
        "term_ids": "1:5"           // необязательно тип счетчиков через разделитель ":"
    }
}
JSON ответ в случае успеха:
 
{
  "ok":true,
  "token":true,
  "data": [{
            "description":"ГВС",                            // Описание показания (назначение счётчика)
            "house":"Курган г, Агрономическая ул, дом 3",   // Адрес, где установлен счётчик
            "flat":"144",                                   // Квартира
            "value":null,                                   // Текущее показание
            "date":null,                                    // Дата текущего показания
            "prev_value":0,                                 // Последнее показание
            "prev_date":"01.01.2000 00:00",                 // Дата последнего показания
            "meter_id":1565386,                             // Идентификатор показания
            "meter_id_ext":"144,1",                         // "Внешний" идентификатор показания
            "term": "Холодная вода"                         // Тип показания
          },{
            "description":"ХВС",
            "house":"Курган г, Агрономическая ул, дом 3",
            "flat":"144",
            "value":null,
            "date":null,
            "prev_value":0,
            "prev_date":"01.01.2000 00:00",
            "meter_id":1565387,
            "meter_id_ext":"144",
            "term": "Холодная вода"
          }]
}

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

JSON запрос:
 
{
    "act"   : "flat_list",
    "req"   : {
        "house_id": 45123,          // обязательно код дома
    }
}
JSON ответ в случае успеха:
 
{
  "ok":true,
  "token":true,
  "data": [{"flat":"1"},{"flat":"2"},{"flat":"3"},{"flat":"4"},{"flat":"5"},{"flat":"6"},{"flat":"6Н"},{"flat":"7"},{"flat":"7Н"}, ...]
}

Получить список типов счетчиков для дальнейшей фильтрации.

JSON запрос:
 
{
    "act"   : "term_list"
}
JSON ответ в случае успеха:
 
{
  "ok":true,
  "token":true,
  "data": [{
            "term_id":6,
            "term":"Газ"
           },{
            "term_id":5,
            "term":"Горячая вода"
           },{
            "term_id":7,
            "term":"Отопление"
           },{
            "term_id":1,
            "term":"Холодная вода"
           },{
            "term_id":3,
            "term":"Электроэнергия"
          }]
}

Сохранение показаний.

// Запрос
{
	"act": "update",
	"data": {
		"meter_id": 3499474,
		"value": "100",
		"image_url" : "https://ds24.ru/fs/static/2017/08/14/some_test.jpg",
		"image_name" : "asdasd"
	}
}
// Ответ
{
    "ok": true,
    "token": true,
    "data": {
        "affected_rows": 1
    }
}

Для работы https://server.ru/contact

Получить список контактов с фильтрами.

JSON запрос:
 
{
    "act"   : "list",
    "req"   : {
        "start"   : 1,              // с какой позиции начать показывать             
        "count"   : 5,              //  сколько контактов показать
        "cnt_id"  : 12265,          //   необязательно код юр лица
        "phone"   : "9128333604",   //    необязательно телефон
        "house_id": 23,             //     необязательно идентификатор дома
        "flat_id": 232,             //     необязательно идентификатор квартиры
    }
}
JSON ответ в случае успеха:
 
{
  "ok":true,
  "token":true,
  "data": [{
            "phone":"9234831313",                           // Телефон
            "house":"Кемерово г, Институтская ул, дом 16",  // Полный адрес
            "flat":"62"                                     // Номер квартиры или название офиса
          },{
            "phone":"9045779284",
            "house":"Кемерово г, Стройгородок ул, дом 4",
            "flat":"23"
          },{
            "phone":"3842613939",
            "house":"Кемерово г, Инициативная ул, дом 98А",
            "flat":"22"
          },{
            "phone":"9045759001",
            "house":"Кемерово г, Инициативная ул, дом 98А",
            "flat":"22"
          },{
            "phone":"3842751766",
            "house":"Кемерово г, 40 лет Октября ул, дом 29",
            "flat":"18"
          }]
}

Для работы с профилем https://server.ru/profile

Получение данных о профиле

JSON запрос:
 
{
  "act"     : "detail"    
}
JSON ответ в случае успеха:
 
{
    "ok": true,
    "token": true,
    "data": {
        "username": "Предеин Анатолий",
        "can_close_request": true,
        "can_access_meters": true,
        "can_access_contacts": true,
        "account_name": "Не активен",
        "phone": "9898004862",
        "emp_id": 22055,
        "not_read_push_count": 10,
        "can_comment_to_ext_system": 0
    }
}

Измнение данных о профиле

{
	"act": "update",
	"data": {
		"fcm_token": "NEWTOKEN123",     // Если вдруг пуш секрет изменился на девайсе или был получен позже
		"push_config": "З_Ф:З_Н:З_К",   // какие пуши юзеру необходимы
		"start_app" : "im started!!"    // выполняется каждый раз 1 раз при запуске АПП чтобы вести статистику использования апп
	}
}
Json в случае успеха
 
{
    "ok": true,
    "token": true,
    "data": {
        "affected_rows": 3
    }
}

Получения списка включенных уведомлений пуш для профиля

// Запрос
{
	"act" : "settings_push"
}
// Ответ
{
    "ok": true,
    "token": true,
    "data": [
        {
            "descr": "Назначен исп/отв в заявке",
            "value": "З_Н",
            "is_set": "1"
        },
        {
            "descr": "Добавлен комментарий к заявке",
            "value": "З_К",
            "is_set": "1"
        },
        {
            "descr": "Добавлен файл к заявке",
            "value": "З_Ф",
            "is_set": "1"
        },
        {
            "descr": "Заявка открыта повторно",
            "value": "З_СО",
            "is_set": "1"
        },
        {
            "descr": "Заявка принята в работу",
            "value": "З_СП",
            "is_set": "1"
        }
    ]
}
// Отправка файла на сервер FS API. 
 
// Загрузка фото 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"
}

Описание API мобильного приложения Д24 v2_v2

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

Get запрос: server/v2/request/?
Параметры
 
    "start"      : 1,                   // с какой позиции начать показывать
    "count"      : 30,                  // сколько заявок показать
    "cnt_id"     : 123,                 // необязательно код юр лица
    "street"     : "Какая то улица ул", // необязательно улица/нас пункт
    "house_id"   : 123,                 // необязательно код дома
    "flat_id"    : 123,                 // необязательно код квартиры
    "type_id"    : 123,                 // необязательно код тип работ
    "type_ids"   : "123:124:125",       // необязательно коды типов работ через :
    "ess_id"     : 123,                 // необязательно код причины обращения
    "ess_ids"    : "123:1234:12345",    // необязательно коды причин обращений через :
    "emp_id"     : 123,                 // необязательно код исполнителя
    "resp_id"    : 123,                 // необязательно код ответственного
    "status_ids" : "1:2:3",             // необязательно код статуса
    "rtype_id"   : 1,                   // необязательно код типа заявки
    "rtype_ids"  : "1:2:3",             // необязательно коды типов заявок через :
    "request_id" : 886534,              // необязательно номер заявки
    "date_start" : "01.01.2017",        // необязательно дата начала (фильтруется по дате создания) в формате DD.MM.YYYY
    "date_end"   : "01.04.2017",        // необязательно дата окончания (фильтруется по дате создания) в формате DD.MM.YYYY
    "keywords"   : "бла-бла бла-бла"    // ключевые слова
    "custom_filter" : "my_in_work"      // фильтр, принимает new/in_work/on_hold/deadline/finishedможет быть передано несколько через :
    "is_only_my" : 1                    // фильтр определяющий необходимо ли показывать все заявки или только где сотрудник ответственный/исполнитель  (0/1 все/мои)
    "custom_order" : "EXEC_TIME"        //тип сортировки заявок (EXEC_TIME/CREATED_TIME по сроку выполнения/дате создания) EXEC_TIME по умолчанию если не указано
}
JSON ответ в случае успеха:
 
 [{
        "rn": 1,                                                                                            // порядковый номер выборки
        "request_id": 803075,                                                                               // номер заявки
        "flag_emergency": "Д",                                                                              // аварийная ли заявка? (Д/Н)
        "note": "Выход сантехника для проведения работ на имуществе собственника, заменить, счетчик, ХВС.", // текст заявки
        "house": "Кемерово г, Инициативная ул, дом 100",                                                    // дом
        "flat": "6",                                                                                        // квартира
        "status": "Выполнена",                                                                              // статус
        "created_at": "01.02.2017 08:26",                                                                   // когда была создана в UTC пользователя
        "price": 3444,                                             // цена, если заявка платная, если нет, то null
        "appointed_str": "Завтра с 10:52",                             // строка, в которой хранится время прихода специалиста в формате сегодня|завтра|вчера|дата c hh:mm( до hh:mm)
        "deadline_str": 21,                                            // количество дней до дедлайна, может иметь отрицательное значение
        "emp": "Фурсов Андрей Борисович",                              // исполнитель
        "reason": null                                                 // причина статуса
    }, {
        "rn": 2,
        "request_id": 775786,
        "flag_emergency": "Д",  
        "note": "Утечка на сетях, ХВС, в подвале",
        "house": "Кемерово г, Инициативная ул, дом 100",
        "flat": "2",
        "status": "Закрыта",
        "created_at": "06.01.2017 14:45",
        "price": 5553.99,
        "material_price": 1,
        "appointed_str": null, 
        "deadline_str": 2,
        "emp": null,   
        "reason": "действия не требуются"
    }, {
        "rn": 3,
        "request_id": 694934,
        "flag_emergency": "Д",  
        "note": "Запах канализации, в подъезде№1",
        "house": "Кемерово г, Инициативная ул, дом 100",
        "flat": "5",
        "status": "Закрыта",
        "created_at": "19.10.2016 11:06",
        "price": null,
        "material_price": 2,
        "appointed_str": null, 
        "deadline_str": -2,
        "emp": "Башкирев Эдуард Олегович", 
        "reason": "невозможно проверить"
    }, {
        "rn": 4,
        "request_id": 678818,
        "flag_emergency": "Д",  
        "note": "Утечка на сетях отопления",
        "house": "Кемерово г, Инициативная ул, дом 100",
        "flat": "10",
        "status": "Закрыта",
        "created_at": "04.10.2016 18:24",
        "price": null,
        "material_price": 3,
        "appointed_str": null, 
        "deadline_str": 22,
        "emp": "Башкирев Эдуард Олегович"
    }, {
        "rn": 5,
        "request_id": 639544,
        "flag_emergency": "Д",  
        "note": "Запах канализации в под№1",
        "house": "Кемерово г, Инициативная ул, дом 100",
        "flat": "5",
        "status": "Закрыта",
        "created_at": "22.08.2016 14:32",
        "price": null,
        "material_price": 4,
        "appointed_str": null, 
        "deadline_str": -22,
        "emp": "Башкирев Эдуард Олегович", 
        "reason": null
    }, {
        "rn": 6,
        "request_id": 461115,
        "flag_emergency": "Д",  
        "note": "Запах канализации, в подъезде №1, в квартире, из подвала",
        "house": "Кемерово г, Инициативная ул, дом 100",
        "flat": "5",
        "status": "Закрыта",
        "created_at": "11.11.2015 10:58",
        "price": null,
        "material_price": 5,
        "appointed_str": null, 
        "deadline_str": -2,
        "emp": "Башкирев Эдуард Олегович", 
        "reason": null
    }, {
        "rn": 7,
        "request_id": 384807,
        "flag_emergency": "Д",  
        "note": "Нет горячей воды, не течет из крана",
        "house": "Кемерово г, Инициативная ул, дом 100",
        "flat": "8",
        "status": "Закрыта",
        "created_at": "12.08.2015 11:31",
        "price": null,
        "material_price": 6,
        "appointed_str": null, 
        "deadline_str": -2,
        "emp": "Башкирев Эдуард Олегович", 
        "reason": null
    }, {
        "rn": 8,
        "request_id": 304411,
        "flag_emergency": "Д",  
        "note": "Запах канализации, в квартире",
        "house": "Кемерово г, Инициативная ул, дом 100",
        "flat": "6",
        "status": "Закрыта",
        "created_at": "10.03.2015 15:48",
        "price": null,
        "material_price": 7,
        "appointed_str": null, 
        "deadline_str": -2,
        "emp": "Башкирев Эдуард Олегович", 
        "reason": null
    }, {
        "rn": 9,
        "request_id": 291302,
        "flag_emergency": "Д",  
        "note": "Запах канализации, в подъезде, из подвала",
        "house": "Кемерово г, Инициативная ул, дом 100",
        "flat": "2",
        "status": "Закрыта",
        "created_at": "13.02.2015 11:16",
        "price": null,
        "material_price": 8,
        "appointed_str": null, 
        "deadline_str": -2,
        "emp": "Башкирев Эдуард Олегович", 
        "reason": null
    }, {
        "rn": 10,
        "request_id": 272963,
        "flag_emergency": "Д",  
        "note": "Незначительная утечка, ХВС в районе счетчика, перекрыли",
        "house": "Кемерово г, Инициативная ул, дом 100",
        "flat": "6",
        "status": "Закрыта",
        "created_at": "15.01.2015 08:14",
        "price": null,
        "material_price": 9,
        "appointed_str": null, 
        "deadline_str": -2,
        "emp": "Башкирев Эдуард Олегович", 
        "reason": null
    }, {
        "rn": 11,
        "request_id": 157553,
        "flag_emergency": "Д",  
        "note": "Запах канализации в подъезде и квартире из подвала",
        "house": "Кемерово г, Инициативная ул, дом 100",
        "flat": "2",
        "status": "Закрыта",
        "created_at": "15.07.2014 14:11",
        "price": null,
        "material_price": 10,
        "appointed_str": null, 
        "deadline_str": -2,
        "emp": "Башкирев Эдуард Олегович", 
        "reason": null
    }, {
        "rn": 12,
        "request_id": 137216,
        "flag_emergency": "Д",  
        "note": "Нет горячей воды (не течет из крана) с 10:00",
        "house": "Кемерово г, Инициативная ул, дом 100",
        "flat": "3",
        "status": "Закрыта",
        "created_at": "27.05.2014 11:54",
        "price": 500,
        "material_price": 666,
        "appointed_str": null, 
        "deadline_str": -2,
        "emp": "Башкирев Эдуард Олегович", 
        "reason": null
    }]

Получить детализацию по заявке

Get запрос: server/v2/request/:request_id
 
JSON ответ в случае успеха:
{
        "request_id": 157553,                                          // номер заявки
        "rtype": "Плановая",                                           // тип заявки
        "flag_emergency": "Д",                                         // аварийная ли заявка (Д/Н)
        "note": "Запах канализации в подъезде и квартире из подвала",  // текст заявки
        "house": "Кемерово г, Инициативная ул, дом 100",               // дом
        "flat": "2",                                                   // квартира
        "status": "Закрыта",                                           // тек. статус
        "reason": "автоматически",                                     // причина статуса
        "created_at": "15.07.2014 14:11",                              // когда создана? в UTC пользователя DD.MM.YYYY hh24:mi
        "updated_at": "30.07.2014 01:00",                              // когда изменена? в UTC пользователя DD.MM.YYYY hh24:mi
        "floor": 1,                                                    // этаж
        "entr": "1",                                                   // подъезд / парадная
        "autophone": "3842",                                           // АОН
        "contphone": "9089592689",                                     // если житель пожелал оставить другой контактный телефон
        "email": null,                                                 // email жителя
        "type": "Сантехника",                                          // тип работ из справочника
        "ess": "Запах канализации",                                    // причина обращения из справочника
        "emp": "Золотухин Алексей Викторович",                         // исполнитель по заявке
        "resp": "Золотухин Алексей Викторович",                        // ответственный по заявке
        "created_by": "Стрижева Елизавета",                            // кто создал заявку
        "deadline_at": null,                                           // Срок выполнения заявки (DD.MM.YYYY)
        "deadline_str": -2,                                            // кол-во дней до дедлайна
        "emp_note": null,                                              // скрытый комментарий только для пользователей Д24 (операторы не видят)
        "appointed_at": null,                                          // когда придет исполнитель? в UTC пользователя DD.MM.YYYY hh24:mi  
        "emp_phone":  "9039435858",                                    // телефон(ы) исполнителя
        "resp_phone": "9039435858",                                    // телефон(ы) ответственного
        "status_id": 25,                                               // код статуса
        "reason_id": 9,                                                // код причины
        "type_id": 23,                                                 // код типа работ
        "ess_id": 1537,                                                // код причины обращения
        "emp_id": 4002,                                                // код исполнителя
        "resp_id": 4002,                                               // код ответственного
        "cnt_id": 10401,                                               // код юр лица
        "is_paid": "Д",                                                // флаг оплачено
        "price": 1000,                                                 // стоимость заявки
        "paid": 200,                                                   // сколько оплачено в данный момент по заявке
        "material_price" : 666,                                        // стоимость материалов по заявке
        "appointed_str": null,                                         // желаемое время прихода специалиста
        "is_local_need": "Н",                                          // нужна ли локализация аварии
        "local_at": null,                                              // время локализации                     
        "what_was_done": null                                          // что было сделано  
        "cnt_callback_phone" : '3452914455'                            // телефон для обращения в кц в 10 значном формате 
}

Получить количество заявок не принятых в работу

GET server/v2/request/custom/new

JSON ответ в случае успеха:

{
    "request_count": 0,  //количество заявок не принятых в работу
    "request_emerg_count": 0 //из выше указанных количество аварийных заявок не принятых в работу
}

Принять не принятые заявки в работу

GET server/v2/request/custom/new/apply

JSON ответ в случае успеха:

{
    "request_count": 0   //количество заявок принятых в работу
}

Отказ пользователем от принятия в работу заявки

POST server/v2/request/:request_id/refuse
JSON запрос:
{
        "refuse_id": "2"  //код причины отказа от заявки (см server/v2/ref/request_refuse_reason_list)
}
 
JSON ответ в случае успеха:
{
    "request_id": 1288163  //код заявки не принятой в работу
}

Возврат в заявку причины обращения предшествующего гарантийной

GET server/v2/request/:request_id/flashback
 
JSON ответ в случае успеха:
{
    "request_id": 1288163  //код измененной заявки (в случае возникновения ошибки вернет 0. возможные ошибки - нет доступа к заявке/заявка не является в данный момент гарантийной)
}

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

POST server/v2/request/:request_id/tocurrentrepair
 
JSON ответ в случае успеха:
 
{
    "request_count": 0   //количество заявок переведенных на участов
}

Публикация комментария/фотографии для жителя

GET server/v2/request/:request_id/comment_webhook?
Параметр
 
    "id"      : 1234,                   // код комментария или фотографии
    "mtype"   : 0,                      // тип объекта (0 - комментарий, 1- фото)  
    "webhook_flag"   : Д,               // "статус" публикации (Д - опубликовать, Н - снять с публикации)   
 
JSON ответ в случае успеха:
{
    "ok": true,
    "token": true,
    "data": {
        "affected_rows": 1     //0 в случае если запись не изменилась
    }
}

Справочник причин отказа от заявки

GET server/v2/ref/request_refuse_reason_list?
Параметр
 
    "is_emergency"      : 1,                   // 0/1 и если 0/null/undefined. список отказов в зависимости от того аварийная ли заявка
 
JSON ответ в случае успеха:
[{
                  			"reject_reason": "Не мой профиль",
                  			"refuse_id": "1"
                  		},
                  		{
                  			"reject_reason": "Не мой участок",
                  			"refuse_id": "2"
                  		},
                  		{
                  			"reject_reason": "Я на больничном",
                  			"refuse_id": "3"
                  		},
                  		{
                  			"reject_reason": "У меня выходной / отпуск",
                  			"refuse_id": "4"
                  		}
]

Добавление пуша для отправки пользователя

GET server/v2/test/push/?

Список параметров
  message : blablabla  //сообщение для пользователя
  object_id : 123      //код объекта (например номер заявки)
  object_type : З_Н    //Тип пуша (см типа пушей)
  
 JSON ответ в случае успеха:

{ 1 }

Список пушей по пользователю

GET server/v2/push/?

Список параметров
  start : 1  //старт выборки с позиции
  count : 50      //количество элементов
  
 JSON ответ в случае успеха:

[
    {
        "rn": 1, //порядковый номер
        "push_id": 25536,  //код пуша
        "message": "blabla",  //сообщение
        "object_id": 321,   //код объекта 
        "object_type": "З_Н",  //тип пуша
        "status": 1   //статус пуша (0 не отправлен/1 отправле /2 прочитан)
    },
    {
        "rn": 2,
        "push_id": 25535,
        "message": "test",
        "object_id": 123,
        "object_type": "З_Н",
        "status": 1
    }
]

Детализация пуша

GET server/v2/push/:push_id


 JSON ответ в случае успеха:

{
    "push_id": 25536,
    "message": "blabla",
    "object_id": 321,
    "object_type": "З_Н",
    "status": 2
}

Детализация профиля

GET server/v2/profile/detail

JSON ответ в случае успеха:

{
        "username": "Предеин Анатолий",
        "can_close_request": true,
        "can_access_meters": true,
        "can_access_contacts": true,
        "account_name": "Не активен",
        "phone": "9898004862",
        "emp_id": 22055,
        "not_read_push_count": 10,
        "can_comment_to_ext_system": 1,  // варианты 0/1
        "token_id": 12345,
        "can_access_material_price": true,
        "access_status_list" : "1:2:3:4:5"  //доступные для использования пользователем статусы заявок
    }

Получения списка включенных уведомлений пуш для профиля

GET server/v2/profile/settings_push
// Ответ
[
    {
        "descr": "Назначен исп/отв в заявке",
        "value": "З_Н",
        "is_set": "1"
    },
    {
        "descr": "Добавлен комментарий к заявке",
        "value": "З_К",
        "is_set": "1"
    },
    {
        "descr": "Добавлен файл к заявке",
        "value": "З_Ф",
        "is_set": "1"
    },
    {
        "descr": "Заявка открыта повторно",
        "value": "З_СО",
        "is_set": "1"
    },
    {
        "descr": "Заявка принята в работу",
        "value": "З_СП",
        "is_set": "1"
    }
]

Измнение данных о профиле

POST server/v2/profile/update
{
		"fcm_token": "NEWTOKEN123",     // Если вдруг пуш секрет изменился на девайсе или был получен позже
		"push_config": "З_Ф:З_Н:З_К",   // какие пуши юзеру необходимы
		"start_app" : "im started!!"    // выполняется каждый раз 1 раз при запуске АПП чтобы вести статистику использования апп
}
 
Json в случае успеха
 
{
        "affected_rows": 3
}
Ваш комментарий. Вики-синтаксис разрешён:
C T N F B
 
  • /var/www/html/wiki/data/pages/d24/develop/v2/backend/user.txt
  • Последние изменения: 2024/04/01 06:39
  • — fedorovlv