Приложение считывает все данные из соответствующих CSV-файлов (разделитель – запятая) при старте приложения.
Имя файла с исходными данными передаётся приложению с ключом --tasks-file
Id,Title,RegistrationDateTime,StartDateTime,EndDateTime,Importance,Urgency,Percentage,Description,Category
8b2a4482-35c8-411e-aab9-6ce490b3bea1,Задача № 1,2024-01-01T00:00:00.0,2024-01-01T00:00:00.0,,Очень низкий,false,100,задача,10c50d8a-fc9e-45ba-b303-7a623f4c699b
ec247f48-f86c-45c8-ab2f-7510e4640052,Задача № 2,2024-01-02T00:00:00.0,2024-01-02T00:00:00.0,2024-01-06T00:00:00.0,Очень низкий,false,0,задача,10c50d8a-fc9e-45ba-b303-7a623f4c699b
b0d29fa9-cfd4-41e2-9753-f9b5f40e9811,Задача № 3,2024-01-03T00:00:00.0,2024-01-03T00:00:00.0,2024-01-04T00:00:00.0,Критический,true,90,задача,10c50d8a-fc9e-45ba-b303-7a623f4c699b
a89723c3-0bfe-41b1-b7b9-db67a8c4708a,Задача № 4,2024-01-04T00:00:00.0,2024-01-04T00:00:00.0,,Очень низкий,false,0,задача,10c50d8a-fc9e-45ba-b303-7a623f4c699b
5bdb77b9-3a66-4217-b6fe-2eaaf9e54200,Задача № 5,2024-01-05T00:00:00.0,2024-01-05T00:00:00.0,,Высокий,false,70,задача,10c50d8a-fc9e-45ba-b303-7a623f4c699b
2aeaf2b4-ad18-4686-a69c-9d9baa34fe69,Задача № 6,2024-01-06T00:00:00.0,2024-01-06T00:00:00.0,,Очень низкий,true,5,задача,10c50d8a-fc9e-45ba-b303-7a623f4c699b
Имя файла с исходными данными передаётся приложению с ключом --categories-file
Id,Description,Color
10c50d8a-fc9e-45ba-b303-7a623f4c699b,Учебные задачи,BLACK
Приложение запускается с помощью системы сборки Gradle, обязательные параметры:
--tasks-file
– имя файла с данными приложения--categories-file
– имя файла с данными приложения--port
– порт, по которому доступен веб-сервер./gradlew run --args="--tasks-file ../sample-data/tasks.csv --categories-file ../sample-data/categories.csv --port 9000"
Веб-сервер запускается и работает только при получении корректных значений всех параметров. При некорректном значении хотя бы одного параметра приложение выводит соответствующее сообщение об ошибке и завершает работу с ненулевым кодом возврата.
Error: missing option --tasks-file
Error: file not found «abc.csv»
Список упорядочен по возрастанию даты и времени регистрации и id.
page | integer >= 1 Default: 1 Example: page=1 Номер страницы. Если номер превышает максимально возможный, приложение возвращает пустой список. Если номер передан и не является натуральным числом, приложение возвращает сообщение об ошибке. |
records-per-page | integer Default: 10 Enum: 5 10 20 50 Example: records-per-page=10 Количество записей на странице. Если количество передано и не входит в указанный набор значений, приложение возвращает сообщение об ошибке. |
[- {
- "Id": "de42a00f-7f43-4d10-808d-bee47fdeef49",
- "Title": "Лабоработная № 3",
- "IsClosed": false
}
]
Отсутствие необязательных параметров подразумевает, что поля заполняются значениями по умолчанию.
Идентификатор задачи генерируется уникальным.
Title required | string Название задачи (не может быть пустым) |
RegistrationDateTime | string <date-time> Default: "текущая дата и время" Дата и время регистрации задачи в системе |
StartDateTime | string <date-time> Default: "RegistrationDateTime" Дата и время начала задачи |
EndDateTime | string or null <date-time> Default: null Дата и время планового окончания задачи |
Importance | string Default: "Обычный" Enum: "Очень низкий" "Низкий" "Обычный" "Высокий" "Очень высокий" "Критический" Приоритет задачи |
Urgency | boolean Default: false Срочность задачи |
Percentage | integer [ 0 .. 100 ] Default: 0 Процент выполнения задачи |
Description | string Default: "" Описание задачи |
Category required | string or null <UUID> Категория задачи (соответствует |
{- "Title": "Лабоработная № 3",
- "RegistrationDateTime": "2024-01-01T00:00:00",
- "StartDateTime": "2024-10-01T00:00:00",
- "EndDateTime": "2025-01-01T00:00:00",
- "Importance": "Очень низкий",
- "Urgency": true,
- "Percentage": 90,
- "Description": "реализовать приложение для лабораторной № 3",
- "Category": "10c50d8a-fc9e-45ba-b303-7a623f4c699b"
}
{- "Id": "de42a00f-7f43-4d10-808d-bee47fdeef49"
}
Получение полной информации о задаче по идентификатору задачи
task-id required | string <UUID> Example: de42a00f-7f43-4d10-808d-bee47fdeef49 идентификатор задачи |
{- "Id": "de42a00f-7f43-4d10-808d-bee47fdeef49",
- "Title": "Лабоработная № 3",
- "RegistrationDateTime": "2024-01-01T00:00:00",
- "StartDateTime": "2024-10-01T00:00:00",
- "EndDateTime": "2025-01-01T00:00:00",
- "Importance": "Очень низкий",
- "Urgency": true,
- "Percentage": 90,
- "Description": "реализовать приложение для лабораторной № 3",
- "IsClosed": false,
- "Category": "10c50d8a-fc9e-45ba-b303-7a623f4c699b",
- "CategoryDescription": "Учебные задачи"
}
Отсутствие необязательных параметров подразумевает, что поля не изменяются.
task-id required | string <UUID> Example: de42a00f-7f43-4d10-808d-bee47fdeef49 идентификатор задачи |
Title required | string Название задачи (не может быть пустым) |
RegistrationDateTime | string <date-time> Дата и время регистрации задачи в системе |
StartDateTime | string <date-time> Дата и время начала задачи |
EndDateTime | string or null <date-time> Дата и время планового окончания задачи |
Importance | string Enum: "Очень низкий" "Низкий" "Обычный" "Высокий" "Очень высокий" "Критический" Приоритет задачи |
Urgency | boolean Срочность задачи |
Percentage | integer [ 0 .. 100 ] Процент выполнения задачи |
Description | string Описание задачи |
Category required | string or null <UUID> Категория задачи (соответствует |
{- "Title": "Лабоработная № 3",
- "RegistrationDateTime": "2024-01-01T00:00:00",
- "StartDateTime": "2024-10-01T00:00:00",
- "EndDateTime": "2025-01-01T00:00:00",
- "Importance": "Очень низкий",
- "Urgency": true,
- "Percentage": 90,
- "Description": "реализовать приложение для лабораторной № 3",
- "Category": "10c50d8a-fc9e-45ba-b303-7a623f4c699b"
}
{- "Value": "{",
- "Error": "Missing a name for object member."
}
Обязательно должен быть передан хотя бы один из параметров.
Список упорядочен по возрастанию даты и времени регистрации и id.
important | boolean Example: important=true Важность задачи.
|
urgent | boolean Example: urgent=true Срочность задачи |
page | integer >= 1 Default: 1 Example: page=1 Номер страницы. Если номер превышает максимально возможный, приложение возвращает пустой список. Если номер передан и не является натуральным числом, приложение возвращает сообщение об ошибке. |
records-per-page | integer Default: 10 Enum: 5 10 20 50 Example: records-per-page=10 Количество записей на странице. Если количество передано и не входит в указанный набор значений, приложение возвращает сообщение об ошибке. |
[- {
- "Id": "de42a00f-7f43-4d10-808d-bee47fdeef49",
- "Title": "Лабоработная № 3",
- "Importance": "Очень низкий",
- "Urgency": true,
- "Percentage": 90
}
]
Получение списка задач, для которых дата и время начала меньше переданных и процент выполнения меньше 100%.
Список упорядочен по убыванию приоритета (Importance), убыванию срочности (Urgency), возрастанию даты регистрации и id.
time required | string <date-time> Example: time=2024-01-03T00:00:00.0 Дата и время в формате ISO |
page | integer >= 1 Default: 1 Example: page=1 Номер страницы. Если номер превышает максимально возможный, приложение возвращает пустой список. Если номер передан и не является натуральным числом, приложение возвращает сообщение об ошибке. |
records-per-page | integer Default: 10 Enum: 5 10 20 50 Example: records-per-page=10 Количество записей на странице. Если количество передано и не входит в указанный набор значений, приложение возвращает сообщение об ошибке. |
[- {
- "Id": "de42a00f-7f43-4d10-808d-bee47fdeef49",
- "Title": "Лабоработная № 3",
- "Importance": "Очень низкий",
- "Urgency": true,
- "Percentage": 90
}
]
Получение статистической информации по дням недели переданного параметры даты.
Значение null
сопоставляется дню недели Не заполнено
.
Список упорядочен последовательно по дню недели, «Не заполнено» (при наличии) в конце. Дни недели, для которых нет данных, пропущены.
by-date required | string Enum: "registration" "start" "end" Example: by-date=registration Тип запрашиваемой статистики.
|
{- "StatisticsByRegistrationDateTime": {
- "Понедельник": 1,
- "Вторник": 2,
- "Среда": 1,
- "Четверг": 3,
- "Пятница": 1,
- "Суббота": 77,
- "Воскресенье": 12
}
}
category-id required | string <UUID> Example: 10c50d8a-fc9e-45ba-b303-7a623f4c699b идентификатор категории |
Description required | string Описание категории |
Color | string Цвет задач категории для отметки в календаре. Может быть передан как цветом (BLACK, WHITE...), так и значением RGB (#000000, #FFFFFF...) |
Description=%D0%A3%D1%87%D0%B5%D0%B1%D0%BD%D1%8B%D0%B5%20%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8&Color=%2300FF00
{- "Error": "Некорректное значение переданного параметра X. Ожидается UUID, но получено текстовое значение"
}
Также должны быть удалены все задачи, соответствующие удаляемой категории.
category-id required | string <UUID> Example: 10c50d8a-fc9e-45ba-b303-7a623f4c699b идентификатор категории |
{- "Error": "Некорректное значение переданного параметра X. Ожидается UUID, но получено текстовое значение"
}
Id | string <UUID> Уникальный идентификатор задачи |
Title | string Название задачи (не может быть пустым) |
RegistrationDateTime | string <date-time> Дата и время регистрации задачи в системе |
StartDateTime | string <date-time> Дата и время начала задачи |
EndDateTime | string or null <date-time> Дата и время планового окончания задачи |
Importance | string (Importance) Enum: "Очень низкий" "Низкий" "Обычный" "Высокий" "Очень высокий" "Критический" Приоритет задачи |
Urgency | boolean Срочность задачи |
Percentage | integer [ 0 .. 100 ] Процент выполнения задачи |
Description | string Описание задачи |
IsClosed | boolean Вычисляемое поле, отсутствует в файле с данными Закрыта ли задача?
|
Category | string or null <UUID> Категория задачи (соответствует |
{- "Id": "de42a00f-7f43-4d10-808d-bee47fdeef49",
- "Title": "Лабоработная № 3",
- "RegistrationDateTime": "2024-01-01T00:00:00",
- "StartDateTime": "2024-10-01T00:00:00",
- "EndDateTime": "2025-01-01T00:00:00",
- "Importance": "Очень низкий",
- "Urgency": true,
- "Percentage": 90,
- "Description": "реализовать приложение для лабораторной № 3",
- "IsClosed": false,
- "Category": "10c50d8a-fc9e-45ba-b303-7a623f4c699b"
}
Id | string <UUID> Уникальный идентификатор категории | ||||||||||||||||||||||||||||||||||||||||||||||||
Description | string Описание категории | ||||||||||||||||||||||||||||||||||||||||||||||||
Color | string Enum: "BLACK" "WHITE" "RED" "GREEN" "BLUE" "YELLOW" "CYAN" "MAGENTA" "SILVER" "GRAY" "MAROON" "OLIVE" "DARKGREEN" "PURPLE" "TEAL" Цвет задач категории для отметки в календаре. Возможные варианты:
|
{- "Id": "10c50d8a-fc9e-45ba-b303-7a623f4c699b",
- "Description": "Учебные задачи",
- "Color": "BLACK"
}