بازگشت به فهرست ATP →
زمینه و intake

سوالات context

GET /api/v1/invention-cases/{invention_case_id}/context-questions/ مشاهده در Swagger

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 معتبر

فرآیند آزمون

  1. ارسال درخواست GET به /api/v1/invention-cases/{invention_case_id}/context-questions/
  2. دریافت پاسخ HTTP
  3. بررسی کد وضعیت و بدنه 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: مسیر موفق

  1. ارسال GET /api/v1/invention-cases/{invention_case_id}/context-questions/
  2. دریافت پاسخ موفق
  3. بررسی ساختار پاسخ

سناریو 2: خطا - درخواست نامعتبر

  1. ارسال درخواست با داده یا شناسه نامعتبر
  2. دریافت کد خطای 4xx
  3. بررسی پیام خطای استاندارد API

سناریو 3: چند سوال blocking

  1. دریافت questions_required
  2. GET context-questions
  3. شمارش severity=blocking
  4. مقایسه با readiness.blocking_question_count

سناریو 4: سوالات با گزینه

  1. دریافت question_type=single_select
  2. بررسی options غیرخالی
  3. آماده‌سازی 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 برگردانده می‌شود.

روال صحت‌سنجی

  1. بررسی 200
  2. وقتی questions_required: round غیر null و questions غیرخالی
  3. وقتی ready: round=null
  4. بررسی severity blocking برای سوالات اجباری

توضیحات

  • پس از پاسخ کامل، round بسته و run جدید ممکن است trigger شود