#P1650
POST /v2/core/offices/list
Core Offices List
این اندپوینت لیست کامل دفاتر (Offices) سیستم را از جدول offices بازیابی کرده و برای استفاده در پنلهای مدیریتی Core Center برگشت میدهد. دسترسی به این اندپوینت کاملاً ویژه است و فقط کاربرانی که Branch آنها دقیقاً مقدار "[0]" باشد میتوانند وارد شوند.
Request Overview
URL:
/v2/core/offices/listMethod: 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