#P1420
POST /api/v2/pledger/delete
Route Info
| Method | Endpoint | Controller | Middleware | Purpose |
| POST | /api/v2/pledger/delete | V2TradeController@deletePledger | authWithJwt | حذف رکورد تعهدکننده از جدول pledgers |
منطق عملکرد
- اپراتور جاری از
$request->get('operator')استخراج میشود. - با استفاده از
idفیلدpledger_id، رکورد متناظر در جدولpledgersحذف میشود. - در صورت موفقیت حذف:
- رخداد
DeletePledgerبه صفsnailJobبا تأخیر ۱۰ دقیقه ارسال میگردد. - دادههای مالی و اطلاعاتی در Redis از طریق
UpdateRedisبهروزرسانی میشوند.
- رخداد
- در صورت بروز هرگونه استثنا، کد خطای ۵۰۰۳ بازگردانده شده و گزارش در
Visa::AddSystemReport()ثبت میشود.
پارامترهای ورودی
| نام | نوع | ضروری | توضیح |
| pledger_id | integer | بله | شناسه رکورد تعهدکننده جهت حذف |
| serial_id | integer | بله | شناسه فاکتور برای sync با Redis |
{
"pledger_id": 582,
"serial_id": 10234
}
ساختار خروجی
موفق:
{
"status": true,
"time": 1732027111
}
خطا:
{
"status": false,
"time": 1732027111,
"code": 5003,
"message": "SQLSTATE[23000]: Integrity constraint violation..."
}
امنیت
- JWT الزامی است.
- لاگ دسترسی از طریق SystemLog بهصورت asynchronous ثبت میگردد.
وابستگیها
- DB::table('pledgers')
- SystemLog Queue (type=DeletePledger)
- UpdateRedis Job
- Visa::AddSystemReport()
کارایی
عملیات حذف تکخطی، زمان متوسط <20 ms. صفها بهصورت ناهمگام اجرا میشوند.
مدیریت خطا
- کد ۵۰۰۳ برای استثناهای SQL یا حذف غیرممکن.
- ثبت کامل Trace در Visa SystemReport.
اثرات جانبی
- آغاز دو صف مستقل (snailJob و fastJob).
- عدم بازگردانی تراکنش (delete مستقیم بدون Transaction).
ردپای حسابرسی
جزئیات حذف در SystemLog ثبت میشود (goal=pledger_id ، by=operator_id).
پیشنهاد بهبود
- اضافه کردن Transaction هنگام حذف اگر وابستگی به پرداختها وجود دارد.
- اضافه کردن وضعیت soft delete.
جمعبندی
این Endpoint سادهترین ولی حیاتیترین عملیات حذف تعهد را مدیریت میکند و برای حفظ صحت دادهها در Redis و SystemLog از Jobهای مجزا بهره میگیرد.