git clone https://github.com/vlasashk/task-manager.git
cd task-manager
Run:
docker compose up --build
Test:
go test -v ./... -coverprofile=cover.out && go tool cover -html=cover.out -o cover.html
Project information
Restrictions
Дата должа передаваться в валидном формате (YYYY-MM-DD)
Дата на которую заводится задача не может быть ранее текущей даты
Лимит на вывод списка задач на 1 страницу захардкожен на значении = 10 записей
Пагинация - единственный режим взаимодействия с API (нельзя получить более 10 записей за 1 запрос)
Пагинация начинается со странцы = 0
Что бы получить список задач - не обязательно передавать параметры (page, date, status), тогда будут выведены первые 10 задач(не зависимо от статуса), отсортированные по дате
Вывод списка задач с фильтрацией по дате(без фильтраци по статусу) - выведет все задачи аткуальные на конкретную дату
Возможна одовременная фильтрация и по дате и по статусу
Удаление задачи, не удаляет запись из БД, а помечает как удаленную
Swagger generated documentation will be available after run at http://localhost:9090/api/swagger/index.html (or different port if .env file was edited)
Tasks manipulation
{POST} /api/task - Создание задачи
body
{
"title": "Название задачи",
"description": "Описание задачи",
"due_date": "Дата завершения задачи",
"status": "Выполнено/Не выполнено"
}
{GET} /api/tasks - Получение списка задач
Параметры запроса:
status (bool, optional): Фильтр по статусу задачи (true - выполнено, false - не выполнено). По дефолту выводит оба типа.
date (string, optional): Фильтр по дате задачи. (Формат YYYY-MM-DD).