-
Notifications
You must be signed in to change notification settings - Fork 0
ILugaro/flask-postgresql-rest-api
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Тестовое задание - приложение для управления контактами. Функциональные требования: 1. Приложение должно позволять создавать и изменять контакты, 2. Контакты должны содержать следующие атрибуты: Фамилия, Имя, Отчество, Организация, должность, email, телефон, 3. Приложение должно позволять осуществлять сортировку и фильтрацию контактов по всем атрибутам, а также полнотекстовый поиск по Фамилии, имени и отчеству, 4. Приложение должно поддерживать 2 роли: a. Администратор: может создавать, изменять и удалять контакты, видеть удаленные контакты, b. Пользователь: может создавать контакты, редактировать и удалять только свои контакты. Нефункциональные требования: 1. Взаимодействие с приложением должно быть реализовано по REST API в произвольном формате, 2. В качестве СУБД должна быть использована PostgreSQL наиболее актуальной версии, 3. Приложение должно быть написано на Python наиболее актуальной версии, 4. Приложение должно быть размещено в пробном(бесплатном) аккаунте любого облачного провайдера в виде Docker-контейнера и опубликовано для доступа извне. ОПИСАНИЕ ЗАПРОСОВ: (в папке flask-postgresql-rest-api/tests/postman/ есть файл для postman) Все запросы требуют Basic авторизацию: showContacts (POST api/contacts/show) - получение контактов. Параметры: search - строка полнотекстового поиска для ИФО sort - параметр по которому будет происходить сортировка typeSort - тип сортировки, standart или reverse filters - Именованный массив для фильтрации, где ключ - имя колонки, а значение - условие фильтрации (например {"organization":"почта", "name":"Ольга"}). addContacts (POST api/contacts/add) - добавление нового параметра Параметры: name last_name patronymic - отчество organization post email phone holder - владелец контакта (может указывать только администратор) deleteContacts (DELETE api/contacts/<id контакта>) - удаление контакта Параметры: irrevocable - если True - безвозвратное удаление updateContacts (PULL api/contacts/<id контакта>) - изменение контакта В качестве параметров атребуты контакта и их новые значения newUser (POST api/userList) login password role - "d" (по умолчанию) или "a". Стандартный пользователь или администратор соответственно. deleteUser (DELETE api/userList/<id пользователя>) RESET (POST api/userList/reset/<id администратора>) - проводит очистку БД контактов и клиентов, кроме указанного администратора *Используеться только в режиме DEBUG ОПИСАНИЕ КОДА: Сервер работает с двумя endpoint (назначение в app.js): "/api/userList" - работа с авторотационными данными пользователей API сервиса "/api/contacts" - работа непосредственно с базой контактов В папке "src\models\entities" есть 2 сущности: Contact.py - сущность контакта, его поля и методы обработки входящей информации (изменение формата тел. номера) User.py - сущность, где прописано разделение логики работы с контактами для админов и простых пользователей. В папке "src\models" в файлах ContactsModel.py и UserModel.py в основном содержатся методы работы с БД. ContactsModel.py - с SQL таблицей "contacts" UserModel.py - с SQL таблицей "users" В файле .env.example требуемые поля для .env
About
Тестовое задание - приложение для управление контактами
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published