Документация-вспомогательные

mapAdmin — comments news

GET /news/{newsId}/comments

Формат ответа:

{
	"res": 1,
	"comments": [{
		"id": "{}",
		"reference_id": "{}",
		"level": "{}",
		"news_id": "{}",
		"user_id": "{}",
		"date": "{}",
		"update_text": "{}",
		"fio": "{}",
		"comment": "{}"
	}],
	"resText": ""
}



// id комментария
// ответ на комментарий, иначе null
// уровень комментария, начиная с 0
// id новости
// id создателя
// дата комментария
// текст обновления (для комментария об обновлении новости) 
// ФИО создателя
// комментария

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

GET /geoservers/

Формат ответа:

{
    "res": 1,
    "geoservers": [{
        "id": ,
        "name": ,
        "link":  
    }]
}



// id геосервера
// название
// url

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 /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
// английское название атрибута
// русское название атрибута, если оно есть
// порядок отображения, если есть русское название
// является ли атрибут заголовком

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}

layerId — id слоя
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}

layerId — id слоя
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 - хранится в таблице
// путь к файлу, если он не в базе

GET /layers/layerEisPhoto/{layerId}/{fileId}/{eisType}

layerId — id слоя
fileID— значение поля — первичного ключа у файла
eisType — тип файла: 1 — аудио, 2 — видео, 3 — фото, 4 — файл

Ответ: бинарные данные

GET /layers/layerEisPhoto/{layerId}/{photoId}/{preview}

layerId — id слоя
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