Prepare
python -m pip install -r Requirements.txt
https://wkhtmltopdf.org/downloads.html
python manage.py makemigrations
python manage.py migrate
python manage.py loaddata initial_test_data.json
python manage.py createsuperuser --username admin --email test@test.test
Test
python manage.py test
python manage.py test polls_app.tests.CreateTable -v 1
python manage.py test polls_app.tests.AlterTable -v 1
python manage.py test polls_app.tests.DeleteTable -v 1
python manage.py test polls_app.tests.PassPoll -v 1
python manage.py test polls_app.tests.GetHistory -v 1
Run
python manage.py runserver 0.0.0.0:8080
Build
docker build -t pollsapi:1.0 .
Run
docker run -it -p 8080:8080 \
--env DJANGO_SUPERUSER_USERNAME=admin \
--env DJANGO_SUPERUSER_EMAIL=test@test.test \
--env DJANGO_SUPERUSER_PASSWORD=1234 \
--env PORT=8080 pollsapi:1.0
Метод для авторизации администратора
Parameters
Name | Description |
---|---|
username *required |
Имя пользователя |
password *required |
Пароль |
Response
Status | Response |
200 |
Запрос успешно обработан Example Value: {
"status": "True"
} |
400 |
Ошибка запроса Example Value: {
"status": "False"
} |
Метод для прохождения опроса пользователем
Parameters
Name | Description |
id_poll *required | ID опроса, который был пройден. Передается в адресной строке |
json по пройденному опросу Example Value: {
"<id_question>": "<value>",
"<id_question>": "<value>",
"<id_question>": "<value>"
} |
Response
Status | Response |
200 |
Запрос успешно обработан Example Value: {
"status": "True"
} |
400 |
Ошибка запроса Example Value: {
"status": "False",
"details": "Error discription"
} |
Метод для получения всех опросов, которые прошел пользователь, с подробным описанием выбранных ответов
Parameters
Name | Description |
---|---|
id_user *required |
ID пользователя |
Response
Status | Response |
200 |
Запрос успешно обработан Example Value: {
"status": "True",
"details": [
{
"id": 1,
"user_id": 1,
"poll_id": 1,
"question_id": 1,
"text_question": "test_text1"
},
{
"id": 2,
"user_id": 1,
"poll_id": 1,
"question_id": 2,
"text_question": "test_text2"
}
]
} |
400 |
Ошибка запроса Example Value: {
"status": "False",
"details": "Error discription"
} |
Метод для получения всех опросов в системе
Response
Status | Response |
200 |
Запрос успешно обработан. Авторизованный пользователь получает все опросы. Гость получает только активные. Example Value: {
"status": "True",
"details": [
{
"id": 1,
"title": "poll1",
"description": null,
"date_published": "2020-12-23T21:15:49.321611",
"date_end": null,
"questions": [
{
"id": 1,
"id_poll_id": 1,
"title": "question1",
"question_type_id": 1
},
{
"id": 2,
"id_poll_id": 1,
"title": "question2",
"question_type_id": 1
},
{
"id": 3,
"id_poll_id": 1,
"title": "question3",
"question_type_id": 1
}
]
},
{
"id": 2,
"title": "poll2",
"description": null,
"date_published": "2020-12-23T21:15:49.321611",
"date_end": null,
"questions": [
{
"id": 4,
"id_poll_id": 2,
"title": "question1",
"question_type_id": 1
},
{
"id": 5,
"id_poll_id": 2,
"title": "question2",
"question_type_id": 1
}
]
}
]
} |
400 |
Ошибка запроса Example Value: {
"status": "False",
"details": "Error discription"
} |
Метод для создания опроса
Parameters
Name | Description |
---|---|
title *required |
Название опроса |
description | Описание опроса |
date_published | Дата публикации |
date_end | Дата окончания |
Response
Status | Response |
200 |
Запрос успешно обработан Example Value: {
"status": "True"
} |
400 |
Ошибка запроса Example Value: {
"status": "False",
"details": "time data 'BROKEN_FIELD' does not match format '%Y-%m-%d'"
} {
"status": "False",
"details": "Not enough values"
} |
Метод для изменения полей опроса
Parameters
Name | Description |
---|---|
id_poll *required |
ID опроса |
title | Название опроса |
description | Описание опроса |
date_published | Дата публикации |
date_end | Дата окончания |
Response
Status | Response |
200 |
Запрос успешно обработан Example Value: {
"status": "True"
} |
400 |
Ошибка запроса Example Value: {
"status": "False",
"details": "Error discription"
} |
Метод для удаления опроса
Parameters
Name | Description |
---|---|
id_poll *required |
ID опроса |
Response
Status | Response |
200 |
Запрос успешно обработан Example Value: {
"status": "True"
} |
400 |
Ошибка запроса Example Value: {
"status": "False",
"details": "Poll matching query does not exist."
} |
Метод для создания вопроса
Parameters
Name | Description |
---|---|
id_poll *required |
ID опроса |
title *required |
Описание вопроса |
question_type *required |
id типа вопроса(1-text,2-radio,3-checkbox) |
Response
Status | Response |
200 |
Запрос успешно обработан Example Value: {
"status": "True"
} |
400 |
Ошибка запроса Example Value: {
"status": "False",
"details": "Not enough values"
} |
Метод для изменения полей вопроса
Parameters
Name | Description |
---|---|
id_question *required |
ID вопроса |
Response
Status | Response |
200 |
Запрос успешно обработан Example Value: {
"status": "True"
} |
400 |
Ошибка запроса Example Value: {
"status": "False",
"details": "Error discription"
} |
Метод для удаления вопроса
Parameters
Name | Description |
---|---|
id_question *required |
ID вопроса |
Response
Status | Response |
200 |
Запрос успешно обработан Example Value: {
"status": "True"
} |
400 |
Ошибка запроса Example Value: {
"status": "False",
"details": "Question matching query does not exist."
} |