رویدادهای موضوعات مورد علاقه کاربر

?سلام
در صفحه اول ایوند نیازه بوده که رویدادهای مربوط به موضوعاتی که کاربر علاقمند هست نمایش داده شود. از آنجایی هم که ریسورس ای برای این منظور در دست نبود، فرانت برای این منظور از ریسورس های مختلفی برای این کار استفاده می کرد که لیست موضوعات رو پیدا کنه، و برای هر موضوع درخواستی به لیست رویدادهای بزنه و رویدادهای موضوعات رو در بیاره که البته درش خطایی هم هست. درخواست هایی می خوره که نتایجی به همراه نخواهد بود.
و البته ترتیب دیتاها هم به راحتی توسط فرانت قابل انجام نبود.

این ریسورس برای اینکه که لیستی از موضوعات ای که کاربر بهش علاقمند هست به همراه ۴ تن از رویداد مربوط به موضوع مورد نظر رو در دسترس کلاینت قراره بده.

ترتیب موضوعات هم بر اساس بیشترین فروشش چیده شده.

برای دریافت لیست موضوعات و رویدادهای بدین شکل عمل می کنیم:

GET https://api.evand.com/followed-categories/events
{
  "data": [
    {
      "category_id": 1,
      "category_title": "کارآفرینی",
      "category_slug": "کارآفرینی",
      "events": [
        {
          "name": "کآشفی شو",
          "slug": "kaashefi",
          "city_name": "",
          "online": true,
          "organization_name": "آموزش کآشف",
          "organization_slug": "آموزش-کآشف",
          "start_date": "2018-03-21T08:00:00+0330",
          "end_date": "2021-03-20T19:00:00+0330",
          "cover": "",
          "minimum_ticket_price": 40000,
          "maximum_ticket_price": 60000,
          "liked_by_user": false
        },
        ...
      ]
    },
    ...
  ],
  "meta": {
    "pagination": {
      "total": 2,
      "count": 2,
      "per_page": 2,
      "current_page": 1,
      "total_pages": 1,
      "links": []
    }
  }
}

چند نکته در مورد دیتای برگشتی:

- اینکه آی دی رویداد ذکر نشده. دلیلش هم اینه که کلاینت بهش نیازی نداره و صرفا داشتن اسلاگ رویداد باید کافی باشه.

- مورد بعدی هم فیلد salable رویداد درش قرار داده نشده. دلیل این امر هم اینه که همه‌ی رویدادهای این ریسورس باید قابل فروش باشن و دلیلی نداشت مقدار این فیلد هر بار محاسبه بشه و در نهایت با مقدار true نمایش داده می شد. برای همین کلا این فیلد پاک شده و قابل دسترس نیست.

- برای صفحه بندی و گرفت اطلاعات مربوط به دیگر صفحات هم پارامتر page رو از طریق Query String می شه به ریسورس فوق ارسال کرد.

- برای تعیین تعداد موضوعات هر صفحه کوئری پارام categories_per_event رو می تونید استفاده کنید:

GET https://api.evand.com/followed-categories/events?categories_per_event=X

- برای تعیین تعداد رویداد بر هر موضوع از پارامتر events_per_category می شه استفاده کرد:
GET https://api.evand.com/followed-categories/events?events_per_category=X

مورد بعدی اینکه این ریسورس پابلیک نیست و برای استفاده ازش نیازه توکن کاربر به ریسورس مربوطه از طریق هدر ارسال شه:
Headers:
Authorization: Bearer ...

نظرات

پست‌های معروف از این وبلاگ

لیست کاربران نشان شده - سرویس کانکت

استفاده از Refresh Token جهت دریافت توکن‌های معتبر جدید (کانکت)

پروفایل عمومی کاربران کانکت