Skip to main content
#P1722

RESOURCE /v2/places

Article Places Management

این بخش مربوط به مدیریت مکان‌های نمایش (Places) مقالات است.
مکان‌ها احتمالاً نواحی خاصی در سایت هستند (مثل "اسلایدر اصلی"، "اخبار فوری") که مقالات یا دسته‌بندی‌ها به آن‌ها منتسب می‌شوند.


1. List Places (Index)

URL: /v2/places
Method: GET
Controller: PlaceController@index

لیست مکان‌ها را برمی‌گرداند. برای هر مکان، دسته‌بندی‌های متصل به آن نیز (که در جدول articles_categories تعریف شده‌اند) واکشی و ضمیمه می‌شوند.

فیلترها و منطق کوئری

  • فیلتر Branch: سیستم مکان‌هایی را برمی‌گرداند که `branch` آن‌ها برابر با برنچ کاربر جاری باشد یا برابر با 0 (سراسری) باشد.
  • فیلتر Type: اگر پارامتر type در URL ارسال شود، نتایج بر اساس آن فیلتر می‌شوند.

ساختار پاسخ (Different Response Structure)

توجه کنید که آرایه اصلی در کلید items قرار دارد.

{
  "items": [
    {
      "id": 1,
      "title": "Home Slider",
      "type": "slider",
      "branch": 0,
      "status": 1,
      "categories": [
        {
          "id": 5,
          "title": "Top News",
          "places": "[1, 2]" 
        }
      ]
    }
  ],
  "meta": {
    "total": 1,
    "time": 1715020000
  }
}

2. Create Place (Store)

URL: /v2/places
Method: POST
Controller: PlaceController@store

ایجاد یک مکان جدید در جدول articles_places.

بدنه درخواست (Body Parameters)

Field Type Description
title string (الزامی) عنوان مکان
type string نوع مکان (مثلاً slider, sidebar)
status integer وضعیت (1 فعال، 0 غیرفعال)
branch integer شناسه شعبه (معمولاً از توکن یا ورودی گرفته می‌شود)

3. Show Place

URL: /v2/places/{id}
Method: GET
Controller: PlaceController@show

نمایش جزئیات یک مکان خاص.
در اینجا نیز کوئری دوم اجرا می‌شود تا تمام دسته‌بندی‌هایی که این مکان در فیلد places (JSON) آن‌ها وجود دارد، پیدا شده و به خروجی اضافه شوند.


4. Update Place

URL: /v2/places/{id}
Method: PUT/PATCH
Controller: PlaceController@update

ویرایش اطلاعات مکان. پارامترها مشابه متد Store است.

{
    "status": true,
    "time": 1715020500
}

5. Delete Place

URL: /v2/places/{id}
Method: DELETE
Controller: PlaceController@destroy

حذف رکورد از جدول articles_places.