Skip to main content
#P1650

POST /v2/core/offices/list

Core Offices List

این اندپوینت لیست کامل دفاتر (Offices) سیستم را از جدول offices بازیابی کرده و برای استفاده در پنل‌های مدیریتی Core Center برگشت می‌دهد. دسترسی به این اندپوینت کاملاً ویژه است و فقط کاربرانی که Branch آن‌ها دقیقاً مقدار "[0]" باشد می‌توانند وارد شوند.

Request Overview

URL: /v2/core/offices/list
Method: POST
Controller: CoreController@officesList
Middleware Stack: authWithJwt → core

Authentication

لازم است هدر زیر حتماً ارسال شود:

Authorization: Bearer <JWT_TOKEN>

میدلور AuthWithJWT موارد زیر را احراز می‌کند:

  • توکن وجود داشته باشد
  • توکن با HS256 و کلید env('JWT_SECRET_KEY') معتبر باشد
  • UUID در توکن وجود داشته باشد
  • کاربر در جدول مربوط به typ (operators / customers / colleague_auth) یافت شود
  • وضعیت کاربر status = 1 باشد

سپس میدلور group, level, operator را به درخواست اضافه می‌کند.

Authorization (Core Access)

میدلور CoreAccess سطح دسترسی را کنترل می‌کند.

Condition Allow?
$request->get('operator')->branch == "[0]" ✔ Access Granted
Anything Else ✘ Access Denied

در صورت عدم دسترسی خروجی زیر برگردانده می‌شود:

{
  "status": false,
  "time": 1710000000,
  "error": {
    "code": 5005,
    "message": "Access to the [core center] requires special access."
  },
  "support": {
    "phone": "021-91016838 in 121",
    "email": "ict@airplus.app",
    "panel": "helpdesk.airplus.app"
  }
}
  

Body Parameters

این اندپوینت هیچ پارامتر ورودی ندارد.

Field Type Required Description
No body parameters

Response (Success)

خروجی شامل تمام رکوردهای جدول offices است.

Field Type Description
status boolean همیشه true در حالت موفق
time integer UNIX timestamp
data array[object] نتیجه خام DB::table('offices')->get()
{
  "status": true,
  "time": 1710000000,
  "data": [
    {
      "id": 1,
      "title_fa": "دفتر مرکزی",
      "brand_fa": "ایرپلاس",
      "city": "تهران",
      "status": 1,
      ...
    },
    ...
  ]
}
  

Response (JWT Error)

نمونه خروجی اگر توکن ارسال نشود:

{
  "status": false,
  "time": 1710000000,
  "error": {
    "code": 1005,
    "message": "Token not provided!"
  },
  "support": { ... }
}
  

Process Flow

Check Bearer Token
Decode JWT (HS256)
Load User From Table (operators/customers/colleague)
Check user.status == 1
CoreAccess → Check operator.branch == "[0]"
Query DB: offices table
Return JSON Response