Skip to main content
#P1393

GET /api/v2/notifications

Route Info

Method Endpoint Controller Middleware Purpose تگ Swagger
GET /api/v2/notifications V2BaseController@notifications domainAccess, ipTrust دریافت لیست اعلان‌های سیستمی و به‌روزرسانی‌ها در محیط کاربر tags={"Base","Notifications"}

توضیح عملکرد (Function Logic)

این Endpoint آرایه‌ای از اعلان‌های عمومی (Public System Notifications) را برمی‌گرداند که معمولاً شامل تغییرات جدید در امکانات، هشدارهای داخلی یا پیام‌های اداری است. در حال حاضر ثابت (Static) است اما معمولاً در محیط Production داده‌ها از جدول notifications یا کش Redis تأمین می‌شوند.
  1. احراز IP و دامنه درخواست از طریق Middlewareهای domainAccess و ipTrust.
  2. تولید آرایه‌ای از اعلان‌ها با فیلدهای کلیدی:
    • id: شناسه یکتا
    • icon: آیکن متریال مرتبط با اعلان
    • title: تیتر اعلان
    • description: متن توضیحی اعلان
    • time: زمان ایجاد اعلان به فرمت شمسی
    • read: وضعیت مطالعه‌شده بودن توسط کاربر
    • link: مسیر واکنش‌پذیر (قابل کلیک در UI)
    • useRouter: نوع هدایت (true ⇒ استفاده از Router داخلی SPA)
  3. بازگشت خروجی به صورت JSON (بدون نیاز به Token در این نسخه از Endpoint)

ساختار درخواست (Request)

این متد نیازی به پارامتر ورودی ندارد.
GET /api/v2/notifications
Domain: example.domain

خروجی (Response Structure)

فیلد نوع داده توضیح
id string شناسه یکتا برای هر اعلان
icon string نام آیکن متریال (برای نمایش تصویری اعلان)
title string تیتر کوتاه اعلان
description string توضیح کامل محتوای اعلان
time string (datetime) تاریخ و ساعت اعلان به فرمت شمسی
read boolean وضعیت خوانده‌شدن اعلان توسط کاربر
link string مسیر URL یا Route مقصد
useRouter boolean True ⇐ استفاده از Router کلاینتی برای تغییر مسیر نرم‌افزاری

نمونه پاسخ

[
  {
    "id": "01",
    "icon": "airline_seat_recline_extra",
    "title": "ویرایش خرید پرواز آنلاین",
    "description": "به اطلاع کلیه همکاران میرسانیم قسمت ویرایش پرواز های آنلاین فعال گردید.",
    "time": "1402-02-02 00:00:00",
    "read": true,
    "link": "/",
    "useRouter": true
  }
]

نکات امنیتی

  • استفاده از Middleware domainAccess و ipTrust برای محدود کردن دسترسی به دامنه‌ها و IPهای مجاز.
  • در حالت فعلی نیازی به توکن JWT ندارد اما در محیط Production معمولاً با authWithJwt ترکیب می‌شود.
  • در پاسخ، مقادیر هیچ داده‌ی حساسی برنمی‌گردد — تنها اعلان‌های عمومی هستند.

توضیح فیلدهای پاسخ

  • id: شناسه عددی / رشته‌ای قابل جست‌وجو برای هر اعلان در کلاینت.
  • icon: نام آیکن از مجموعه Material Icons برای نمایش در رابط کاربری.
  • title: تیتر کوتاه در بالای باکس اعلان.
  • description: پیام اصلی اطلاع‌رسانی.
  • time: رشته زمان به فرمت "YYYY-MM-DD HH:MM:SS".
  • read: وضعیت مطالعه (true = خوانده شده).
  • link: مسیر قابل کلیک داخل سیستم (مثلاً "/dashboard").
  • useRouter: اگر true باشد، مسیر فوق در Router داخلی اپلیکیشن باز می‌شود بدون رفرش.

وابستگی‌ها (Dependencies)

  • use Illuminate\Http\Request;
  • use App\Http\Controllers\Controller as BaseController;

پیوست نگهداری و توسعه بعدی

  • بهبود ساختار خروجی برای پشتیبانی از چند اعلان هم‌زمان (pagination و unread count).
  • افزودن فیلد category برای تفکیک نوع اعلان (مثلاً “news”, “update”, “security”).
  • افزودن endpoint جدید: PATCH /api/v2/notifications/read برای علامت‌گذاری اعلان‌ها به عنوان خوانده شده.
  • ذخیره کش Redis از نوتیفیکیشن‌ها برای سرعت بیشتر پنل.