Формулировка проблемы: нет возможности получить заметки за определенный промежуток времени.
Решение: необходимо реализовать API-метод, который будет возвращать все заметки пользователя, период исполнения которых входит в указанный период времени.
URL метода: /rest/api/diary/tasks/{userID}/all
Тип запроса: GET
.
Метод принимает следующие входные параметры:
userID
- uuid
пользователя
(обяз.);
start
- дата начала периода, в формате
yyyy-MM-dd
(обяз.);
finish
- дата завершения периода, в формате
yyyy-MM-dd
(обяз.);
locale
(не обяз.) - код локали (при
отсутствии параметра используется
язык
системы по умолчанию).
Длина периода не может быть отрицательной и более 366 дней. Дата начала и дата завершения периода должны представлять собой корректную дату в указанном году (в том числе високосном) и месяце, т.е. даты типа 2016-05-51 и 2014-02-29 некорректны.
Метод возвращает список всех заметок пользователя, которые входят в
указанный промежуток времени (даты начала и завершения включаются в
промежуток времени). Список должен быть отсортирован по дате и
времени начала исполнения заметки (start
).
В случае успешного выполнения метод возвращает массив объектов
JSON
, состоящий из следующих полей:
taskID
- uuid
заметки;
task
- текст заметки;
start
- дата и время начала исполнения
заметки, в формате yyyy-MM-dd HH:mm:ss
;
finish
- дата и время завершения исполнения
заметки, в формате yyyy-MM-dd HH:mm:ss
.
Пример запроса:
rest/api/diary/tasks/8f60bf3b-0fff-11e9-bfb4-001ef892a4ee/all?start=2016-12-05&finish=2016-12-25
Пример возвращаемого массива:
[ { "taskID" : "e6fc40b0-9fe4-11e6-9ce4-001ef892a4ee", "task" : "заметка №1", "start" : "2016-12-05 10:00:00", "finish" : "2016-12-05 16:00:00" }, { "taskID" : "5dfc40b0-9fe4-11e6-9ce4-001ef892a4ee", "task" : "заметка №2", "start" : "2016-12-10 09:45:00", "finish" : "2016-12-10 12:00:00" }, { "taskID" : "21sdd1sb0-9fe4-11e6-9ce4-001ef892a4ee", "task" : "заметка №3", "start" : "2016-12-20 09:00:00", "finish" : "2016-12-20 18:00:00" }, { "taskID" : "11lc40b0-5fkh-11e6-9ce4-001ef892a4ee", "task" : "заметка №4", "start" : "2016-12-25 09:00:00", "finish" : "2016-12-25 18:00:00" } ]
Альтернативные потоки событий
Альтернативный поток №1. Не передан параметр
start
. Сервер возвращает ошибку HTTP 400 c
cообщением:
{ "errorCode": 3, "errorMessage": "Не передан параметр start" }
действие не выполняется.
Альтернативный поток №2. Не передан параметр
finish
. Сервер возвращает ошибку HTTP 400 c
cообщением:
{ "errorCode": 3, "errorMessage": "Не передан параметр finish" }
действие не выполняется.
Альтернативный поток №3. Передан период с некорректной длительностью - меньше нуля или больше 366. Сервер возвращает ошибку HTTP 400 с сообщением:
{ "errorCode": 3, "errorMessage": "Передано некорректное значение периода: отрицательное либо больше 366 дней" }
действие не выполняется.
Альтернативный поток №4. Передан некорректный параметр
start
: несуществующая дата, такой даты нет в
указанном году (в том числе високосном) или месяце. Сервер
возвращает ошибку HTTP 400 с сообщением:
{ "errorCode": 3, "errorMessage": "Передан некорректный параметр start" }
действие не выполняется.
Альтернативный поток №5. Передан некорректный параметр
finish
: несуществующая дата, такой даты нет в
указанном году (в том числе високосном) или месяце. Сервер
возвращает ошибку HTTP 400 с сообщением:
{ "errorCode": 3, "errorMessage": "Передан некорректный параметр finish" }
действие не выполняется.
Альтернативный поток №6. Не передан или передан некорректный
(несуществующий) параметр userID
. Сервер
возвращает ошибку HTTP 400 с сообщением:
{ "errorCode": 3, "errorMessage": "Не передан или передан некорректный параметр userID" }
действие не выполняется.