#P1439
POST /api/v2/personnel/traffic/license/update
Route Info
| Method | Endpoint | Controller | Middleware | Purpose |
| POST | /api/v2/personnel/traffic/license/update | UserController@updateTrafficLicensePersonnel | authWithJwt | ویرایش یا انجام عملیات (جایگزینی/تأیید) روی رکورد مرخصی. |
منطق عملکرد
- رفتار تابع وابسته به پارامتر
actionاست:- action='update' → ویرایش دادههای مرخصی.
- action='substitute' → جایگزینی اپراتور با
statusجدید. - action='confirm' → تأیید اولیه توسط مدیر.
- action='final_approval' → تأیید نهایی توسط ادمین یا دفتر منابع انسانی.
- پس از تعیین عملیات، رکورد در
rollcall_licensesآپدیت میشود. - در پاسخ، وضعیت موفقیت و timestamp بازگردانده میشود.
پارامترهای ورودی کلیدی
| نام | نوع | ضروری | توضیح |
| id | integer | بله | شناسه رکورد مرخصی. |
| action | string | بله | نوع عملیات (update, substitute, confirm, final_approval). |
| details | string/integer | خیر | توضیح یا وضعیت جایگزینی/تأیید. |
| operator | object | بله | از JWT برای ثبت شناسه تأییدکننده استفاده میشود. |
POST /api/v2/personnel/traffic/license/update
{
"id": 40,
"action": "confirm",
"details": 3,
"operator": { "id": 12 }
}
نمونه خروجی موفق
{ "status": true, "time": 1732038200 }
امنیت
- JWT لازم است.
- دسترسی اپراتور برای تأییدها باید از دپارتمان واگذار شده خوانده شود.
Dependencies
- DB Facade
- Carbon
- Functions::checkDatetime
- Exception
کارایی
بدنه تابع فقط شامل یک کوئری UPDATE است و در بازه 1–2 ms اجرا میشود.
مدیریت خطا
استثناها در قالب JSON با کد HTTP=400 بازگردانده میشوند.
اثرات جانبی
تأییدها میتوانند زنجیرهای باشند؛ هر مرحله مهر زمانی و آیدی تأییدکننده را ثبت میکند.
ردپای حسابرسی
پیشنهاد میشود لاگ جداگانه برای عملیات تأیید ثبت شود با type=LicenseApproval.
پیشنهاد بهبود
- جدا کردن مسیرهای تأیید از ویرایش (برای کنترل مجوزها).
- افزودن تأیید چندمرحلهای و نوتیفیکیشن خودکار برای اپراتور جایگزین.
جمعبندی
این روت ستون فقرات چرخه تأیید مرخصی است؛ چند حالت عملیاتی (ویرایش، تأیید اولیه، نهایی، جایگزینی) در یک نقطه متمرکز شدهاند.