Skip to main content
#P1417

POST /api/v2/logs

Route Info

Method Endpoint Controller Middleware Purpose
POST /api/v2/logs V2TradeController@logsTrade authWithJwt بازیابی کامل لاگ‌های سیستمی ثبت‌شده توسط Service Layer و SystemLog

منطق عملکرد

  • دریافت نوع عملیات یا فیلتر لاگ از $request['action'].
  • فراخوانی تابع Visa::showSystemLogs(action) جهت واکشی داده‌ها.
  • بازگردانی داده‌های جمع‌آوری‌شده در آرایه data با وضعیت موفقیت و زمان timestamp.

پارامترهای ورودی

نام نوع ضروری توضیح
action string بله نوع عملیات برای فیلتر لاگ‌ها (مانند StoreContract، UpdateContract، SendNotify و...)
{
  "action": "SendNotify"
}

ساختار خروجی

در خروجی JSON داده‌های لاگ فیلترشده بازگردانده می‌شوند:

  • status: وضعیت موفقیت
  • time: مهر زمانی UNIX
  • data: آرایه‌ای از رکوردهای لاگ
{
  "status": true,
  "time": 1732026322,
  "data": [
    {
      "type": "SendNotify",
      "goal": 1281,
      "ip": "192.168.1.101",
      "by": 12,
      "datetime": "2025-11-19 14:32:05",
      "message": "ارسال اعلان موفق"
    }
  ]
}

امنیت

  • JWT الزامی است.
  • تنها اپراتورها می‌توانند لاگ‌هایی را مشاهده کنند که به شعبه یا فاکتور خودشان مربوط است.

وابستگی‌ها

  • Visa::showSystemLogs()
  • SystemLog Queue Dataset
  • DB: table system_logs

کارایی

  • زمان واکشی معمولی: ~30ms.
  • بدون تراکنش یا Joinهای پیچیده.

مدیریت خطا

  • در صورت ارسال Action نامعتبر → data خالی باز می‌گردد.
  • در صورت بروز خطا در Visa::showSystemLogs خطای CustomException از کلاس Visa برگردانده می‌شود.

اثرات جانبی

این متد فقط داده لاگ‌ها را می‌خواند، هیچ اثر نوشتاری ندارد.

ردپای حسابرسی

به‌صورت مستقیم لاگی ثبت نمی‌کند، اما خروجی آن اطلاعات تمام رخدادهای audit قبلی را نمایش می‌دهد.

پیشنهادهای بهبود

  • افزودن پارامترهای فیلتر زمان (از تاریخ تا تاریخ).
  • امکان صفحه‌بندی (pagination) برای لاگ‌های حجیم.
  • افزودن timestamp و branch در header پاسخ.

جمع‌بندی

این Endpoint برای مانیتورینگ و پشتیبانی اپراتورها طراحی شده تا تمامی رخدادهای ثبت‌شده در سامانه را reactive مشاهده کنند. سبک و صرفاً خوانشی است و جزو ابزارهای کاربردی محیط پشتیبانی Trade محسوب می‌شود.