mapAdmin — comments news
Комментарии сообщений
Получение дерева комментариев к сообщению
GET /news/{newsId}/comments
Формат ответа:
{
"res": 1,
"comments": [{
"id": "{}",
"reference_id": "{}",
"level": "{}",
"news_id": "{}",
"user_id": "{}",
"date": "{}",
"update_text": "{}",
"fio": "{}",
"comment": "{}"
}],
"resText": ""
}
Добавление комментария к сообщению
POST /news/{newsId}/comments
reference_id — ответ на комментарий
Формат входных параметров:
{
"action": "post",
"comment": "{}"
}
// действие
// комментарий
Формат ответа:
{
"res": 1,
"resText": ""
}
mapAdmin — news
Сообщения
Прикрепленные файлы:
Путь к фотографиям новости: /department_files/photos
Название: photo_{department_id}_{newsId}_{num}.{ext};
Путь к видео новости: /department_files/video
Название: video_{department_id}_{newsId}_{num}.flv;
Путь к звуковым файлам новости: /department_files/sounds
Название: sounds_{department_id}_{newsId}_{num}.{ext};
Путь к файлам новости: /department_files/dif_files
Название: files_{department_id}_{newsId}_{num}.{ext};
Добавление сообщения
POST /news/
Пример запроса:
{
"action": "put",
"values": {
"news_date": "21.05.2012",
"news_hour": "13",
"news_minute": "41",
"title": "Заголовок",
"text": "Текст",
"news_type_id": 1,
"category": 1,
"department_id": ,
"system_data": "версия: 1.1.1",
"photo_main": 0,
"custom_fields": "{\"транслит поля\": {\"field_id\": id поля}}"
},
"point": [55.56,46.67],
"photos": ["dN2k9B9r42YbfDyz.jpg",
"tAFEAB5Aftt8ybta.png"],
"photos_name": ["1313410929241.jpg",
"131341095.png"],
"photos_desc": ["описание1",
"описание2"],
"video": ,
"video_name": ,
"video_desc": ,
"files": ["dN2k9B9r42YbfDxrg.txt"],
"files_name": ["files.txt"],
"files_desc": ["описание"],
"sounds": ["{}"],
"sounds_name": ["{}"],
"sounds_desc": ["{}"]
}
// дата сообщения
// час
// минута
// заголовок
// текст
// id типа сообщения
// id категории
// id ведомства
// текстовое поле
// порядковый номер фотографии (если отправляется photos, то 0 - начальный номер)
// json объект, состоящие из списка дополнительных полей с их значениями
// точка (название файла, которое приходит при загрузке)
// массив названий фотографий, после загрузки
// массив исходных названий фотографий
// массив описаний фотографий
// массив названий видео файлов, после загрузки
// массив исходных названий видео файлов
// массив описаний видео файлов
// массив названий файлов, после загрузки
// массив исходных названий файлов
// массив описаний файлов
// массив названий звуковых файлов, после загрузки
// массив исходных названий звуковых файлов
// массив описаний звуковых файлов
Формат ответа:
{
"res": 1,
"newsId": ""
}
Получение списка доступных сообщений
GET /news/listAfterId/{newsAfterId}/{limit}/{confirmedType}?withAssigned=&withClosed=&withArchive=&onlyMy=&onlyStatus
newsAfterId — id сообщения, после которой надо получить список сообщений, либо 0
limit — количество сообщений в запросе, если 0 — то используется значение по умолчанию
confirmedType — если параметр опущен, иначе 0 — не просмотренные, 1 — утвержденные, 2 -не утвержденные
Необязательные query — параметры:
withAssigned — если true, в список добавляются сообщения, назначенные пользователю, либо его ведомству (если он админ)
withClosed — если true, в список добавляются сообщения со статусом выполнено, назначенные пользователю, либо его ведомству (если он админ)
withArchive — если true, в список добавляются сообщения, которые в архиве (по умолчанию берутся текущие)
onlyMy — если параметр установлен в true, в списке отдаются только сообщения, созданные пользователем. Параметры withAssigned,withClosed,onlyStatus игнорируются
onlyStatus — отдаются сообщения с соответствующими статусами. id статусов передаются через запятую. Например, onlyStatus=2,3
onlyStates — отдаются новости, которые находятся в соответствующих состояниях. id статусов передаются через запятую. Например, onlyStates=6,11
onlyAssigned — отдаются новости, которые не новые и не выполнены, но назначены. Например, onlyAssigned=true
category_id — фильтр по категориям новостей. id категорий передаются через запятую. Например, category_id=1,2
type_id — фильтр по типам новостей. id типов передаются через запятую. Например, type_id=95,121,39
hasPoint — отдаются новости, у которых есть точка, например:
http://server.name/rest/news/listAfterId/123/10?hasPoint=true
hasPhoto — отдаются новости, у которых есть прикрепленные фотографии, например:
http://server.name/rest/news/listAfterId/123/10?hasPhoto=true
hasVideo — отдаются новости, у которых есть прикрепленные видео, например:
http://server.name/rest/news/listAfterId/123/10?hasVideo=true
hasFile — отдаются новости, у которых есть прикрепленные файлы, например:
http://server.name/rest/news/listAfterId/123/10?hasFile=true
hasAudio — отдаются новости, у которых есть прикрепленные аудио файлы, например:
http://server.name/rest/news/listAfterId/123/10?hasAudio=true
gtUpdateDate — список новостей, дата обновления которых больше текущей даты, например:
http://server.name/rest/news/listAfterId/123/10?gtUpdateDate=06.11.2014 13:00
ltUpdateDate — список новостей, дата обновления которых меньше текущей даты, например:
http://server.name/rest/news/listAfterId/123/10?ltUpdateDate=06.11.2014 13:00
sortBy — поле, по которому осуществляется сортировка. По умолчанию — news_date. Варианты: news_date|update_date|id|user_id|news_type_id|category_id
sortDirection — направление сортировки. По умолчанию — desc. Варианты: asc|desc
Пример запросов:
http://server.name/rest/news/listAfterId/123/10?onlyMy=true
http://server.name/rest/news/listAfterId/123/10?onlyStatus=2,3
http://server.name/rest/news/listAfterId/123/10?withAssigned=true&withClosed=true&withArchive=true
Пример ответа:
{
"res": 1,
"resText": "",
"news_list": [{
"id": "18069",
"department_id": "1",
"department_logo": "logo_1.jpg",
"news_date": "2012-05-22 15:44:00+04",
"confirmed": "0",
"title": "Заголовок",
"text": "Текст",
"news_type_id": "1",
"category_id": "1",
"assigned_to": null,
"assigned_department_name": null,
"assigned_status": "1",
"status_name": "новое",
"assigned_to_user": null,
"assigned_user_fio": null,
"assigned_change_date": "2013-07-16 12:11:57.224137+04",
"restricted": "t",
"notice": "1",
"news_type_icon": "icon3d_1.png",
"news_type_name": "происшествие",
"num_main_photo": null,
"archive": "f",
"category_name": "информационная",
"system_data": "это системная дата",
"lon": "49.1061401367188",
"lat": "55.7958774456641",
"zoom": "10",
"custom_fields": "{транслит поля: {"field_id": id поля}}",
"department_title": ,
"user_id": ,
"user_fio":
}],
"count_news":"5426"
}
// id сообщения
// id ведомства
// логотип ведомства
// дата сообщения
// 0 - не просмотрена, 1 - утверждена, 2 - не утверждена
// заголовок
// текст
// id типа сообщения
// id категории
// id ведомства, на которое назначена сообщение, иначе null
// название ведомства, на которое назначена сообщение, иначе null
// номер статуса | 1 - новое, 2 -назначено, 3 - обратная связь, 4 - выполнено
// название статуса
// id пользователя, на которого назначена сообщение, иначе null
// ФИО пользователя, на которого назначена сообщение, иначе null
// дата последнего обновления статуса
// ограниченный доступ к сообщения или же нет | t или f
// 1 - уведомлять на E-mail, 2 - уведомлять на E-mail и по почте
// название иконки типа сообщения
// название типа сообщения
// порядковый номер фотографии, которая является заголовком, иначе null
// в архиве сообщение или нет | t или f
// название категории
// системные данные
// долгота точки, null-если точки нет
// широта точки, null-если точки нет
// уровень масштаба, на котором поставлена точка
// json - строка со списком дополнительных полей и их значений
// заголовок ведомства
// id пользователя
// ФИО пользователя
//количество сообщений, которое доступно пользователю
Количество сообщений, которое доступно пользователю
GET /news/count
Параметры фильтрации:
date_from — дата начала, начиная с которой необходимо отфильтровать новости. Формат timestamp, например date_from=1212121212
date_till — дата, до которой необходимо отфильтровать новости. Формат timestamp, например date_till=1212656565
category_id — фильтр по категориям новостей. id категорий передаются через запятую. Например, category_id=1,2
type_id — фильтр по типам новостей. id типов передаются через запятую. Например, type_id=1,2
status_id — фильтр по статусам новостей. id статусов передаются через запятую. Например, status_id=1,2
department_id — фильтр по организациям, в которых были созданы новости. id организаций передаются через запятую. Например, department_id=1,2
assigned_department_id — фильтр по организациям, которые были назначены на новости. id организаций передаются через запятую. Например, assigned_department_id=1,2
Формат ответа:
{
"res": 1,
"resText": "",
"countNews": 16578,
"statuses": [{
"status_id": 1,
"count": 535
},...]
}
Прикрепленные файлы
Путь к иконкам категории: /department_files/news_category
Список дополнительных полей и их возможных типов
GET /news/custom_fields
Формат ответа:
{
"res": ,
"custom_fields": [{
"id": ,
"name": ,
"translit": ,
"format": ,
"group_name": ,
"possible_values": ,
"regexp": ,
"min_length": ,
"max_length": ,
"is_required": ,
"default_value": ,
"visible": ,
"is_for_all": ,
"order": ,
"news_type_ids":
}],
"fields_types": [{
"name": ,
"rusname":
}
}
// id поля
// русское название
// транслит русского названия
// формат: английское название типа поля
// название группы полей
// возможные значения
// регулярное выражение для типов string и text
// минимальная длина строки/текста
// максимальная длина строки/текста
// является ли поле обязательным (t или f)
// значение по умолчанию
// является ли поле видимым (t или f)
// доступно ли поле всем типам сообщений
// порядковый номер поля в общем списке
// массив id типов сообщений, для которых поле доступно
// английское название
// русское название
Список состояний сообщения
GET /news/states
Формат ответа:
{
"res": ,
"states": [{
"id": ,
"name": ,
"field": ,
"value": ,
"sign": ,
"field_from_session":
}]
}
// id состояния
// название
// поле, по которому осуществляется проверка
// значение, которое поле должно принимать
// знак для сравнения
// поле в сессии, если нужно сравнивать с ним
Список действий, которые можно осуществлять с сообщениями
GET /news/capabilities
Формат ответа:
{
"res": ,
"capabilities": [{
"id": ,
"name":
}
}
// id действия
// название
Список правил с состояниями, в которых должно находиться сообщение для предоставления доступа текущему пользователю
GET /news/allowed
Если для роли не прописано какое-то действие, то оно не будет для нее доступно. Если в поле состояний стоит null, действие доступно роли при любых состояниях
Формат ответа:
{
"res": 1,
"resText": "",
"allowed": [{
"id": ,
"capability_id": ,
"states":
}]
}
// id правила
// id действия
// массив id состояний, либо null
Количество новостей с группировкой по статусам, категориям, типам, организациям
GET /news/stats
Параметры фильтрации:
date_from — дата, начиная с которой необходимо отфильтровать сообщения. Формат timestamp, например date_from=1212121212
date_till — дата, до которой необходимо отфильтровать сообщения. Формат timestamp, например date_till=1212656565
Формат ответа:
{
"res": 1,
"resText": "",
"statuses": [
{"status_id": 10, "count": 20},
{"status_id": 11, "count": 20},
{"status_id": 12, "count": 20}
],
"categories": [
{
"category_id": 10
"statuses": [
{"status_id": 10, "count": 20},
{"status_id": 11, "count": 20},
{"status_id": 12, "count": 20}
]
}
],
"types": [
{
"type_id": 10
"statuses": [
{"status_id": 10, "count": 20},
{"status_id": 11, "count": 20},
{"status_id": 12, "count": 20}
]
}
],
"departments": [
{
"department_id": 10
"statuses": [
{"status_id": 10, "count": 20},
{"status_id": 11, "count": 20},
{"status_id": 12, "count": 20}
]
}
],
"assignedDepartments": [
{
"assigned_department_id": 10
"statuses": [
{"status_id": 10, "count": 20},
{"status_id": 11, "count": 20},
{"status_id": 12, "count": 20}
]
}
]
}
Список категорий сообщений
GET /category
Формат ответа:
{
"res": 1,
"category": [{
"id": ,
"name": ,
"icon " : ,
"order_important" :
}]
}
// id категории
// название категории
// название иконки
// степень значимости категории
Список типов сообщений
GET /newstype
Формат ответа:
{
"res": 1,
"newstype": [{
"news_type_id": ,
"name": ,
"icon": ,
"icon3d": ,
"map_icon": ,
"map_icon_highlight": ,
"default_type": ,
"period_of_review":
}]
}
// id типа
// название типа
// название двухмерной иконки
// название трехмерной иконки
// название иконки для карты
// название увеличенной иконки для карты
// является ли типом по умолчанию
// период исполнения сообщения данного типа
Список статусов сообщений
GET /status
Формат ответа:
{
"res": 1,
"status": [{
"id": ,
"name": ,
"visible" :
}]
}
// id статуса
// название статуса
// виден ли пользователям в списке статусов, 't' или 'f'
mapAdmin — geoserver, workspace, datastore
Геосервер
Cписок геосерверов
GET /geoservers/
Формат ответа:
{
"res": 1,
"geoservers": [{
"id": ,
"name": ,
"link":
}]
}
// id геосервера
// название
// url
Cписок рабочих пространств
GET /workspaces?geoserverId={id геосервера}
Формат ответа:
{
"res": 1,
"workspaces": [{
"name": ,
"href":
}]
}
// название workspace
// ссылка для workspace
Список хранилищ данных
GET /datastores?geoserverId={id геосервера}&workspaceName={название workspace}
Формат ответа:
{
"res": 1,
"datastores": [{
"name": ,
"href":
}]
}
// название datastore
// ссылка для datastore
Список сохраненных хранилищ данных
GET /datastores/saved?geoserverId={id геосервера}&workspaceName={название workspace}
Формат ответа:
{
"res": 1,
"datastores": [{
"id": ,
"name": ,
"host": ,
"port": ,
"database": ,
"have_infrastructure":
}]
}
// id
// название
// хост
// порт
// название базы данных
// есть ли инфраструктура 't' или 'f'
mapAdmin — Запросы слоя
Запросы, выполняемые относительно слоя
Получение данных по слою
GET /layers/{id}
Пример ответа:
{
"res": 1,
"resText": "",
"layer": {
"id": "799",
"url": "http://cache1.mapkzn.ru/geoserver/wms",
"type_name": "admter:department_new_layer12",
"namespace": "admter",
"lname": "department_new_layer12",
"style": "line",
"name": "Слой",
"service": "WMS",
"server": "http://cache1.mapkzn.ru/geoserver/",
"legend_url": "/download/layerLegend/799.png"
}
}
// 0 - Ошибка, 1 - Успешно
// описание ошибки
// id слоя
// url слоя
// название слоя на геосервере
// название стиля
// название слоя
// стиль слоя
// русское название
// тип слоя: WMS или WFS
// название сервера
// url
Удаление слоя
POST /layers/{id}
Формат входных данных:
{
"action": "delete",
"deleteFromPortal": 1,
"deleteFromGeoportal": ,
"deleteFromDatabase":
}
// 0 - не удалять с геосервера, 1 - удалять
// 0 - не удалять из базы, 1 - удалять из базы
Формат ответа:
{
"res": 1,
"resText": ""
}
// ответ от геосервера
GET запрос на сервере в формате WFS
GET /layers/{id}/wfs?GetParams
Если возвращается статус 200, в ответе то, что отдает геосервер.
Иначе отдается 500 статус с json-ответом:
{
"res": 0,
"resText": ""
}
// ответ от геосервера
POST запрос на сервере в формате WFS
POST /layers/{id}/wfs
Если возвращается статус 200, в ответе то, что отдает геосервер.
Иначе отдается 500 статус с json-ответом:
{
"res": 0,
"resText": ""
}
// ответ от геосервера
Получение данных по слою
GET /layers/{id}/attributes
Формат ответа:
{
"res": 1,
"attributes": [{
"id": ,
"name": ,
"name_ru": ,
"order": ,
"title":
},...]
}
// id - если есть русское название или 0
// английское название атрибута
// русское название атрибута, если оно есть
// порядок отображения, если есть русское название
// является ли атрибут заголовком
Запрос на получение sld слоя
GET /layers/{id}/style/{styleName}.sld
Ответ: Sld файл
Добавление стиля к слою или же изменение существующего
POST /layers/{id}/style/{styleName}
fileName — имя файла, заранее загруженного в папку /department_files/temp
Запрос:
{
"fileName":'B459zeAAA8tyerTD.sld'
}
Ответ:
{
"res": 1,
"resText": "Стиль успешно создан/обновлен и добавлен к слою."
}
mapAdmin — Запросы слоев
Запросы слоев
Список слоев
GET /layers/
Пример ответа:
{
"res": 1,
"resText": "",
"layers": [{
"name": "Тест1",
"layer_id": "q",
"url": "http:\/\/cache1.mapkzn.ru\/geoserver\/wms",
"type_name": "test:test1",
"style": "point",
"have_legend": "f",
"service": "WMS",
"poly": "f",
"server_id": "2",
"group_id": "1",
"from_infrastructure": "f",
"user_id": "1",
"group_name": "Базовые слои",
"read": "t",
"write": "f",
"edit": "t"
},...]
}
// 0 - Ошибка, 1 - Успешно
// описание ошибки
// русское название слоя
// id слоя
// url слоя
// название слоя на геосервере
// название стиля
// сохранена ли в базе легенда слоя: t или f
// тип слоя: WMS или WFS
// является ли слой полигоном: t или f
// id геосервера
// id группы
// находится ли слой в базе с инфраструктурой: t or f
// id пользователя, создавшего слой
// название группы
// может ли пользователь видеть слой: t или f
// может ли пользователь изменять объекты слоя: t или f
// может ли пользователь администрировать слой: t или f
Добавление слоя
POST /layers/
Формат входных данных для пользователей:
1. Администратор всех ведомств (role_id = 8):
{
"action": "put",
"server_id": ,
"datastore": ,
"engname": ,
"geomtype": ,
"style":,
"style": {
"point_forma": ,
"point_size": ,
"point_fill_color": ,
"pointstroke": ,
"point_stroke_width": ,
"point_stroke_color":
},
"style": {
"line_width": ,
"line_fill_color": ,
"linestroke": ,
"line_stroke_width": ,
"line_stroke_color":
},
"style": {
"polygon_fill_color": ,
"polygon_opacity": ,
"polygonstroke": ,
"polygon_stroke_color": ,
"polygon_stroke_width":
},
"attributes": [{
"engname": ,
"rusname": ,
"type": ,
"titles": 1
}],
"rusname": ,
"group_id": ,
"newlayer_service":
}
// id сервера
// ссылка datastore
// английское название слоя
// тип геометрии: point, line, polygon
// название стиля, если передается существующий
// новый стиль для типа point
// форма точки: 1 - круг, 2 - квадрат,3 - треугольник
// размер точки (целое число)
// цвет заливки (RGB)
// 0 - нет линии, 1 - есть линия
// если есть линия, ширина линии (целое число)
// цвет линии (RGB)
// новый стиль для типа line
// ширина линии
// цвет линии (RGB)
// 0 - нет обводки, 1 - есть обводка
// если есть обводка
// ширина обводки (целое число)
// цвет обводки (RGB)
// новый стиль для типа polygon
// цвет заливки(RGB)
// прозрачность (число от 0 до 1)
// 0 - нет обводки, 1 - есть обводка
// если есть обводка, цвет обводки (RGB)
// ширина обводки (целое число)
// английское название атрибута
// русское название атрибута
// тип: int - целое число, str - строка,
// num - число с плавающей точкой
// 1, если атрибут является заголовком
// русское название слоя
// id группы
// тип слоя: WMS, WFS
2. Администратор ведомства (role_id = 10):
{
"action": "put",
"datastore_id": "{id datastore}",
"engname": ,
"geomtype": ,
"style":,
"style": {
"point_forma": ,
"point_size": ,
"point_fill_color": ,
"pointstroke": ,
"point_stroke_width": ,
"point_stroke_color":
},
"style": {
"line_width": ,
"line_fill_color": ,
"linestroke": ,
"line_stroke_width": ,
"line_stroke_color":
},
"style": {
"polygon_fill_color": ,
"polygon_opacity": ,
"polygonstroke": ,
"polygon_stroke_color": ,
"polygon_stroke_width":
},
"attributes": [{
"engname": ,
"rusname": ,
"type": ,
"titles": 1
}],
"rusname": ,
"group_id": ,
"newlayer_service":
}
// id datastore
// английское название слоя
// тип геометрии: point, line, polygon
// название стиля, если передается существующий
// новый стиль для типа point
// форма точки: 1 - круг, 2 - квадрат,3 - треугольник
// размер точки (целое число)
// цвет заливки (RGB)
// 0 - нет линии, 1 - есть линия
// если есть линия, ширина линии (целое число)
// цвет линии (RGB)
// новый стиль для типа line
// ширина линии
// цвет линии (RGB)
// 0 - нет обводки, 1 - есть обводка
// если есть обводка
// ширина обводки (целое число)
// цвет обводки (RGB)
// новый стиль для типа polygon
// цвет заливки(RGB)
// прозрачность (число от 0 до 1)
// 0 - нет обводки, 1 - есть обводка
// если есть обводка, цвет обводки (RGB)
// ширина обводки (целое число)
// английское название атрибута
// русское название атрибута
// тип: int - целое число, str - строка,
// num - число с плавающей точкой
// 1, если атрибут является заголовком
// русское название слоя
// id группы
// тип слоя: WMS, WFS
3. Пользователь ведомства (role_id = 7 или 6):
{
"action": "put",
"geomtype": ,
"style":,
"style": {
"point_forma": ,
"point_size": ,
"point_fill_color": ,
"pointstroke": ,
"point_stroke_width": ,
"point_stroke_color":
},
"style": {
"line_width": ,
"line_fill_color": ,
"linestroke": ,
"line_stroke_width": ,
"line_stroke_color":
},
"style": {
"polygon_fill_color": ,
"polygon_opacity": ,
"polygonstroke": ,
"polygon_stroke_color": ,
"polygon_stroke_width":
},
"attributes": [{
"engname": ,
"rusname": ,
"type": ,
"titles": 1
}],
"rusname": ,
"group_id": ,
"newlayer_service":
}
// тип геометрии: point, line, polygon
// название стиля, если передается существующий
// новый стиль для типа point
// форма точки: 1 - круг, 2 - квадрат,3 - треугольник
// размер точки (целое число)
// цвет заливки (RGB)
// 0 - нет линии, 1 - есть линия
// если есть линия, ширина линии (целое число)
// цвет линии (RGB)
// новый стиль для типа line
// ширина линии
// цвет линии (RGB)
// 0 - нет обводки, 1 - есть обводка
// если есть обводка
// ширина обводки (целое число)
// цвет обводки (RGB)
// новый стиль для типа polygon
// цвет заливки(RGB)
// прозрачность (число от 0 до 1)
// 0 - нет обводки, 1 - есть обводка
// если есть обводка, Цвет обводки (RGB)
// ширина обводки (целое число)
// английское название атрибута
// русское название атрибута
// тип: int - целое число, str - строка,
// num - число с плавающей точкой
// 1, Если атрибут является заголовком
// русское название слоя
// id Группы
// тип слоя: WMS, WFS
Получение списка прикрепленных файлов всех типов к объекту слоя
GET /layers/layerEis/{layerId}/{pkFieldObjectData}
pkFieldObjectData — значение поля — первичного ключа у объекта
Формат ответа:
{
"res": 1,
"photo": {
"photoIds": [{
"pic_id": "",
"pic_data": ""
}],
"photoUrls": [""],
"type": "photo",
"pic_as_url": "",
"prefix": "{}"
},
"video": {
"videoIds": [{
"video_id": "",
"video_data": ""
}],
"videoUrls": [""],
"type": "video",
"video_as_url": "",
"prefix": "{}"
},
"audio": {
"audioIds": [{
"audio_id": "",
"audio_data": ""
}],
"audioUrls": [""],
"type": "audio",
"audio_as_url": "",
"prefix": "{}"
},
"files": {
"fileIds": [{
"file_id": "",
"file_data": ""
}],
"fileUrls": [""],
"type": "file",
"file_as_url": "",
"prefix": "{}"
}
}
// id фотографии
// название фотографии, если она не хранится в базе
// url к фотографии
// тип
// t - доступна по ссылке, f - хранится в таблице
// путь к фотографии, если она не в базе
// id видео
// название видео файла либо ссылка к нему, если он не в базе
// url к видео
// тип
// t - доступно по ссылке, f - хранится в таблице
// путь к видео, если оно не в базе
// id аудио
// название аудио файла либо ссылка к нему, если он не в базе
// url к аудио файлу
// тип
// t - доступно по ссылке, f - хранится в таблице
// путь к аудио файлу, если он не в базе
// id файла
// название файла либо ссылка к нему, если он не в базе
// url к файлу
// тип
// t - доступен по ссылке, f - хранится в таблице
// путь к файлу, если он не в базе
Получение списка прикрепленных файлов определенного типа к объекту слоя
GET /layers/layerEis/{layerId}/{pkFieldObjectData}/{type}
pkFieldObjectData — значение поля — первичного ключа у объекта
type — тип, 1 — аудио, 2 — видео, 3 — фото, 4 — файл
Формат ответа, если тип аудио:
{
"res": 1,
"audioIds": [{
"audio_id": "",
"audio_data": ""
}],
"audioUrls": [""],
"type": "audio",
"audio_as_url": "",
"prefix": "{}"
}
// id аудио
// название аудио файла, либо ссылка к нему, если он не хранится в базе
// url к аудио файлу
// тип
// t - доступна по ссылке, f - хранится в таблице
// путь к аудио, если оно не в базе
Формат ответа, если тип фото:
{
"res": 1,
"photoIds": [{
"pic_id": ,
"pic_data":
}],
"photoUrls":,
"type": "photo",
"pic_as_url": ,
"prefix":
}
// id фотографии
// название фотографии, если она не хранится в базе
// url к фотографии
// тип
// t - доступна по ссылке, f - хранится в таблице
// путь к фотографии
Формат ответа, если тип видео:
{
"res": 1,
"videoIds": [{
"video_id": "",
"video_data": ""
}],
"videoUrls": [""],
"type": "",
"video_as_url": "",
"prefix": "{}"
}
// id видео
// название видео файла либо ссылка к нему, если он не в базе
// url к видео
// тип
// t - доступна по ссылке, f - хранится в таблице
// путь к видео, если оно не в базе
Формат ответа, если тип файл:
{
"res": 1,
"fileIds": [{
"file_id": "",
"file_data": ""
}],
"fileUrls": [""],
"type": "file",
"file_as_url": "f",
"prefix": "{}"
}
// id файла
// название файла либо ссылка к нему, если он не хранится в базе
// url к файлу
// тип
// t - доступна по ссылке, f - хранится в таблице
// путь к файлу, если он не в базе
Получение из таблицы файла определенного типа, прикрепленного к объекту слою через eis, по ее первичному ключу
GET /layers/layerEisPhoto/{layerId}/{fileId}/{eisType}
fileID— значение поля — первичного ключа у файла
eisType — тип файла: 1 — аудио, 2 — видео, 3 — фото, 4 — файл
Ответ: бинарные данные
Получение фотографии из таблицы, прикрепленной к слою через eis, по ее первичному ключу
GET /layers/layerEisPhoto/{layerId}/{photoId}/{preview}
photoId— значение поля — первичного ключа у фотографии
preview — если = ‘preview’, то превью фотографии, иначе фотография полностью
Ответ: бинарные данные
Количество слоев пользователя
GET /layers/count
Формат ответа:
{
"res": 1,
"count":
}
// Количество слоев
Список групп слоев, доступных данному пользователю
GET /groups
Формат ответа:
{
"res": 1,
"groups": [{
"id": ,
"name": ,
"order" : ,
"department_id_create" :
}]
}
// id группы
// название группы
// порядок отображения
// id ведомства, которым была создана группа
mapAdmin — Авторизация
Авторизация
Авторизация на сервере
POST /authentication/
Формат запроса
{
"action": "post",
"login": "",
"password": "",
"rememberme":
}
// логин
// пароль
// {0,1} 1 - запомнить параметры авторизации
Пример запроса
{
"action": "post",
"login": "user",
"password": "1234",
"rememberme": 1
}
Формат ответа (авторизация пройдена):
{
"res": ,
"resText": ,
"id": ,
"fio": ,
"role_id": ,
"department_id": ,
"matrix": ,
"token":
}
// 0 - Ошибка, 1 - Успешно
// Описание ошибки
// id пользователя
// ФИО
// id роли
// id ведомства
// матрица перелета для АРМ Губернатора
// Token