Интеграция с Geo4me
[IA] POST /geo4me/organization
Создает в базе Cerebellum запись об организации в Geo4Me.
В реализацию запроса заложена проверка на реальное существование организации пользователя в Geo4me.
// IN --->
{
"login": "admin123", // логин админа для входа под этой организацией в Geo4Me
"password": "pass456" // пароль админа для входа под этой организацией в Geo4Me
}
// OUT <---
// в случае успеха
{
"res": 1, "resText": ""
}
- 400, если организация с таким id уже существует;
- 401, необходима авторизация в системе Geo4me;
- 403, ошибка авторизации в системе Geo4me;
- 400, неверный запрос в систему Geo4me;
- 404, ответ на запрос на сервере Geo4me не найден;
- 500, внутренняя ошибка сервера Geo4me.
[IA] POST /geo4me/organization/:geo4me-id/link/:active-map-id
Связать организацию Geo4Me с организацией ActiveMap по схеме один-ко-многим (одной организации в Geo4Me может соответствовать множество организаций в ActiveMap).
- geo4me-id — id «родительской» организации в Geo4Me;
- active-map-id — id «дочерней» организации в ActiveMap.
// OUT <---
// в случае успеха
{
"res": 1, "resText": ""
}
- 404, если организация с таким geo4me-id не существует (не была зарегистрирована в Cerebellum через POST /geo4me/organization);
- 404, если организация с таким active-map-id не существует;
- 400, если организация с active-map-id уже связана с другой организацией из Geo4me;
- если организация с geo4me-id уже привязана к организации с active-map-id, ошибки не происходит.
[IA] DELETE /geo4me/organization/:geo4me-id/link/:active-map-id
Удалить связь между организацией Geo4Me и организацией ActiveMap.
- geo4me-id — id «родительской» организации в Geo4Me;
- active-map-id — id «дочерней» организации в ActiveMap.
// OUT <---
// в случае успеха
{
"res": 1, "resText": ""
}
- 404, если организация с таким geo4me-id не существует (не была зарегистрирована в Cerebellum через POST /geo4me/organization);
- 404, если организация с таким active-map-id не существует;
- 400, если организации не связаны друг с другом.
[IA] GET/geo4me/organization/:geo4me-id/user
Список пользователей указанной организации Geo4me.
Организация Geo4me должна быть зарегистрирована в Cerebellum (через POST /geo4me/organization).
В списке выдаются пользователи Geo4me, имеющие связь с пользователями ActiveMap.
- geo4me-id — id организации в Geo4Me.
// OUT <---
{
"res": 1,
"resText": "",
"geo4me_users": [ //список пользователей Geo4me
{
"id": "1938",//id пользователя Geo4me
"active_map_user": { //данные о пользователе ActiveMap
"id": "616", //id пользователя ActiveMap
"login": "tadm", //логин пользователя ActiveMap
"fio": "Администратор Отдела Тестирования T", //ФИО пользователя ActiveMap
"role_id": "10", //id роли пользователя ActiveMap
"department_id": "2" //id организации пользователя ActiveMap
}
},
... // следующие элементы списка пользователей Geo4me
]
}
- 404, если организация с таким geo4me-id не существует (не была зарегистрирована в Cerebellum через POST /geo4me/organization).
[IA] GET/departments/:active-map-id/geo4me
Получить организацию Geo4me, привязанную к организации ActiveMap с указанным active-map-id или null, если связанной организации не существует.
- active-map-id — id организации в ActiveMap.
// OUT <---
{
"res": 1,
"resText": "",
"geo4me_organization": {
"id": "941", //id организации Geo4me
"name": "Geo4me org" //название организации Geo4me
}
}
- 404, если организация с таким active-map-id не существует.
[IA] GET/geo4me/organization
Список организаций из Geo4me, зарегистрированных в Cerebellum (через POST /geo4me/organization).
// OUT <---
{
"res": 1,
"resText": "",
"geo4me_organizations": [ //список организаций Geo4me
{
"id": "99", //id организации Geo4me
"name": "Виноградники Краснодарского края" //название организации Geo4me
},
{
"id": "941",
"name": "Geo4me org"
},
... // следующие элементы списка организаций
]
}
[IA] PUT /geo4me/user/mapping
Задать соответствие между пользователями Geo4Me и пользователями ActiveMap.
Важно: при выполнении этого запроса существующее соответствие между пользователями Geo4Me и ActiveMap стирается!
Если не существует хотя бы одного пользователя Geo4me с указанным geo4me_user_id, такой пользователь создается в Cerebellum.
Проверка на реальное существование пользователя в системе Geo4me с указанным geo4me_user_id не реализована.
// IN --->
// массив объектов, каждый из которых задаёт соответствие
// один-к-одному.
[
// поставить в соответствие пользователю geo4me
// с id=15 пользователя activeMap с id=23.
{ "geo4me_user_id": 15,
"active_map_user_id": 23 },
// ...
]
// OUT <---
// в случае успеха
{
"res": 1, "resText": ""
}
- 404, если не существует хотя бы одного пользователя ActiveMap с указанным active_map_user_id;
- 400, неверный формат передаваемых данных для связи пользователей Geo4me и ActiveMap;
- 400, если хотя бы один geo4me-user-id указан дважды;
- 400, если хотя бы один active-map-user-id указан дважды.
[IA] POST /geo4me/user/:geo4me-user-id/link/:active-map-user-id
Связать пользователя Geo4Me с пользователя ActiveMap по схеме один-к-одному (одному пользователю в Geo4Me может соответствовать один пользователь в ActiveMap).
Если не существует пользователя Geo4me с указанным geo4me_user_id, такой пользователь создается в Cerebellum.
Проверка на реальное существование пользователя в системе Geo4me с указанным geo4me_user_id не реализована.
- geo4me-user-id — id пользователя в Geo4Me;
- active-map-user-id — id пользователя в ActiveMap.
// OUT <---
// в случае успеха
{
"res": 1, "resText": ""
}
- 404, если пользователь с таким active-map-user-id не существует;
- 400, если пользователь с таким geo4me-user-id уже привязан к другому пользователю ActiveMap;
- 400, если пользователь с таким active-map-user-id уже привязан к другому пользователю Geo4me;
- если привязка пользователя с geo4me-user-id к пользователю с active-map-user-id уже была произведена ранее, ошибки не происходит.
[IA] DELETE /geo4me/user/:geo4me-user-id/link/:active-map-user-id
Удалить связь между пользователем Geo4Me и пользователем ActiveMap.
Проверка на реальное существование пользователя в системе Geo4me с указанным geo4me_user_id не реализована.
- geo4me-user-id — id пользователя в Geo4Me;
- active-map-user-id — id пользователя в ActiveMap.
// OUT <---
// в случае успеха
{
"res": 1, "resText": ""
}
- 404, если пользователь с таким active-map-user-id не существует;
- 404, если пользователь с таким geo4me-user-id не существует (пользователь не был зарегистрирован в Cerebellum);
- 400, если пользователи не связаны.
[t] GET /geo4me/points
Получить точки всех пользователей в организации Geo4Me, к которой принадлежит текущий пользователь (на основе связки его организации в ActiveMap с организацией в Geo4Me).
// OUT <---
{
"res": 1, "resText": "",
"users": [
{ "id": 999, // id пользователя ActiveMap
"point": { // координаты местоположения пользователя
"lon": 50.0001, //координата longitude (долгота)
"lat": 50.0002 // координата latitude (широта)
}
}
]
}
- 400, если у текущего пользователя нет организации;
- 400, если организация текущего пользователя в ActiveMap не привязана к организации в Geo4Me;
- 401, необходима авторизация в системе Geo4me;
- 403, ошибка авторизации в системе Geo4me;
- 400, неверный запрос в систему Geo4me;
- 404, ответ на запрос на сервере Geo4me не найден;
- 500, внутренняя ошибка сервера Geo4me.
[t] GET /users/:active-map-user-id/geo4me
Получить пользователя Geo4me, связанного с пользователем ActiveMap с указанным active-map-user-id или null,
если связанного пользователя не существует.
Будет выдан пользователь Geo4me, зарегистрированный в Cerebellum.
Проверка на реальное существование пользователя в системе Geo4me не реализована.
- active-map-user-id — id пользователя в ActiveMap.
// OUT <---
{
"res": 1,
"resText": "",
"geo4me_user": {
"id": "1938", //id пользователя Geo4me
"active_map_user": { //данные пользователя ActiveMap
"id": "616", //id пользователя ActiveMap
"login": "tadm", //логин пользователя ActiveMap
"fio": "Администратор Отдела Тестирования T", //ФИО пользователя ActiveMap
"role_id": "10", //id роли пользователя ActiveMap
"department_id": "2" //id организации пользователя ActiveMap
}
}
}
- 404, если указанный пользователь ActiveMap не существует.