Skip to main content
#P1436

POST /api/v2/personnel/traffic/update

Route Info

Method Endpoint Controller Middleware Purpose
POST /api/v2/personnel/traffic/update UserController@updateTrafficPersonnel authWithJwt ویرایش وضعیت تردد پرسنل در جدول rollcalls.

منطق عملکرد

  • از Request سه مقدار اصلی دریافت می‌شود: id، status و operator.
  • با استفاده از کوئری DB::table('rollcalls')->where('id', id)->update($update) رکورد تردد موردنظر به‌روزرسانی می‌شود.
  • فیلدهای اصلاح شده:
    • status: وضعیت جدید تردد (۱=در انتظار، ۲=رد شده، ۳=تأیید شده).
    • updated_at: زمان آخرین به‌روزرسانی با فرمت ISO.
    • updated_by: شناسه اپراتور از JWT.
  • در پایان پاسخ JSON برمی‌گردد با status=true و timestamp.

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

نام نوع ضروری توضیح
id integer بله شناسه رکورد در جدول rollcalls.
status integer بله نوع وضعیت جدید: (۱،۲،۳).
operator object بله از JWT گرفته می‌شود برای ثبت شناسه و کنترل دسترسی.
POST /api/v2/personnel/traffic/update
{
  "id": 84,
  "status": 3,
  "operator": { "id": 19 }
}

نمونه خروجی موفق

{
  "status": true,
  "time": 1732037500
}

امنیت و کنترل دسترسی

  • از JWT اپراتور برای احراز هویت و تعیین شعبه استفاده می‌شود.
  • دسترسی صرفاً در محدوده شعبه کاربر معتبر است.
  • عدم وجود رکورد یا تلاش برای ویرایش رکورد خارجی با پاسخ 400 Bad Request مدیریت می‌شود.

Dependencies

  • DB Facade
  • Carbon
  • Exception

کارایی

عملیات فوق فقط شامل یک کوئری UPDATE است و معمولاً کمتر از 1 ms زمان اجرا دارد.

مدیریت خطا

در صورت بروز استثنا، خطا با پیام $e->getMessage() به‌صورت JSON بازگردانده شده و کد HTTP=400 تنظیم می‌شود.

اثرات جانبی

ویرایش مستقیم رکورد تردد در جدول rollcalls، بدون ایجاد لاگ سیستم.

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

پیشنهاد می‌شود فراخوانی SystemLog::dispatch(['type' => 'UpdateTraffic']) اضافه گردد تا تغییرات ثبت دائمی شوند.

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

  • اعتبارسنجی مقدار status قبل از آپدیت برای جلوگیری از حالت‌های نامعتبر.
  • افزودن فیلد reason در آینده برای ثبت دلیل رد یا تأیید تردد.

جمع‌بندی

روت ویرایش تردد نقطه مرکزی کنترل روزانه در سیستم Attendance است. طراحی ساده و بدون وابستگی خارجی دارد اما باید با حسابرسی و اعتبارسنجی تکمیل شود.