Приложение taskmanager представляет собой API сервис, позволяющий пользователям назначать и исполнять задачи.
Участники системы:
-Администратор -Пользователь
Тезаурус действий администратора расширен возможностью создания, удаления и изменения пользователей относительно полномочий пользователя.
Базовые действия участников в системе:
-Относительно задач -Как создатель задачи
-
Назначить задачу коллеге (данное действие подразумевает, что пользователь, которому назначается задача, является ассоциированным партнером создателя задачи).
-
Назначить задачу по членству в группе (данное действие подразумевает, что пользователь, которому назначается задача, состоит в одной группе с создателем задачи).
-
Удалить задачу (данное действие подразумевает, что пользователь, которому была назначена задача, не приступил к выполнению данной задачи).
-Как исполнитель задачи
- Начать выполнение задачи
- Поставить задачу на паузу
- Поставить задачу на исполнение
- Завершить задачу
- Удалить задачу (данное действие, в отличии от создателя задачи, исполнитель может произвести на любой стадии выполнения задачи)
Относительно групп:
- Создать группу
- Переименовать группу (как администратор группы: права администратора группы назначаются создателю группы)
- Удалить группу(как администратор группы)
Относительно пользователей в группах:
- Пригласить пользователя в группу
- Принять приглашение в группу
- Отколнить приглашение в группу
- Выйти из группы
- Удалить пользователя из группы(только администратор группы)
Концептуальная схема данных:
Примечание: Булевы атрибуты в концептуальной схеме данных представлены именем существительным с последующим вопросительным знаком.
-
Сущность “пользователи” представляет собой пользователей в системе и состоит из следующих атрибутов:
1) Идентификатор пользователя 2) Идентификатор прав пользователя 3) Логин пользователя 4) Пароль пользователя 5) Имя пользователя 6) Фамилия пользователя -
Сущность “права пользователей” представляет собой права пользователей в системе и состоит из следующих атрибутов:
1) Идентификатор прав пользователя 2) Наименование прав пользователя -
Сущность “токены” вкупе с логином и паролем пользователя из сущности “пользователи” представляет собой единицы аутентификации, каждая из которых принадлежит определенному пользователю и используется при каждом взаимодействии пользователя с системой. Состоит из следующих атрибутов:
1) идентификатор токена 2) идентификатор пользователя 3) значение токена 4) срок окончания действия токена в формате unix timestamp -
Сущность “Задачи” представляет собой определяемые пользователями задачи и состоит из следующих атрибутов:
1) Идентификатор задачи 2) Идентификатор создателя задачи 3) Идентификатор статуса задачи 4) Идентификатор исполнителя задачи 5) Уникальный ключ задачи 6) Название задачи 7) Описание задачи 8) Дата создания задачи в формате unix timestamp 9) Дата первой постановки задачи на исполнение формате unix timestamp 10) Дата последней постановки задачи на исполнение в формате unix timestamp 11) Дата завершения задачи в формате unix timestamp -
Сущность “Статусы задач” представляет собой статусы исполнения (активная задача, на паузе, завершенная) задачи и состоит из следующих атрибутов:
1) Идентификатор статуса задачи 2) Наименование статуса задачи -
Сущность “Группы” представляет собой пользовательские группы в системе и состоит из следующих атрибутов:
1) Идентификатор группы 2) Наименование группы -
Сущность “Пользовательские ассоциации” представляет собой сущность, содержащую пользователей, которые являеются коллегами и запросы на сотрудничество другим пользователям. Состоит из следующих атрибутов:
1) Идентификатор ассоциации 2) Идентификатор первого пользователя 3) Идентификатор второго пользователя 4) Статус сотрудничества -
Сущность “Пользователи в группах” представляет собой сущность, отражающую членство определенных пользователей в определенных группах . Состоит из следующих атрибутов:
1) Идентификатор сущности 2) Идентификатор пользователя 3) Идентификатор группы 4) Администратор? 5) Статус пользователя
Физическая схема данных:
Используемая СУБД – postgresql
users:
CREATE TABLE users(
user_id SERIAL PRIMARY KEY,
user_rights_id INTEGER NOT NULL,
user_login VARCHAR(255) UNIQUE NOT NULL,
user_password VARCHAR(255) NOT NULL,
user_email VARCHAR(255) UNIQUE,
user_name VARCHAR(255),
user_surname VARCHAR(255),
FOREIGN KEY(user_rights_id) REFERENCES user_rights(user_rights_id)
);
user_rights:
CREATE TABLE user_rights(
user_rights_id SERIAL PRIMARY KEY,
user_rights_name VARCHAR(255) UNIQUE NOT NULL
);
tokens:
CREATE TABLE tokens(
token_id SERIAL PRIMARY KEY,
user_id INTEGER NOT NULL,
token_key VARCHAR(255) UNIQUE NOT NULL,
token_untill INTEGER NOT NULL,
FOREIGN KEY(user_id) REFERENCES users(user_id) ON DELETE CASCADE
);
tasks:
CREATE TABLE tasks(
task_id SERIAL PRIMARY KEY,
formulator_id INTEGER NOT NULL,
executor_id INTEGER NOT NULL,
task_status_id INTEGER NOT NULL,
task_key VARCHAR(255) UNIQUE NOT NULL,
task_name VARCHAR(255) NOT NULL,
task_description TEXT,
task_create_timestamp INTEGER NOT NULL DEFAULT EXTRACT (EPOCH FROM NOW()),
task_first_processing_timestamp INTEGER DEFAULT 0 CHECK ((task_first_processing_timestamp > task_create_timestamp AND task_first_processing_timestamp != 0) OR (task_first_processing_timestamp = 0)),
task_last_processing_timestamp INTEGER DEFAULT 0 CHECK ((task_last_processing_timestamp > task_first_processing_timestamp AND task_last_processing_timestamp != 0) OR (task_last_processing_timestamp = 0)),
task_end_timestamp INTEGER DEFAULT 0,
FOREIGN KEY(formulator_id) REFERENCES users(user_id),
FOREIGN KEY(executor_id) REFERENCES users(user_id),
FOREIGN KEY(task_status_id) REFERENCES task_statuses(task_status_id)
);
task_statuses:
CREATE TABLE task_statuses(
task_status_id SERIAL PRIMARY KEY,
task_status_name VARCHAR(255) UNIQUE NOT NULL
);
groups:
CREATE TABLE groups(
group_id SERIAL PRIMARY KEY,
group_name VARCHAR(255) UNIQUE NOT NULL
);
users_associates
CREATE TABLE users_associates(
users_associate_id SERIAL PRIMARY KEY,
user_one_id INTEGER NOT NULL,
user_two_id INTEGER NOT NULL,
associate_status VARCHAR(25) NOT NULL,
FOREIGN KEY(user_one_id) REFERENCES users(user_id) ON DELETE CASCADE,
FOREIGN KEY(user_two_id) REFERENCES users(user_id) ON DELETE CASCADE
);
users_per_groups
CREATE TABLE users_per_groups(
user_per_group_id SERIAL PRIMARY KEY,
user_id INTEGER NOT NULL,
group_id INTEGER NOT NULL,
FOREIGN KEY(user_id) REFERENCES users(user_id) ON DELETE CASCADE,
FOREIGN KEY(group_id) REFERENCES groups(group_id) ON DELETE CASCADE
);
Действия:
Для всех пользовательских действий определены следующие заголовки запроса:
“Content-Type: application/json” “accept:json” “Authorization: %authorization_key%”
Единственным исключением является аутентификация пользователя, которая не требует заголовка аутентификации.
Для всех методов приложения, требующих параметры запросы, присылаемые в теле или параметрах запроса, в случае несовпадения ожидаемых параметров и фактических, определен следующий формат ответа:
{ “error:”Ошибка: Параметр %param_name% не является валидным для данного запроса” }
Для всех методов приложения, ожидающих тело запроса, и если таковое является пустым, определен следующий формат ответа: { “error”:”Ошибка: Пустое или некорректное тело запроса” }
- Аутентификация:
Примечание: При запуске приложения в docker, shell скрипт добавляет в бд пользователя с правами администратора с логином some111 и паролем 111
1.1) аутентификация пользователя
Формат данных запроса:
{
“user_login”:”%user_login%”,
”user_password”:”%user_password%”}
Метод: POST
url – http://hostname/authentication/login
Ответы:
а) Операция произведена успешно:
{
“message”:”Аутентификация прошла успешно”,
“token_key”:”%token_key%”
}
б) Операция произведена неудачно:
{
“message”:”Неправильный логин или пароль”
}
1.2) Выход из системы
Метод: POST
url – http://hostname/authentication/logout
Используется заголовок аутентификации
Ответы:
а) {
“message”:”Выход произведен успешно”
}
б) {
“error”:”Вы не аутентифицированы”
}
2.Пользователь
2.1 Создать пользователя
Метод: POST
url – http://hostname/user/createuser
Формат данных запроса:
{
“user_login”:”%user_login%”,
“user_password”:”%user_password%”,
“user_rights_name”:”%user_rights_name%”,
“user_email”:”%user_email%”
“user_name”:”%user_name%”,
“user_surname”:”%user_surname%”,
}
Ответы:
В случае успеха:
{
“message”:”Пользователь успешно создан”
},
В случае, если пользователь с данных логином уже существует в системе:
{
“error”:”Данный пользователь уже существует в системе”
},
Если не указаны требумые параметры тела запроса user_login или user_password:
{
“error”:”Ошибка: Ожидаемый параметр user_login/user_password не найден в теле запроса”
}
Примечание: Параметр user_rights_name используется для указания прав доступа пользователя и може принимать два строковых значения: “admin” и “user”. При отсутствии данного параметра в теле запроса, по умолчанию используется значение “user”.
2.2) Изменить логин пользователя
Метод: PATCH
url – http://hostname/user/changeuserlogin
Данные запроса
{
“user_login”:”%user_login%”,
“updatable_params”:
{
“new_user_login”:”%new_user_login%”
}
}
Ответы:
В случае успеха:
{
“message”:”Логин пользователя успешно изменен”
}
В случае, если искомый пользователь не найден:
{
“error”:”Пользователь не найден”
},
В случае, если новый логин пользователя идентичен текущему логину пользователя
{
“message”:”Логин пользователя идентичен текущему”
},
В случае, если новый логин пользователя идентичен логину иного пользователя в системе
{
“error”:”Пользователь с данным логином уже определен в системе”
}
2.3) Изменить пароль пользователя
Метод: PATCH
url – http://hostname/user/changeuserpassword
Данные запроса
{
“user_login”:”%user_login%”,
“updatable_params”:
{
“new_user_password”:”%new_user_password%”
}
}
Ответы:
В случае успеха:
{
“message”:”Пароль пользователя успешно изменен”
}
В случае, если пользователь не найден:
{
“error”:”Пользователь не найден”
}
В случае, если новый пароль пользователя идентичен текущему паролю
{
“message”:”Новый пароль пользователя не может совпадать с текущим”
}
2.4) Изменить имя/фамилию пользователя
Метод: PATCH
url – http://hostname/user/changeuserfullname
Данные запроса:
{
"user_login":"%user_login%",
"updatable_params":
{
"new_user_name":"%new_user_name%",
"new_user_surname":"%new_user_password%"
}
}
Ответы:
В случае успеха:
{
“message”:”Пользователь успешно обновлен”
}
В случае, если пользователь не найден:
{
“error”:”Пользователь не найден”
}
В случае, если новые имя и фамилия пользователя идентичны текущему имени и фамилии:
{
“message”:”Параметры обновления идентичны текущим параметрам пользователя”
}
2.5) Удалить пользователя
Метод: DELETE
url – http://hostname/user/deleteuser
Данные запроса
{
“user_login”:”%user_login%”
}
Ответы:
В случае успеха:
{
“message”:”Пользователь успешно обновлен”
}
В случае, если пользователь не найден:
{
“error”:”Пользователь не найден”
}
- Группы
3.1) Создать группу
Метод: POST
url – http://hostname/group/creategroup
Данные запроса:
{
“group_name”:”%group_name%”
}
Ответы:
В случае успеха:
{
“message”:”Группа успешно создана”
}
В случае, если группа с данным именем уже определена в системе
{
“error”:”Данная группа уже существует”
}
В случае, если имя группы является пустым:
{
“error”:”Название группы не может быть пустым”
}
3.2) Переименовать группу
Метод: PATCH
url – http://hostname/group/renamegroup
Данные запроса
{
“group_name”:”%group_name%”,
“new_group_name”:”%new_group_name%”
}
Ответы:
В случае успеха:
{
“message”:”Название группы успешно изменено”
}
В случае, если группа не найдена:
{
“error”:”Группа не найдена”
},
В случае, если пользователь не является членом группы:
{
“error”:”Вы не являетесь членом группы”
}
В случае, если пользователь не является администратором группы:
{
“error”:”Вы не являетесь администратором группы”
}
3.3) Удалить группу
Метод: DELETE
url – http://hostname/group/deletegroup
Данные запроса:
{
“group_name”:”%group_name%”
}
Ответы:
В случае успеха:
{
“message”:”Группа успешно удалена”
}
В случае, если группа не найдена:
{
“error”:”Группа не найдена”
}
В случае, если пользователь не является членом группы:
{
“error”:”Вы не являетесь членом группы”
}
В случае, если пользователь не является администратором группы:
{
“error”:”Вы не являетесь администратором группы”
}
- Пользовательские ассоциации
4.1) Отправить запрос на сотрудничество
Метод: POST
url – http://hostname/usersassociate/send
Данные запроса:
{
“receiving_login”:”%user_login%”
}
Ответы:
В случае успеха:
{
“message”:”Запрос на сотрудничество отправлен пользователю”
}
В случае, если запрос на сотрудничество был ранее отправлен этому же пользователю или если пользователи являются коллегами:
{
“error”:”Вы уже посылали запрос данному пользователю или являетесь коллегами”
}
В случае, если пользователь послал запрос на сотрудничество самому себе:
{
“error”:”Невозможно послать запрос на сотрудничество самому себе”
}
В случае, если пользователь не найден:
{
“error”:”Пользователь не найден”
}
4.2) Принять запрос на сотрудничество:
Метод: POST
url – http://hostname/usersassociate/accept
Данные запроса
{
“requesting_login”:”%user_login%”
}
Ответы:
В случае успеха:
{
“message”:”Вы приняли запрос на сотрудничество”
}
В случае, если пользователи являются коллегами:
{
“error”:”Вы уже являетесь коллегами”
},
В случае, если пользователь не отправлял запрос на сотрудничество:
{
“error”:”Данный пользователь не отправлял вам запрос на сотрудничество”
}
В случае, если пользователь не найден в системе:
{
“error”:”Пользователь не найден”
}
4.3) Отклонить запрос на сотрудничество:
Метод: POST
url – http://hostname/usersassociate/deny
Данные запроса
{
“requesting_login”:”user_login”
}
Ответы:
В случае успеха:
{
“message”:”Запрос на сотрудничество отклонен”
}
В случае, если запрос на сотрудничество не найден:
{
“error”:”Данный пользователь не посылал вам запрос на сотрудничество”
}
В случае, если пользователь не найден:
{
“error”:”Пользователь не найден”
}
4.4) Удалить пользователя из списка колллег:
Метод: DELETE
url – http://hostname/usersassociate/removeassociate
Данные запроса:
{
“target_user_login”:”%user_login%”
}
Ответы:
В случае успеха:
{
“message”:”Пользователь удален из списка ваших коллег”
}
В случае, если вы не являетесь коллегами или запрос на сотрудничество не был принят одной из сторон:
{
“error”:”Вы не являетесь коллегами”
}
В случае, если пользователь не найден:
{
“error”:”Пользователь не найден”
}
- Взаимодействие пользователей с группами:
5.1) Пригласить пользователя в группу:
Метод: POST
url – http://hostname/userpergroup/inviteusertogroup
Данные запроса:
{
“user_login”:”%user_login%”,
“group_name”:”%group_name%”
}
Ответы:
В случае успеха:
{
“message”:”Пользователь приглашен”
}
В случае, если приглашаемый пользователь был приглашен ранее или является членом группы:
{
“error”:”Данный пользователь либо уже приглашен, либо является членом группы”
}
В случае, если осуществляющий запрос пользователь не является членом группы:
{
“error”:”Вы не являетесь членом данной группы”
}
В случае, если пользователь не найден:
{
“error”:”Пользователь не найден”
}
5.2) Принять запрос на приглашение в группу:
Метод: POST
url – http://hostname/userpergroup/acceptinvitetogroup
Данные запроса:
{
“group_name”:”%group_name%”
}
Ответы:
В случае успеха:
{
“message”:”Теперь вы член группы”
}
В случае, если пользователь является членом группы:
{
“error”:”Приглашение недействительно: Вы являетесь членом группы”
}
В случае, если пользователь не был приглашен в группу:
{
“error”:”Вы не были приглашены в группу”
}
В случае, если группа не найдена:
{
“error”:”Группа не найдена”
}
5.3) Отклонить запрос на приглашение в группу:
Метод: POST
url – http://hostname/userpergroup/denyinvitetogroup
Данные запроса:
{
“group_name”:”%group_name%”
}
Ответы:
В случае успеха:
{
“message”:”Приглашение в группу отклонено”
}
В случае, если пользователь не был приглашен в группу:
{
“error”:”Вы не были приглашены в группу”
}
В случае, если пользователь является членом группы
{
“error”:”Приглашение в группу недействительно: Вы являетесь членом группы’
}
В случае, если группа не найдена:
{
“error”:”Группа не найдена”
}
5.4) Выйти из группы:
Метод: DELETE
url – http://hostname/userpergroup/exitfromgroup
Данные запроса
{
“group_name”:”%group_name%”
}
Ответы:
В случае успеха:
{
“message”:”Выход из группу осуществлен”
}
В случае, если пользователь не был приглашен в группу или не принял запрос на приглашение в группу:
{
“message”:”Вы не были приглашены в группу”
}
В случае, если группа не была найдена:
{
“message”:”Группа не найдена”
}
- Сформулированные задачи
6.1) Создать задачу для коллеги:
Метод: POST
url – http://hostname/task/formulatetaskforassociate
Данные запроса:
{
"executor_login":"%user_login%",
"task_params":{
"task_name":"%task_name%",
"task_description":"%task_description%"
}
}
Ответы:
В случае успеха:
{
“message”:”Задача успешно создана”,
“task_key”:”%task_key%”
}
В случае, если пользователи не являются коллегами:
{
“error”:”Вы не можете назначить задачу пользователю, не являясь коллегами”
}
В случае, если пользователь не найден:
{
“error”:”Пользователь не найден”
}
6.2) Создать задачу пользователю, состоящим в одной группе с создателем задачи:
Метод: POST
url – http://hostname/task/formulatetaskbygroup
Данные запроса:
{
"executor_login":"%user_login%",
"group_name":"%group_name%",
"task_params":{
"task_name":"%task_name%",
"task_description":"%task description%"
}
}
Ответы:
В случае успеха:
{
“message”:”Задача успешно создана”,
“task_key”:”%task_key%”
}
В случае, если пользователи не состоят в одной группе или группы не существует:
{
“error”:”Вы не состоите с пользователем в одной группе или группы не существует”
}
В случае, если пользователя не существует:
{
“error”:”Пользователь не найден”
}
6.3) Получить информацию о созданной задаче:
Метод: GET
url – http://hostname/task/{task_key}
Ответы:
В случае успеха:
{
“executor_login”:”%user_login%”,
“task_create_date”:”Дата постановки задачи %YYY:MM:DD HH:II:SS%”,
“task_status”:”Статус задачи %task_status%”
}
В случае, если задачи не существует:
{
“error”:”Задача не найдена”
}
6.4) Удалить созданную задачу:
Метод: DELETE
url – http://hostname/task/dropformulatedtask
Данные запроса:
{
“task_key”:”%task_key%”
}
Ответы:
В случае успеха:
{
“message”:”Задача успешно удалена”
}
В случае, если исполнитель задачи начал выполнять задачу:
{
“error”:”Невозможно отозвать поставленную на выполнение задачу”
}
В случае, если задача не найдена:
{
“error”:”Задача не найдена”
}
- Порученные задачи
7.1) Инициализировать задачу на выполнение:
Метод: POST
url – http://hostname/task/inittask
Данные запроса:
{
“task_key”:”%task_key%”
}
Ответы:
В случае успеха:
{
“message”:”Задача поставлена на исполнение”
}
В случае, если задачи уже инициализирована на выполнение:
{
“error”:”Задача уже инициализирована на выполнение”
}
В случае, если задача завершена:
{
“error”:”Невозможно инициализировать завершенную задачу”
}
В случае, если задача не найдена:
{
“error”:”Задача не найдена”
}
7.2) Поставить задачу на паузу:
Метод: POST
url – http://hostname/task/stoptask
Данные запроса:
{
“task_key”:”%task_key%”
}
Ответы:
В случае успеха:
{
“message”:”Задача поставлена на паузу”
}
В случае, если задача уже на паузе:
{
“error”:”Задача уже поставлена на паузу”
}
В случае, если задача не инициализирована:
{
“error”: “Задача еще не начата”
}
В случае, если задача завершена:
{
“error”:”Задача уже завершена”
}
В случае, если задача не найдена:
{
“error”:”Задача не найдена”
}
7.3) Возобновить выполнение задачи:
Метод: POST
url – http://hostname/task/starttask
Данные запроса;
{
“task_key”:”%task_key%”
}
Ответы:
В случае успеха:
{
“message”:”Задача поставлена на исполнение”
}
В случае, если задача уже находится на исполнении:
{
“error”:”Задача уже на исполнении”
}
В случае, если задача не инициализирована:
{
“error”:”Невозможно начать неинициализированную задачу”
}
В случае, если задача завершена:
{
“error”:”Невозможно возобновить завершенную задачу”
}
В случае, если задача не найдена:
{
“error”:”Задача не найдена”
}
7.4) Завершить задачу:
Метод: POST
url – http://hostname/task/completetask
Данные запроса:
{
“task_key”:”%task_key%”
}
Ответы:
В случае успеха:
{
“message”:”Задача успешно завершена”
}
В случае, если задача уже была завершена:
{
“error”:”Задача уже завершена”
}
В случае, если задача не была инициализирована на выполнение:
{
“error”:”Невозможно завершить неинициализированную задачу”
}
В случае, если задача не найдена:
{
“error”:”Задача не найдена”
}
7.5) Удалить задачу:
Метод: DELETE
url – http://hostname/task/droptask
Данные запроса:
{
“task_key”:”%task_key%”
}
Ответы:
В случае успеха:
{
“message”:”Задача успешно удалена”
}
В случае, если задача не найдена:
{
“error”:”Задача не найдена”
}
Далее последует описание методов, ориентированных на получение срезов данных. Для всех таких методов (кроме получения входящих запросов на сотрудничество и списка коллег), определен параметр запроса page, который должен быть целым положительным числом. В случае, если параметр page не удовлетворяет данному условию, то система завершить выполнение с ошибкой и следующим ответом:
{ “validation_error”:”Номер страницы должен быть целым положительным числом” }
- Работа с пользователями:
8.1) Получить пользователей в системе:
Метод: GET
url – http://hostname/users/getusers
Ответы:
В случае успеха:
1) [
{
“user_login”:”%user_login%”,
“user_rights_name”:”%user_rights_name%”
},
“user_login”:”%user_login%”,
“user_rights_name”:”%user_rights_name%”
….
]
2) {
“message”:”Пользователи не найдены”
}
8.2) Получить пользователей с определенными правами доступа в системе:
Метод: GET
url – http://hostname/users/getusersbystatus/{%status_name%}
Ответы:
В случае успеха:
1) [
{
“user_login”:”%user_login%”,
“user_rights_name”:”%user_rights_name%”
},
{
“user_login”:”%user_login%”,
“user_rights_name”:”%user_rights_name%”
}
….
]
2) {
“message”:”Не найдены пользователи со статусом %user_status%”
}
8.3) Получить пользователей по группе:
Метод: GET
url – http://hostname/users/getusersbygroup/{%group_name%}
Ответы:
В случае успеха:
1) [
{
“user_login”:”%user_login%”,
“user_rights_name”:”%user_rights_name%”
},
{
“user_login”:”%user_login%”,
“user_rights_name”:”%user_rights_name%”
}
….
]
2) {
“message”:”В данной группе нет пользователей”
}
3) {
“message”:”В данной группе больше нет пользователей”
}
8.4) Получить входящие запросы на сотрудничество:
Метод: GET
url – http://hostname/users/getinrequestsonassociate
Ответы:
В случае успеха:
1) [
{
“user_login”:”%user_login%”,
“user_login”:”%user_login%”,
….
}
]
2) {
“message”:”У вас нет входящих запросов на сотрудничество”
}
8.5) Получить исходящие запросы на сотрудничество:
Метод: GET
url – http://hostname/users/getoutrequestsonassociate
Ответы:
В случае успеха:
1) [
{
“user_login”:”%user_login%”,
“user_login”:”%user_login%”,
….
}
]
2) {
“message”:”У вас нет исходящих запросов на сотрудничество”
}
8.6) Получить список коллег:
Метод: GET
url – http://hostname/users/getassociatedusers
Ответы:
В случае успеха:
1) [
{
“user_login”:”%user_login%”,
“user_login”:”%user_login%”
}
]
2) {
“message”:”Коллеги не найдены”
}
- Работа с задачами:
9.1) Получить список созданных задач
Метод: GET
url – http://hostname/tasks/getformulatedtasks
Параметры запроса:
task_status=%task_status%
Параметр task_status может принимать следующие значения: not_started, processing, stopped, complete. В случае отсутствия данного параметра, производится поиск всех созданных задач.
Ответы:
В случае успеха:
1) [
{
“task_key”:”%task_key%”,
“task_name”:”%task_name%”,
“executor”:”%user_login%”,
“task_status_name”:”%task_status_name%”
}
]
2) {
“message”:”Задачи не найдены”
}
3) Если не найдены неинициализированные задачи (task_status_name=not_started):
{
“message”:”Не начатые задачи не найдены”
}
4) Если не найдены активные задачи (task_status_name=processing):
{
“message”:”Активные задачи не найдены”
}
5) Если не найдены поставленные на паузу задачи (task_status_name=paused):
{
“message”:”Задачи, поставленные на паузу, не найдены”
}
6) Если не найдены завершенные задачи (task_status_name=complete)
{
“message”:”Завершенные задачи не найдены”
}
9.2) Получить список порученных задач:
Метод: GET
url – http://hostname/tasks/getentrustedtasks
Ответы:
В случае успеха:
1) [
{
“task_key”:”%task_key%”,
“task_name”:”%task_name%”,
“executor”:”%user_login%”,
“task_status_name”:”%task_status_name%”
}
]
2) {
“message”:”Задачи не найдены”
}
3) Если не найдены неинициализированные задачи (task_status_name=not_started):
{
“message”:”Не начатые задачи не найдены”
}
4) Если не найдены активные задачи (task_status_name=processing):
{
“message”:”Активные задачи не найдены”
}
5) Если не найдены поставленные на паузу задачи (task_status_name=paused):
{
“message”:”Задачи, поставленные на паузу, не найдены”
}
6) Если не найдены завершенные задачи (task_status_name=complete)
{
“message”:”Завершенные задачи не найдены”
}