#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 محسوب میشود.