#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 و فاقد منطق تجاری درونی است.