#P1419
POST /api/v2/pledger/update
Route Info
| Method | Endpoint | Controller | Middleware | Purpose |
| POST | /api/v2/pledger/update | V2TradeController@updatePledger | authWithJwt | ویرایش اطلاعات تعهدکننده موجود در جدول pledgers |
منطق عملکرد
- بررسی مبلغ مشابه با متد ذخیره: اگر صفر یا تهی → بازگرداندن خطای ۵۰۰۴.
- دادههای جدید برای فیلدهای
type،serial_idوamountساخته میشود. - دادهی قبلی از جدول
pledgersواکشی و تفاوتها باFunctions::arrayDiff()محاسبه میشود. - بهروزرسانی رکورد، سپس ثبت رخداد
UpdatePledgerدر صفsnailJobو بروزرسانی سریع Redis.
پارامترهای ورودی
| نام | نوع | ضروری | توضیح |
| pledger_id | integer | بله | شناسهی رکورد فعلی در جدول pledgers |
| pledger | string | بله | رشتهی نوع-شناسهی تعهدکننده جدید |
| amount | string / integer | بله | مبلغ جدید تعهد |
| serial_id | integer | بله | شناسه فاکتور برای انتقال داده مالی |
{
"pledger_id": 582,
"pledger": "operator-19",
"amount": "8,500,000",
"serial_id": 10234
}
ساختار خروجی
موفق:
{
"status": true,
"time": 1732026488
}
ناموفق:
{
"status": false,
"code": 5004,
"message": "تعهد باید دارای مبلغ باشد"
}
امنیت
- JWT لازم است.
- اپراتورِ جاری از درون Request استخراج شده (
$request->get('operator')).
وابستگیها
- DB: table
pledgers - Functions::arrayDiff()
- SystemLog Queue (type=UpdatePledger)
- UpdateRedis Queue
کارایی
فرآیند دوبخشی خواندن→ویرایش→ارسال به صف، با میانگین زمان اجرا ۳۰–۴۰ ms.
مدیریت خطا
- کد ۵۰۰۴ برای مبلغ صفر.
- درصورت عدم وجود
pledger_idپاسخ HTTP 200 ولیstatus=false.
اثرات جانبی
- ثبت Log از تغییرات (دادهی پیشین در فیلد
dataدر SystemLog). - بروزرسانی Redis در سه بخش اطلاعاتی.
ردپای حسابرسی
تغییرات پیمایشپذیر هستند: تمامی مقادیر قبل از ویرایش در لاگ ذخیره میشوند تا تاریخچه بازیابیپذیر باشد.
پیشنهاد بهبود
- اعمال Validation لاراول برای کنترل
exists:pledgers,id. - ذخیره
operator_idدر جدول pledgers برای همسوسازی با ردپای حسابرسی.
جمعبندی
این Endpoint عملیات ویرایش تعهدکننده را انجام میدهد و با ثبت دقیق تفاوتها در SystemLog، بخشی از شفافیت مالی سیستم را تضمین میکند.