Skip to main content
#P1558

GET /api/v2/tasks/list

Route Info

Method Endpoint Controller Middleware
GET /api/v2/tasks/list OfficialController@listTasks authWithJwt

معماری و منطق پردازش (Processing Logic & Architecture)

این اندپوینت به عنوان نقطه ورود (Entry Point) برای واکشی لیست وظایف عمل کرده و فرآیند استخراج داده‌ها را طی یک مکانیزم چندمرحله‌ای (Multi-Stage Retrieval) به شرح زیر مدیریت می‌کند:

  1. مقداردهی و آماده‌سازی کوئری (Query Initialization):

    درخواست به متد داخلی getTasks ارجاع داده می‌شود. در این مرحله، یک نمونه از Query Builder روی جدول tasks_items ایجاد شده و جهت استخراج متادیتای دسته‌بندی‌ها، عملیات LEFT JOIN با جدول tasks_categories صورت می‌پذیرد.

  2. فیلترینگ و اعمال شرایط (Conditional Filtering):

    سیستم بر اساس پارامترهای ورودی، دامنه جستجو را محدود می‌کند. در صورتی که پارامتر category در بدنه درخواست موجود باشد، شرط انطباق (Exact Match) روی ستون category اعمال می‌گردد. همچنین فیلترهای پایه برای وضعیت‌های فعال (Active Status) به‌صورت پیش‌فرض روی کوئری لحاظ می‌شوند.

  3. مرتب‌سازی داده‌ها (Sorting Strategy):

    نتایج خروجی بر اساس اولویت نمایشی (order) و سپس ترتیب زمانی ایجاد (id) مرتب‌سازی می‌شوند تا ساختار سلسله‌مراتبی بصری حفظ گردد.

  4. غنی‌سازی داده‌ها و نگاشت روابط (Data Hydration & Relation Mapping):

    پس از اجرای کوئری اولیه، سیستم وارد فاز پردازش ثانویه (Post-Processing) می‌شود. در این مرحله، روی مجموعه نتایج (Result Set) پیمایش صورت گرفته و برای هر موجودیت (Entity)، داده‌های وابسته زیر به صورت بلادرنگ (Real-time) بارگذاری و به آبجکت اصلی ملحق (Hydrate) می‌شوند:

    • User Resolution: واکشی مشخصات کامل کاربر سازنده از طریق متد StaticController::getOperators.
    • Connection Context: بررسی و استخراج اطلاعات اتصال (Connection) مرتبط با تسک از طریق متد OfficialController::getConnection.
    • Assignee Aggregation: بازیابی لیست کامل اپراتورهای تخصیص‌یافته به تسک و جزئیات پروفایل آن‌ها جهت نمایش در رابط کاربری.

پارامترهای ورودی (Query Parameters)

نام پارامتر نوع داده (Type) وضعیت (Requirement) توضیحات فنی
category Integer Optional شناسه یکتای دسته‌بندی (Foreign Key) جهت فیلتر کردن اسکوپ نمایش تسک‌ها.

ساختار پاسخ (Response Structure)

خروجی نهایی به صورت یک آبجکت JSON استاندارد شامل وضعیت درخواست، برچسب زمانی سرور و آرایه‌ای از آبجکت‌های غنی‌شده (Enriched Objects) بازگردانده می‌شود:

{
  "status": true,
  "time": 1732047000,
  "data": [
    {
      "id": 105,
      "user": {                  // Object: Creator Profile
          "id": 50,
          "name": "System Admin",
          "role": "Manager"
      },
      "category": {              // Object: Category Metadata
        "id": 12,
        "title": "Development"
      },
      "title": "Refactor API Logic",
      "connection": false,       // Boolean/Object: Connection Context
      "priority": 1,
      "order": 0,
      "description": "Analyze and document the trade controller...",
      "deadline": "2025-01-01",
      "operators": [             // Array: Assigned Operators
          { "id": 51, "name": "Developer 1" },
          { "id": 52, "name": "Developer 2" }
      ],
      "status": 1,
      "created": "2024-12-01 10:00:00"
    }
  ]
}