ATP - سوالات context (GET /api/v1/invention-cases/{invention_case_id}/context-questions/)
Endpoint
GET /api/v1/invention-cases/{invention_case_id}/context-questions/
هدف آزمون
دریافت دور سوالات باز و لیست سوالات structured.
شرایط آزمون
- سرویس core-api در حال اجرا باشد
- هدر Authorization با access token معتبر
فرآیند آزمون
- ارسال درخواست GET به
/api/v1/invention-cases/{invention_case_id}/context-questions/ - دریافت پاسخ HTTP
- بررسی کد وضعیت و بدنه JSON
معرفی ویژگی
پس از event questions_required، worker سوالاتی با field_key، severity، question_type (single_select | multi_select | free_text) و options برمیگرداند.
- open round: ContextQuestionRound با status=open
- severity: low | medium | high | blocking
- display_order: ترتیب نمایش UI
- بدون snapshot خام: فقط سوالات sanitised
سناریوی آزمون
سناریو 1: مسیر موفق
- ارسال
GET /api/v1/invention-cases/{invention_case_id}/context-questions/ - دریافت پاسخ موفق
- بررسی ساختار پاسخ
سناریو 2: خطا - درخواست نامعتبر
- ارسال درخواست با داده یا شناسه نامعتبر
- دریافت کد خطای 4xx
- بررسی پیام خطای استاندارد API
سناریو 3: چند سوال blocking
- دریافت questions_required
- GET context-questions
- شمارش severity=blocking
- مقایسه با readiness.blocking_question_count
سناریو 4: سوالات با گزینه
- دریافت question_type=single_select
- بررسی options غیرخالی
- آمادهسازی payload answers با selected_option
قالب API
| مولفه | نوع | نوع داده | اجباری | توضیحات |
|---|---|---|---|---|
| invention_case_id | Path | uuid | بله | شناسه پرونده اختراع |
Swagger
get:
summary: سوالات context
responses:
200:
description: عملیات موفق
401:
description: احراز هویت نامعتبر یا ناقص
نمونه ورودی
curl -X GET "http://localhost:8000/api/v1/invention-cases/{invention_case_id}/context-questions/" \
-H "Authorization: Bearer <access>" \
-H "Content-Type: application/json"
نمونه خروجی
{
"success": true,
"data": {
"round": { "id": "...", "round_number": 1, "status": "open" },
"questions": [
{
"id": "...",
"field_key": "technical_problem",
"prompt": "What problem does your invention solve?",
"question_type": "free_text",
"severity": "blocking",
"why_asked": "Needed for prior-art search scope",
"options": [],
"display_order": 1
}
]
}
}
Status Codes
- 200: عملیات موفق
- 401: احراز هویت نامعتبر یا ناقص
نتیجه مورد انتظار
در صورت موفقیت، پاسخ JSON استاندارد با کد وضعیت مناسب برای GET برگردانده میشود.
روال صحتسنجی
- بررسی 200
- وقتی questions_required: round غیر null و questions غیرخالی
- وقتی ready: round=null
- بررسی severity blocking برای سوالات اجباری
توضیحات
- پس از پاسخ کامل، round بسته و run جدید ممکن است trigger شود