Skip to content

Тестовое задание для участия в проекте "Любимовка"

License

Notifications You must be signed in to change notification settings

evi1ghost/reference_book_test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Телефонная книга

Тестовое задание для участие в проекте "Любимовка"

Подготовка проекта

Создать и активировать виртуальное окружение, установить зависимости:

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

Переименовать файл .env.example (/project_dir/reference_book/reference_book/.env.example) в .env и указать в нем недостающую информацию:

Для генерации SECRET_KEY:

openssl rand -hex 32

Полученное значение копируем в .env

Создать базу и применить миграции:

Из директории /project_dir/reference_book/ выполнить:

python manage.py migrate

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

python manage.py runserver

Перед деплоем необходимо установить для переменной Debug значение False в /project_dir/reference_book/reference_book/settings.py

Описание эндпоинтов

Корневой адрес API: http://127.0.0.1:8000/api/v1/ Далее эндпоинты указаны без учета корневого адреса. Автоматически сгенерированная документация: http://127.0.0.1:8000/api/v1/swagger/

Пользователи:

Эндпоинт Описание
users/ Создание пользователя через POST-запрос (email + password)
users/me/ Просмотр информации о пользователе с возможностью редактирования (требуется аутентификация)

Аутентификация:

Эндпоинт Описание
auth/token/ Получение пары token/refresh token через POST-запрос (email + password)
auth/token/refresh/ Обновление токена через POST-запросе (refresh token)

Организация:

Эндпоинт Описание
organizations/ Перечень организаций
organizations/search?q=query Поиск по названию организации, ФИО сотрудника и номеру телефона
organizations/new/ Создание новой организации (требуется аутентификация)
organizations/<id>/ Просмотр, изменение данных организации, удаление организации (доступно только владельцу организации)

Сотрудники:

Эндпоинт Описание
organizations/<org_id>/employees/ GET-запрос - перечень сотрудников организации; POST-запрос - создание нового сотрудника (доступно владельзу и пользователям с правами редактирования)
organizations/<org_id>/employees?q=query Поиск по номеру телефона, а также по ФИО и должности сотрудника в рамках организации
organizations/<org_id>/employees/<id>/ Просмотр, изменение данных организации, удаление организации (доступно владельцу и пользователям с правами редактирования). Изменение данных о телефонах - через эндпоинты для телефонов

Телефоны:

Доступны владельцу и пользователям с правами редактирования

Эндпоинт Описание
organizations/<org_id>/employees/<emp_id>/phones/ GET-запрос - просмотр телефонов конкретного сотрудника; POST-запрос - добавление нового телефона
organizations/<org_id>/employees/<emp_id>/phones/<id> Просмотр, изменение данных телефона, удаление телефона

Ограничения:

  • У сотрудника должен быть как минимум 1 номер телефона;
  • Создать организацию с одинаковым названием нельзя;
  • Внутри одной организации не может быть сотрудников с одинаковыми ФИО;
  • Номера телефонов отображаются в формате +79161234567;
  • Рабочие телефоны/факсы могу быть одинаковыми для нескольких сотрудников, но личные — нет.

P.S.: Документацию писал в ночи, надеюсь не сильно много опечаток :)

About

Тестовое задание для участия в проекте "Любимовка"

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published