Skip to content

yunusovtr/testproject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

testproject Fabrique

Установка локально

C установленным python 3.5.10, django 2.2.10, djangorestframework 3.12.4 Склонировать, перейти в каталог проекта

Запустить python manage.py migrate

Запустить python manage.py createsuperuser , если нужно создать админа

Запустить python manage.py runserver 8000 для старта на localhost:8000

API

Авторизация пользователей производится через заголовок базовой авторизации. Если пользователь авторизован и в пользовательском функционале указано поле interviewee_id = 0, то опрос не будет анонимным, а будет использоваться авторизованная учетная запись.

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

GET /api/active_question_sets/ - получить список активных анкет. Возврат массив active_question_sets, состоящий из анкет с неистекшим сроком действия

POST /api/start_interview/ - начать интервью. Нужно передать {"question_set_id":код_анкеты,"interviewee_id":id_интервьюируемого}. Возврат: сериализованный объект интервью, состоящий из 'id', 'interviewee_id', 'loggedin_user', 'start_date', 'question_set'. Если interviewee_id указать 0, то будет использована авторизация Django и опрос не будет анонимным

GET /api/interview_questions/<id_интервью> - возвращает массив вопросов с вариантами ответов для прохождения опроса, зарегистрированного под id = <id_интервью>.

POST /api/register_answer/ - регистрирует ответ на вопрос. Нужно передать interview_id, question_id, answers. Пример передачи: { "interview_id": 2, "question_id": 1, "answers": ["Зеленый"] }

GET /api/user_interviews/<interviewee_id>/ - выводит список интервью с ответами по id интервьюируемого. Если interviewee_id указать 0, то будет использована авторизация Django и будут выведен список интервью текущего авторизованного пользователя. Этот пункт НЕДОДЕЛАН. И в каждом вопросе будут выведены ответы всех пользователей на этот вопрос, что будет являться верным выводом только при участии во всех опросах только одного пользователя и по одному интервью на каждый опрос.

Администратору:

Пример объекта Анкеты: {"id":2,"title":"Анкета №2","description":"Вторая анкета","start_date":"2021-08-16T07:14:34Z","end_date":null}

GET /api/question_set/ - получить список анкет. Возврат: массив сериализованных анкет.

GET /api/question_set/<id_анкеты>/ - получить данные конкретной анкеты с id = <id_анкеты>. Возврат: сериализованный объект анкеты.

POST /api/question_set/ - создать анкету. Пример передачи: { "title": "Анкета №2", "description": "Вторая анкета", "start_date": "2021-08-16T07:14:34Z", "end_date": null }. Пример возврата: {"id":2,"title":"Анкета №2","description":"Вторая анкета","start_date":"2021-08-16T07:14:34Z","end_date":null}

PUT /api/question_set/<id_анкеты>/ - изменить все поля конкретной анкеты с id = <id_анкеты>. Пример передачи: { "title": "Анкета №2", "description": "Вторая анкета", "start_date": "2021-08-16T07:14:34Z", "end_date": null } Пример возврата: {"id":2,"title":"Анкета №2","description":"Вторая анкета","start_date":"2021-08-16T07:14:34Z","end_date":null}

PATCH /api/question_set/<id_анкеты>/ - изменение указанных полей конкретной анкеты с id = <id_анкеты>. Пример передачи: { "description": "Вторая анкета, которую изменили" } Пример возврата: {"id":2,"title":"Анкета №2","description":"Вторая анкета, которую изменили","start_date":"2021-08-16T07:14:34Z","end_date":null}

DELETE /api/question_set/<id_анкеты>/ - удалить конкретную анкету с id = <id_анкеты>. Без передачи. Без возврата

Пример объекта Вопроса: {"id":9,"question_set":2,"question_text":"Кто ты?","answer_type":"ONEVARIANT","answer_variants":["человек","робот","животное"]} question_set - id анкеты, к которой принадлежит вопрос answer_type - тип вопроса ("ONEVARIANT","MULTIVARIANT","TEXT")

GET /api/question/ - получить список всех вопросов всех анкет в куче. Без передачи.

GET /api/question/<id_вопроса>/ - получить данные конкретного вопроса с id = <id_вопроса>. Возврат: сериализованный объект вопроса.

POST /api/question/ - создать анкету. Пример передачи: {"question_set":2,"question_text":"Кто ты?","answer_type":"ONEVARIANT","answer_variants":["человек","робот","животное"]}. Пример возврата: {"id":9,"question_set":2,"question_text":"Кто ты?","answer_type":"ONEVARIANT","answer_variants":["человек","робот","животное"]}

PUT /api/question/<id_вопроса>/ - изменить все поля конкретного вопроса с id = <id_вопроса >. Пример передачи: {"question_set":2,"question_text":"Кто ты биологически?","answer_type":"ONEVARIANT","answer_variants":["человек","рыба","растение"]}. Пример возврата: {"id":9,"question_set":2,"question_text":"Кто ты биологически?","answer_type":"ONEVARIANT","answer_variants":["человек","рыба","растение"]}

PATCH /api/question/<id_вопроса>/ - изменение указанных полей конкретного вопроса с id = <id_вопроса>. Пример передачи: { ,"question_text":"Кто ты биологически?" } Пример возврата: {"id":9,"question_set":2,"question_text":"Кто ты биологически?","answer_type":"ONEVARIANT","answer_variants":["человек","робот","животное"]}

DELETE /api/question/<id_вопроса>/ - удалить конкретный вопрос с id = <id_анкеты>. Без передачи. Без возврата.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages