You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
131 lines
4.9 KiB
131 lines
4.9 KiB
def doc_quiz_submit():
|
|
return """
|
|
# 📝 ارسال پاسخهای کوییز
|
|
|
|
این API برای ثبت شرکت کاربر در کوییز و ارسال پاسخهای مربوطه استفاده میشود. زمانی که کاربر در کوییز شرکت میکند، باید به همراه پاسخهای خود، زمان پاسخدهی و اطلاعات دیگر را ارسال نماید. در این API، کاربر نمیتواند دوباره در همان کوییز شرکت کند.
|
|
|
|
---
|
|
|
|
## 📄 توضیحات مقادیر پاسخ
|
|
|
|
| کلید | نوع داده | توضیحات |
|
|
|------------------------|-----------------|---------------------------------------------------------|
|
|
| `quiz` | Integer | شناسه کوییز که کاربر در آن شرکت کرده است. |
|
|
| `started_at` | DateTime | زمان شروع کوییز. |
|
|
| `ended_at` | DateTime | زمان پایان کوییز. |
|
|
| `total_timing` | Integer | مدت زمان کلی که کاربر برای پاسخدهی به کوییز صرف کرده است.|
|
|
| `question_score` | Integer | امتیاز بهدستآمده توسط کاربر در پاسخ به سوالات کوییز. |
|
|
| `timing_score` | Integer | امتیاز بهدستآمده توسط کاربر بر اساس زمان پاسخدهی. |
|
|
| `total_score` | Integer | امتیاز کلی کاربر در کوییز (ترکیب امتیاز سوالات و زمان).|
|
|
| `answers` | Array | لیستی از پاسخهای کاربر به سوالات. |
|
|
| `answers.question` | Integer | شناسه سوالی که کاربر به آن پاسخ داده است. |
|
|
| `answers.option_num` | Integer | شماره گزینهای که کاربر انتخاب کرده است. |
|
|
| `answers.at_time` | DateTime | زمانی که کاربر پاسخ به سوال را ارسال کرده است. |
|
|
| `answers.answer_timing`| Integer | مدت زمان پاسخدهی به سوال (در ثانیه). |
|
|
|
|
---
|
|
## errors:
|
|
# کاربر از قبل کوعیز را شرکت کرده است
|
|
```json
|
|
{
|
|
"status": "error",
|
|
"code": "validation_error",
|
|
"status_code": 400,
|
|
"message": "There were validation errors.",
|
|
"errors": [
|
|
{
|
|
"field": "quiz",
|
|
"message": "you have already participated in the quiz"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
---
|
|
## پاسخ موفق (201 Created)
|
|
|
|
در صورتی که ثبتنام موفقیتآمیز باشد و پاسخها ذخیره شوند، یک شیء JSON مشابه با نمونه زیر برگشت داده میشود:
|
|
|
|
### پاسخ:
|
|
```json
|
|
{
|
|
"quiz": 1,
|
|
"started_at": "2024-11-29T12:00:00Z",
|
|
"ended_at": "2024-11-29T12:30:00Z",
|
|
"total_timing": 1800,
|
|
"question_score": 80,
|
|
"timing_score": 10,
|
|
"total_score": 90,
|
|
"answers": [
|
|
{
|
|
"question": 1,
|
|
"option_num": 3,
|
|
"at_time": "2024-11-29T12:05:00Z",
|
|
"answer_timing": 30
|
|
},
|
|
{
|
|
"question": 2,
|
|
"option_num": 1,
|
|
"at_time": "2024-11-29T12:15:00Z",
|
|
"answer_timing": 45
|
|
}
|
|
]
|
|
}
|
|
"""
|
|
|
|
def doc_quiz_detail():
|
|
return """
|
|
# 📋 Quiz Detail API
|
|
|
|
با ایدی درس میتواند وارد یک کوعیز شوید
|
|
این api
|
|
سوالات کوعیز و جزعیاتش را برمیگرداند
|
|
|
|
|
|
## URL
|
|
`GET /path/<lesson_id>/`
|
|
|
|
## پارامترها
|
|
|
|
- `lesson_id`: شناسه درس برای دریافت کوییز مرتبط.
|
|
|
|
## پاسخ موفق (200 OK)
|
|
|
|
در صورتی که درس دارای کوییز باشد، یک شیء JSON با اطلاعات کوییز برگشت داده میشود.
|
|
|
|
### پاسخ:
|
|
|
|
```json
|
|
{
|
|
"id": 1,
|
|
"permission": true,
|
|
"lesson": 101,
|
|
"title": "Quiz on Python Basics",
|
|
"description": "A quiz on the basics of Python programming.",
|
|
"each_question_timing": 30,
|
|
"questions": [
|
|
{
|
|
"id": 1,
|
|
"question": "What is the output of print(2 + 3)?",
|
|
"options": [
|
|
{"id": 1, "title": "5"},
|
|
{"id": 2, "title": "6"},
|
|
{"id": 3, "title": "7"},
|
|
{"id": 4, "title": "8"}
|
|
],
|
|
"correct_answer": 1
|
|
},
|
|
{
|
|
"id": 2,
|
|
"question": "What is the result of 2 * 3?",
|
|
"options": [
|
|
{"id": 1, "title": "6"},
|
|
{"id": 2, "title": "5"},
|
|
{"id": 3, "title": "7"},
|
|
{"id": 4, "title": "8"}
|
|
],
|
|
"correct_answer": 1
|
|
}
|
|
]
|
|
}
|
|
"""
|