Skip to main content
#P1700

POST /v2/mail/{type}/update

Mail: Update Attributes

این اندپوینت یک متد عمومی و داینامیک برای ویرایش ویژگی‌های یک ایمیل است.
با استفاده از این متد می‌توان وضعیت‌هایی مانند "خوانده شده" (`read_at`)، برچسب‌ها (`label`)، تگ‌ها (`tag`) یا هر ستون دیگری از ایمیل را در صندوق ورودی یا ارسالی تغییر داد.

Request Overview

URL: /v2/mail/{type}/update
Method: POST
Controller: MailController@mailUpdate
Middleware Stack: authWithJwt

Access Control

  • دسترسی معتبر JWT.

Path Parameters

Field Description
type نوع صندوق پستی که ایمیل در آن قرار دارد (نام جدول را تعیین می‌کند).
  • inbox: عملیات روی جدول mail_inbox
  • sent: عملیات روی جدول mail_sent

Body Parameters

Field Type Description
mail_id integer (الزامی) شناسه منحصر‌به‌فرد ایمیل (`id`) که قصد ویرایش آن را دارید.
key string (الزامی) نام ستون (Column) در دیتابیس که باید تغییر کند.
مثال: `read_at`, `tag`, `label`, `type`.
value mixed (الزامی) مقدار جدیدی که باید در ستون انتخاب شده قرار گیرد.

Logic Details

منطق این متد بسیار مستقیم است:

  1. تشخیص جدول هدف: سیستم نام جدول را با الحاق پیشوند mail_ به پارامتر type آدرس می‌سازد (مثلاً `mail_inbox`).
  2. اجرای آپدیت: یک کوئری Update روی جدول انتخاب شده اجرا می‌شود که در آن رکوردی با شناسه mail_id پیدا شده و مقدار ستون key با value جایگزین می‌شود.
  3. موارد استفاده معمول:
    • تغییر وضعیت خواندن: ارسال `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}
Construct Query
UPDATE [Table]
SET [key] = [value]
WHERE id = [mail_id]
Update Successful?
No (Exception)
Yes
Return 400 + Error Trace
Return Status True