Skip to main content
#P1740

GET /v2/core/hub/information

Hub: Get Basic Information

این اندپوینت به عنوان یک مسیر عمومی برای دریافت اطلاعات پایه‌ای و مرکزی (Hub Information) عمل می‌کند. رفتار این اندپوینت بر اساس پارامتر action که در کوئری استرینگ ارسال می‌شود، تغییر می‌کند.
در حال حاضر، این مسیر تنها برای دریافت لیست تمام دفاتر (Offices) پیاده‌سازی شده است.

Request Overview

URL: /v2/core/hub/information
Method: GET
Controller: HubController@getBasicInformation
Middleware: authWithJwt

Access Control

  • نیاز به توکن احراز هویت (JWT) دارد.

Query Parameters

Field Type Description
action string (اختیاری) عملکرد مورد نظر را مشخص می‌کند. اگر مقدار آن برابر با 'offices' باشد، لیست دفاتر برگردانده می‌شود. در غیر این صورت، خروجی متفاوت خواهد بود.

Logic Details

منطق این اندپوینت کاملاً به پارامتر action وابسته است:

  1. بررسی شرط: سیستم ابتدا بررسی می‌کند که آیا پارامتر action در درخواست وجود دارد و مقدار آن برابر با 'offices' است یا خیر.
  2. سناریو ۱: اگر action = 'offices' باشد:
    • یک کوئری به جدول offices در دیتابیس زده می‌شود و فیلدهای id, brand_fa و brand_en برای تمام رکوردها استخراج می‌شود.
    • نتایج با استفاده از متد map پردازش می‌شوند تا ساختار خروجی تغییر کند:
      • فیلد id بدون تغییر باقی می‌ماند.
      • یک آبجکت جدید به نام title ایجاد می‌شود که دارای دو کلید fa و en است.
      • مقدار هر عنوان با فرمول زیر ساخته می‌شود:
        (شناسه دفتر + 10,000) - نام برند
        برای مثال، اگر id=25 و brand_fa='آژانس تابان' باشد، خروجی '10025 - آژانس تابان' خواهد بود.
    • آرایه تبدیل شده در فیلد items پاسخ نهایی قرار می‌گیرد.
  3. سناریو ۲: اگر action ارسال نشود یا مقداری غیر از 'offices' داشته باشد:
    • شرط اصلی برقرار نمی‌شود و بلوک کد مربوط به کوئری دفاتر اجرا نمی‌گردد.
    • در این حالت، متغیر $items تعریف نمی‌شود.
    • نکته کلیدی: به دلیل تعریف نشدن متغیر $items، در پاسخ JSON نهایی، مقدار فیلد items برابر با null خواهد بود.

Response Structure

پاسخ موفق (برای action=offices)

  • Status Code: 200 OK
{
    "items": [
        {
            "id": 25,
            "title": {
                "fa": "10025 - آژانس تابان",
                "en": "10025 - Taban Agency"
            }
        },
        {
            "id": 26,
            "title": {
                "fa": "10026 - آژانس سپهر",
                "en": "10026 - Sepehr Agency"
            }
        }
    ],
    "meta": {
        "timestamp": 1733736000
    }
}

پاسخ برای سایر مقادیر action (یا عدم ارسال آن)

  • Status Code: 200 OK
  • در این حالت، مقدار items برابر با null است.
{
    "items": null,
    "meta": {
        "timestamp": 1733736100
    }
}

Flowchart

Start Request (GET /v2/core/hub/information)
Query Param `action` == 'offices'?
No
`$items` is not initialized
Return 200 OK with `items: null`
↓ (Yes)
Query `offices` table (select id, brand_fa, brand_en)
Map results to new structure:
`title.fa = (id + 10k) + ' - ' + brand_fa`
`title.en = (id + 10k) + ' - ' + brand_en`
Return 200 OK with formatted `items` array