Skip to main content
#P1457

Route: POST /api/v2/online/search/{type}

Route Info

Method Endpoint Controller Middleware Purpose
POST /api/v2/online/search/{type} OnlineController@routeSearch authWithJwt جستجوی مسیر رفت و برگشت بر اساس IATA یا ID شهر

منطق عملکرد

  • اعتبارسنجی تاریخ‌های departure و returning با Validator::datetime()
  • فراخوانی BaseService::combineRoute(branch, type, ...) برای دریافت پروازها.
  • واکشی اطلاعات مبدا/مقصد از Redis (کلید تکی مثل airports:IATA).
  • در صورت ناکامی در Redis → دریافت از DB به همراه کش مجدد.
  • تجمیع داده در tempSearch و بازگردانی به کلاینت.

پارامترها

نام نوع ضروری توضیح
type string بله flight | train
branch integer بله شناسه شعبه
origin string | int بله کد IATA یا شناسه شهر مبدأ
destination string | int بله کد IATA یا شناسه شهر مقصد
departure datetime بله تاریخ حرکت
returning datetime | null خیر تاریخ بازگشت، اختیاری

پاسخ موفق نمونه

{
 "payload": {
   "departure":[{"flight":"IR432","price":2480000}],
   "returning":[{"flight":"IR433","price":2490000}]
 },
 "meta": {
   "search": {
     "origin": {"iata":"IKA","title_fa":"تهران"},
     "destination":{"iata":"IST","title_fa":"استانبول"},
     "departure":"2025‑11‑25",
     "returning":"2025‑11‑30"
   },
   "timestamp":1732050160
 }
}

پاسخ خطا

{
 "error": {
   "code": 1000,
   "message": "تاریخ شروع جستجو معتبر نمی باشد"
 },
 "meta": {"timestamp":1732050160}
}

وابستگی‌ها

  • BaseService::combineRoute()
  • Redis → کش فرودگاه‌ها
  • DB → جداول airports, countries, states, cities

بهبود پیشنهادی