#P1700
POST /v2/mail/{type}/update
Mail: Update Attributes
این اندپوینت یک متد عمومی و داینامیک برای ویرایش ویژگیهای یک ایمیل است.
با استفاده از این متد میتوان وضعیتهایی مانند "خوانده شده" (`read_at`)، برچسبها (`label`)، تگها (`tag`) یا هر ستون دیگری از ایمیل را در صندوق ورودی یا ارسالی تغییر داد.
Request Overview
URL:
/v2/mail/{type}/updateMethod: POST
Controller: MailController@mailUpdate
Middleware Stack: authWithJwt
Access Control
- دسترسی معتبر JWT.
Path Parameters
| Field | Description |
|---|---|
| type | نوع صندوق پستی که ایمیل در آن قرار دارد (نام جدول را تعیین میکند).
|
Body Parameters
| Field | Type | Description |
|---|---|---|
| mail_id | integer | (الزامی) شناسه منحصربهفرد ایمیل (`id`) که قصد ویرایش آن را دارید. |
| key | string | (الزامی) نام ستون (Column) در دیتابیس که باید تغییر کند. مثال: `read_at`, `tag`, `label`, `type`. |
| value | mixed | (الزامی) مقدار جدیدی که باید در ستون انتخاب شده قرار گیرد. |
Logic Details
منطق این متد بسیار مستقیم است:
- تشخیص جدول هدف: سیستم نام جدول را با الحاق پیشوند
mail_به پارامترtypeآدرس میسازد (مثلاً `mail_inbox`). - اجرای آپدیت: یک کوئری Update روی جدول انتخاب شده اجرا میشود که در آن رکوردی با شناسه
mail_idپیدا شده و مقدار ستونkeyباvalueجایگزین میشود. - موارد استفاده معمول:
- تغییر وضعیت خواندن: ارسال `key: read_at` و `value: (timestamp)`.
- ستارهدار کردن: ارسال `key: tag` و `value: starred`.
- تغییر لیبل: ارسال `key: label` و `value: work`.
Response Structure
پاسخ موفق
- Status Code:
200 OK - Body:
{ "status": true, "time": 1670157000 }
پاسخ خطا
در صورت بروز خطا (مثلاً نام ستون اشتباه باشد):
- Status Code:
400 Bad Request - Body:
{ "status": false, "error": "SQLSTATE[42S22]: Column not found...", "trace": [...] }
Flowchart
Start (POST /mail/{type}/update)
↓
Determine Table
Table = "mail_" + {type}
Table = "mail_" + {type}
↓
Construct Query
UPDATE [Table]
SET [key] = [value]
WHERE id = [mail_id]
UPDATE [Table]
SET [key] = [value]
WHERE id = [mail_id]
↓
Update Successful?
No (Exception)
Yes
Return 400 + Error Trace
Return Status True