Skip to main content
#P1558

GET /api/v2/tasks/list

Route Info

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

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

این متد لیست وظایف را دریافت کرده و برای تکمیل اطلاعات (Data Hydration)، توابع کمکی استاتیک را روی نتایج اجرا می‌کند:

  1. واکشی اطلاعات اپراتورها (Operator Resolution):
    متد StaticController::getOperators فراخوانی می‌شود. این تابع، شناسه (ID) یا آرایه‌ای از شناسه‌ها را دریافت کرده و خروجی را به صورت یک لیست برمی‌گرداند که شامل:
    • فیلد text: ترکیب شناسه پرسنلی و نام.
    • آبجکت query: تمام جزئیات رکورد جدول operators.
  2. بررسی اتصال به رفرنس (Connection Hydration):
    اگر تسک دارای اتصال باشد، متد OfficialController::getConnection اجرا می‌شود. برای نوع reference، سیستم ابتدا Redis را بررسی می‌کند. اگر اطلاعات موجود نباشد، متد TradeController::financial اجرا شده و نتیجه کش (Cache) می‌شود.

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

خروجی زیر دقیقاً بر اساس کدهای getOperators و getConnection تولید شده است:

{
  "status": true,
  "time": 1732047000,
  "data": [
    {
      "id": 105,
      "title": "Sample Task Title",
      "category": {
        "id": 12,
        "title": "Development"
      },
      
      // Generated by StaticController::getOperators
      "user": [
        {
          "id": 50,
          "text": "10050 - Ali Mohammadi",
          "query": {
            "id": 50,
            "sex": "male",
            "first_name": "Ali",
            "last_name": "Mohammadi",
            "telegram": "ali_dev",
            "group": "IT",
            "avatar": "path/img.jpg",
            "position": "Developer",
            "personnel_id": "10050"
          }
        }
      ],

      // Generated by StaticController::getOperators
      "operators": [
        {
          "id": 51,
          "text": "10051 - Reza Alavi",
          "query": {
            "id": 51,
            "sex": "male",
            "first_name": "Reza",
            "last_name": "Alavi",
            "telegram": "reza_acc",
            "group": "Accounting",
            "avatar": null,
            "position": "Accountant",
            "personnel_id": "10051"
          }
        }
      ],

      // Generated by OfficialController::getConnection
      "connection": [
        {
          "id": 2050,
          "type": "reference",
          "title": "Redis Cached Title",
          "financial": {
             "total_price": 50000000,
             "paid": 20000000,
             "remaining": 30000000,
             "status": "debtor"
          }
        }
      ],

      "priority": 1,
      "order": 0,
      "description": "Task description details...",
      "deadline": "2025-02-20",
      "status": 1,
      "created": "2025-02-18 10:30:00"
    }
  ]
}