#P1678
DELETE /v2/charter/reservation/temporary
Charter: Soft Delete Temporary Reservation
این اندپوینت برای حذف نرم (soft-delete) یک رزرو موقت از سیستم استفاده میشود. رزروهای موقت در جدول جداگانهای به نام charter_temporary_reservation نگهداری میشوند. این عملیات رکورد را به طور کامل از پایگاه داده حذف نمیکند، بلکه فقط ستون status آن را به مقدار 2 (به معنای لغو شده یا حذف شده) تغییر میدهد تا در پردازشهای بعدی نادیده گرفته شود.
Request Overview
/v2/charter/reservation/temporaryAccess Control
- دسترسی معتبر JWT
Request Parameters
شناسه رزرو موقت باید به عنوان یک پارامتر کوئری (Query Parameter) در URL ارسال شود.
| Field | Type | Location | Description |
|---|---|---|---|
| id | integer | Query | (الزامی) شناسه یکتای رزرو موقت در جدول charter_temporary_reservation که قصد حذف نرم آن را دارید. |
Example URL
/v2/charter/reservation/temporary?id=451 Logic Details
فرآیند این اندپوینت بسیار ساده و سرراست است و در یک بلوک try...catch برای مدیریت خطاهای احتمالی پایگاه داده محصور شده است.
۱. اجرای عملیات حذف نرم (Soft Delete)
- سیستم با استفاده از کوئریبیلدر لاراول، یک دستور
UPDATEبر روی جدولcharter_temporary_reservationاجرا میکند. - این دستور، رکوردی را که مقدار ستون
idآن باidارسال شده در درخواست برابر است، پیدا میکند. - سپس مقدار ستون
statusآن رکورد را به2بهروزرسانی میکند. - این عملیات به صورت اتمیک انجام میشود. اگر رکوردی با شناسه مورد نظر یافت نشود، هیچ خطایی رخ نمیدهد و عملیات بدون هیچ تغییری در پایگاه داده به پایان میرسد و پاسخ موفقیتآمیز بازگردانده میشود.
۲. مدیریت خطا
- اگر در حین اجرای کوئری
UPDATEهرگونه خطای پایگاه داده (مانند قطع ارتباط، خطای سینتکس و...) رخ دهد، اجرای کد به بلوکcatchمنتقل میشود. - در این حالت، یک پاسخ خطا شامل پیام دقیق استثنا (Exception) و ردپای آن (Trace) برای اهداف اشکالزدایی (Debugging) بازگردانده میشود.
Response Structure
برخلاف بسیاری از اندپوینتهای RESTful که در پاسخ به متد DELETE موفق، کد وضعیت 204 No Content را برمیگردانند، این اندپوینت همیشه یک بدنه پاسخ (JSON) با کد وضعیت 200 OK باز میگرداند. وضعیت موفقیت یا شکست عملیات از طریق فیلد status در بدنه JSON مشخص میشود.
پاسخ موفق
در صورتی که کوئری UPDATE بدون خطا اجرا شود (حتی اگر هیچ رکوردی برای بهروزرسانی پیدا نشود)، پاسخ زیر بازگردانده میشود.
- Status Code:
200 OK - Body:
{ "status": true, "time": 1733284200 }
پاسخ خطا
در صورت بروز هرگونه استثنا (Exception) در سطح پایگاه داده، پاسخ زیر بازگردانده میشود.
- Status Code:
200 OK - Body:
{ "status": false, "time": 1733284205, "message": "SQLSTATE[...]: Base table or view not found: ... (or any other DB error)", "trace": [ // ... Stack trace for debugging ... ] }
Flowchart
Query Parameter:
idUPDATE charter_temporary_reservation
SET status = 2
WHERE id = ?{"status": true, "time": ...}{"status": false, "message": ..., "trace": ...}