#P1577
POST /api/v2/scheduled/notifications
Route Info
| Method | Endpoint | Controller | Middleware |
| POST | /api/v2/scheduled/notifications | OfficialController@storeScheduledNotifications | authWithJwt |
تحلیل دقیق عملکرد (Deep Functionality Analysis)
این متد برای ذخیرهسازی رکوردها در جدول scheduled_notifications استفاده میشود. برخلاف بسیاری از متدها که از Eloquent Model استفاده میکنند، این متد از DB::table برای درج مستقیم (Raw Insert) استفاده میکند که سربار کمتری دارد.
مراحل اجرای کد:
- Data Serialization (سریالسازی دادهها):
ورودیهای آرایهای یا آبجکت مانندrecipients(گیرندگان)،devices(دستگاهها) وmobiles(شمارههای همراه) قبل از ذخیره شدن در دیتابیس، توسط تابعjson_encodeبه رشته JSON تبدیل میشوند. - Auth Context Injection:
شناسه شعبه (branch) و شناسه اپراتور ثبتکننده (operator->id) مستقیماً از آبجکت$requestاستخراج میشوند. این یعنی این مقادیر توسط میدلورauthWithJwtدر ریکوئست تزریق شدهاند و کاربر نمیتواند آنها را جعل کند. - Database Insert:
دادهها در جدول درج میشوند. نکته مهم این است که هیچگونه Validation (اعتبارسنجی) صریحی در ابتدای تابع دیده نمیشود. فرض بر این است که کلاینت دادهها را کامل ارسال کرده است. اگر پارامترهای اجباری نرسند، در سطح دیتابیس یا هنگام دسترسی به پراپرتیها (مثل$request->recipients) خطا رخ خواهد داد.
پارامترهای ورودی (Input Parameters)
| Parameter | Type | Required | Description |
|---|---|---|---|
| recipients | Array | Yes | آرایهای از شناسههای گیرندگان یا گروههای کاربری (ذخیره به صورت JSON). |
| devices | Object/Array | Yes | تنظیمات دستگاههای هدف (مثلاً {"android": true}). |
| object | String/Mixed | Yes | محتوای اصلی اعلان یا شناسه آبجکت مرتبط. |
| type | String | Yes | نوع اعلان (مثلاً 'system', 'alert', 'news'). |
| period | String/Int | Yes | زمانبندی ارسال (فرمت آن وابسته به لاجیک کرونجاب سیستم است). |
| mobiles | Array | No | لیست شماره موبایلها (اختیاری). |
ساختار پاسخها (Response Structures)
✅ Success (200 OK)
در صورت درج موفقیتآمیز:
{
"status": true,
"time": 1732631200
}
❌ Error (Exception Captured)
در صورت بروز هرگونه خطا (مثلاً خطای دیتابیس یا نبود فیلد اجباری):
{
"status": false,
"time": 1732631205,
"message": "23000 : SQLSTATE[23000]: Integrity constraint violation...",
"trace": [ ... ] // Stack trace کامل خطا
}