Тестовое задание для участие в проекте "Любимовка"
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.: Документацию писал в ночи, надеюсь не сильно много опечаток :)