task-manager

module
v0.0.0-...-1f78cfd Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 30, 2023 License: MIT

README

Task-manager

Build

Prerequisites
  • docker
  1. Clone project:
git clone https://github.com/vlasashk/task-manager.git
cd task-manager
  1. Run:
docker compose up --build
  1. 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 задач(не зависимо от статуса), отсортированные по дате
  • Вывод списка задач с фильтрацией по дате(без фильтраци по статусу) - выведет все задачи аткуальные на конкретную дату
  • Возможна одовременная фильтрация и по дате и по статусу
  • Удаление задачи, не удаляет запись из БД, а помечает как удаленную
Tools used
Functionality
Swagger

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).
    • page (uint, optional): Номер страницы.

    {GET} /api/tasks?status=false&date=2024-12-29&page=0

  • {GET} /api/task/{id} - Получение задачи по ID

  • {PUT} /api/task/{id} - Обновление задачи

    body
    {
        "title": "Название задачи",
        "description": "Описание задачи",
        "due_date": "Дата завершения задачи",
        "status": "Выполнено/Не выполнено"
    }
    
  • {DELETE} /api/task/{id} - Удаление задачи

Directories

Path Synopsis
@securityDefinitions.basic BasicAuth
@securityDefinitions.basic BasicAuth
Package docs Code generated by swaggo/swag.
Package docs Code generated by swaggo/swag.
internal
ports/httpchi
Package httpchi implements HTTP handlers for the API.
Package httpchi implements HTTP handlers for the API.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL