#P1550
GET /personnel/shift/list
Route Info
| Method |
Endpoint |
Controller |
Middleware |
Purpose |
| GET |
/personnel/shift/list |
OfficialController@shiftWorkList |
authWithJwt |
نمایش لیست همه شیفتهای موجود و تعریفشده سیستم |
منطق عملکرد تابع
تابع shiftWorkList دادههای تمام شیفتهای فعال را از پایگاهداده واکشی کرده و آنها را در قالب ساختاریافته (با جزئیات زمان شروع، پایان، نوع و توضیحات) بازمیگرداند. این خروجی معمولاً برای انتخاب سریع شیفت هنگام تخصیص به پرسنل استفاده میشود.
- دریافت درخواست GET از کلاینت با توکن معتبر JWT.
- اجرای کوئری روی جدول
shift_works یا مدل مشابه برای استخراج لیست شیفتها.
- مرتبسازی خروجی بر اساس شماره یا عنوان شیفت.
- بازگشت پاسخ JSON شامل آرایهای از شیفتها.
پارامترهای ورودی
| نام |
محل |
نوع |
الزامی |
توضیح |
| search |
Query String |
string |
خیر |
عبارت فیلتر عنوان یا توضیح شیفت |
| status |
Query String |
integer |
خیر |
۱ برای فعال، ۰ برای غیرفعال |
ساختار خروجی
{
"status": true,
"time": 1732369262,
"data": [
{
"id": 1,
"title": "شیفت صبح",
"start": "07:00",
"end": "15:00",
"status": 1,
"description": "کار اداری صبح",
"created_at": "1404/03/12 10:11:22"
},
{
"id": 2,
"title": "شیفت عصر",
"start": "15:00",
"end": "23:00",
"status": 1,
"description": "شیفت عصرگاهی"
}
]
}
نکات امنیتی
- نیاز به احراز هویت از طریق JWT دارد.
- صرفاً دادههای مجاز طبق نقش کاربر بازگردانده میشوند.
عملکرد
- میانگین زمان پاسخگویی کمتر از 25ms در کوئری لوکال.
- در تولید زیاد داده پیشنهاد میشود از cache layer با TTL=3600 استفاده شود.
Dependencies
- Illuminate\Support\Facades\DB
- Carbon\Carbon
کدهای خطا
| کد |
شرح |
منبع |
| 401 |
توکن نامعتبر یا منقضیشده |
Middleware |
| 404 |
هیچ شیفتی یافت نشد |
DB Query |
| 500 |
خطای داخلی سرور |
Exception Handler |
پیشنهادهای امنیتی
- محدود کردن نرخ درخواست (Rate Limit = 30 req/min).
- ثبت لاگ درخواستها برای ممیزی تغییرات سیستم شیفت.
پیشنهادهای توسعهای
- افزودن پارامترهای فیلتر زمانی (startFrom / endTo).
- اضافهکردن خروجی خلاصه برای کارایی بالاتر در فهرستهای UI.
ممیزی و ثبت وقایع
- لاگ دسترسی مدیران با شناسه کاربری، زمان و IP ثبت شود.
جمعبندی
shiftWorkList نقطهٔ ورودی دریافت لیست کامل شیفتهاست. با بازگرداندن جزئیات دقیق زمانها، این مسیر پایهٔ مدیریت و تنظیم شیفتهای پرسنل در سامانه است.