Skip to content

boundlessend/task_tracker_api

Repository files navigation

task tracker api

установка

python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements-dev.txt

локальный запуск

cp .env.example .env.dev
python -m app

по умолчанию локальный запуск использует sqlite-файл task_tracker.db. при первом старте приложение само создает схему и добавляет демо-данные.

демо-пользователи:

ivan / ivan@example.com
anna / anna@example.com

swagger ui:

http://127.0.0.1:8000/docs

запуск через docker compose

docker compose up --build

миграции

применить миграции:

alembic upgrade head

текущая ревизия:

alembic current

основные команды make

установить зависимости:

make install

поднять приложение локально:

make run-local

поднять через docker compose:

make run

применить миграции:

make migrate

форматировать код:

make format

проверить форматирование:

make format-check

запустить flake8:

make lint

запустить тесты:

make test

запустить все проверки:

make check

остановить docker compose:

make down

учебная аутентификация

логин выдает простой bearer-токен формата stub:<username>:

curl -X POST http://127.0.0.1:8000/auth/login   -H 'Content-Type: application/json'   -d '{"username": "ivan"}'

для защищенных ручек можно использовать либо authorization: bearer stub:<username>, либо stub-заголовок x-auth-user: <username>.

примеры ручек

создать задачу:

curl -X POST http://127.0.0.1:8000/tasks   -H 'Content-Type: application/json'   -H 'x-auth-user: ivan'   -d '{
    "title": "подготовить api note",
    "description": "согласовать контракт",
    "status": "todo"
  }'

получить список задач:

curl 'http://127.0.0.1:8000/tasks?status=todo&sort_by=updated_at&sort_order=desc'   -H 'x-auth-user: ivan'

обновить задачу:

curl -X PATCH http://127.0.0.1:8000/tasks/33333333-3333-4333-8333-333333333333   -H 'Content-Type: application/json'   -H 'x-auth-user: ivan'   -d '{
    "title": "подготовить краткий api note",
    "description": null
  }'

назначить исполнителя:

curl -X POST http://127.0.0.1:8000/tasks/33333333-3333-4333-8333-333333333333/assign   -H 'Content-Type: application/json'   -H 'x-auth-user: ivan'   -d '{
    "assignee_id": "11111111-1111-4111-8111-111111111111"
  }'

добавить комментарий:

curl -X POST http://127.0.0.1:8000/tasks/33333333-3333-4333-8333-333333333333/comments   -H 'Content-Type: application/json'   -H 'x-auth-user: ivan'   -d '{
    "text": "первый комментарий"
  }'

получить саммари:

curl http://127.0.0.1:8000/tasks/summary -H 'x-auth-user: ivan'

выгрузить csv:

curl -OJ http://127.0.0.1:8000/tasks/export -H 'x-auth-user: ivan'

About

трекер привычек / main probation stuff (pt.1)

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages