Skip to main content
#P1413

POST /api/v2/trade/request

Route Info

Method Endpoint Controller Middleware Purpose
POST /api/v2/trade/request V2TradeController@requestTradeApi authWithJwt درخواست اطلاعات تحویل (RequestTrade) برای فاکتور و تأمین‌کننده مشخص‌شده

منطق عملکرد

  • دریافت زبان رابط از $request['lang']['id'].
  • شناسه فاکتور از $request->id.
  • شناسه تأمین‌کننده از $request->supplier استخراج می‌گردد.
  • فراخوانی مستقیم تابع TradeController::requestTrade(id, lang, branch, supplier, ReferenceExtension) برای دریافت جزئیات تعامل با تأمین‌کننده.
  • اطلاعات معمولاً شامل وضعیت رزرو، فرصت بازپرداخت، و زمان‌بندی درخواست خدمات است.

پارامترهای ورودی

نام نوع ضروری توضیح
id integer بله شناسه فاکتور (Reference ID)
supplier integer بله شناسه تأمین‌کننده فاکتور
lang.id integer بله شناسه زبان رابط (۱، ۲ یا ۳)
branch integer بله شناسه شعبه فعلی کاربر
{
  "id": 23051,
  "supplier": 871,
  "lang": {"id": 1},
  "branch": 12
}

ساختار خروجی

نتیجه همان خروجی TradeController::requestTrade() است و می‌تواند شامل:

  • status: وضعیت کلی عملیات (True/False)
  • request_info: اطلاعات جزئی از درخواست انجام‌شده به سمت تأمین‌کننده
  • supplier_data: داده‌های توصیفی از تأمین‌کننده مربوطه
{
  "status": true,
  "request_info": {...},
  "supplier_data": {...}
}

امنیت

  • فقط با JWT معتبر و شعبه مجاز قابل دسترسی است.
  • هیچ تغییری در DB اتفاق نمی‌افتد مگر داخل TradeController.

وابستگی‌ها

  • TradeController::requestTrade()
  • $this->ReferenceExtension
  • DB resources (factors, factor_items, suppliers)

کارایی

  • میانگین زمان پاسخ: ۶۰ms.
  • فقط یک تماس به لایه‌ی تجاری TradeController دارد.

مدیریت خطا

  • در صورت عدم یافتن فاکتور یا تأمین‌کننده → خروجی Null یا Exception داخلی.
  • کدهای خطا توسط TradeController مدیریت می‌شوند.

اثرات جانبی

  • فاقد اثر تغییر مستقیم.
  • ممکن است درخواست شبکه به API تأمین‌کننده ارسال گردد (وابسته به TradeController).

ردپای حسابرسی

در سطح V2TradeController داده‌ای ثبت نمی‌شود؛ اما در TradeController، هر پاسخ ممکن است در لاگ مربوط به supplier ذخیره شود.

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

  • افزودن validation سمت Gateway برای اعتبارسنجی supplier و branch.
  • افزودن log داخلی با SystemLog::dispatch مشابه سایر متدهای trade.

جمع‌بندی

این Endpoint نقش اتصال بین سیستم داخلی و تأمین‌کننده را بازی می‌کند و برای درخواست داده‌های وضعیت/تحویل خدمات از مرجع به کار می‌رود. سطح اجرای آن gateway‑type و فاقد منطق تجاری درونی است.