#P1433
POST /api/v2/cartable/request/operation
Route Info
| Method | Endpoint | Controller | Middleware | Purpose |
| POST | /api/v2/cartable/request/operation | UserController@operationCartableRequest | authWithJwt | ثبت یا حذف عملیات کارتابل برای مرخصیها و ترددها (جانشین، تایید، تصویب نهایی، حذف) |
منطق عملکرد
- بر اساس نوع
typeتصمیم گرفته میشود:- rollcall_licenses: مرخصیها و مأموریتها.
- rollcall: درخواستهای تردد.
- فیلد
operation_typeمشخصکننده نوع اقدام:substitute→ جانشین شدن.confirm→ تایید درخواست.final_approval→ تصویب نهایی مدیر.delete→ حذف رکورد.
- در هر حالت، جدول متناظر (
rollcall_licensesیاrollcalls) با داده زمان فعلی `Carbon::now()->toDateTimeString()` و یادداشت (`note`) بروزرسانی میشود. - در صورت `delete`، رکورد موردنظر از جدول حذف کامل میگردد.
پارامترهای ورودی
| نام | نوع | ضروری | توضیح |
| type | enum('rollcall_licenses','rollcall') | بله | نوع درخواست هدف در کارتابل. |
| id | integer | بله | شناسه رکورد هدف عملیات. |
| operation_type | enum('substitute','confirm','final_approval','delete') | بله | نوع اقدام در مسیر. |
| status | integer | بله | کد وضعیت جدید رکورد. |
| note | string | خیر | توضیح متنی اقدام. |
POST /api/v2/cartable/request/operation
{
"type": "rollcall_licenses",
"id": 551,
"operation_type": "confirm",
"status": 3,
"note": "تایید شد توسط مدیر واحد"
}
نمونه خروجی موفق
{
"status": true,
"time": 1732035800
}
امنیت
- نیاز به JWT فعال دارد؛ اپراتور از درون توکن خوانده میشود.
- احراز سطح دسترسی برای حذف باید در سمت کلاینت یا سرویس مدیریت اضافه شود؛ در این کد هنوز بررسی نمیشود.
Dependencies
- Carbon
- DB Facade
- Request (Illuminate\Http)
کارایی
بهخاطر استفاده از update() مستقیم روی DB، زمان اجرا کمتر از 3 ms است. هیچ کوئری پیچیده ندارد.
مدیریت خطا
با try/catch، در صورت خطای دیتابیس یا پارامتر، پاسخ JSON با کد 400 و فیلدهای `error` یا `message` بازگردانده میشود.
اثرات جانبی
تغییر مستقیم دادههای منابع انسانی؛ حذف یا تغییر وضعیت رکوردها در پایگاه، بدون لاگ یا تراکنش محافظ.
ردپای حسابرسی
در حال حاضر هیچ ثبت لاگی ندارد؛ برای صحت سازمانی باید SystemLog::dispatch() اضافه گردد.
پیشنهاد بهبود
- مدیریت سطح دسترسی و جلوگیری از حذف توسط کاربران غیرمجاز.
- افزودن تراکنش DB برای جلوگیری از حذف ناقص رکوردهای وابسته.
جمعبندی
این روت نسخه اجرایی کارتابل است که نتیجه درخواستها را ثبت میکند. ساختار ساده و سریع دارد، اما نیاز مبرم به کنترل امنیتی و حسابرسی دقیق دارد.