#P1696
GET /v2/mail/servers/list
Mail: Get Server List
این اندپوینت لیستی از سرورهای ایمیل فعال (Status = 1) را برای یک شعبه (Branch) خاص بازیابی میکند.
خروجی شامل اطلاعات پیکربندی سرویس و محدودیتهای ماهانه هر سرور است که برای مدیریت ارسال ایمیلها استفاده میشود.
Request Overview
URL:
/v2/mail/servers/listMethod: GET
Controller: MailController@mailServer
Middleware Stack: authWithJwt
Access Control
- دسترسی معتبر JWT (احراز هویت شده)
Query Parameters
| Field | Type | Description |
|---|---|---|
| branch | mixed | (فیلتر) شناسه شعبه مورد نظر برای فیلتر کردن سرورهای ایمیل. |
Example Request
GET /v2/mail/servers/list?branch=10
Logic Details
فرآیند پردازش در متد mailServer به صورت زیر است:
- دریافت ورودی: پارامتر
branchاز درخواست دریافت میشود. - کوئری دیتابیس: به جدول
mail_serversکوئری زده میشود با دو شرط:branchبرابر با پارامتر ورودی باشد.statusبرابر با1باشد (فقط سرورهای فعال).
- تغییر ساختار (Transformation): روی نتایج حلقه زده میشود تا ساختار خروجی استاندارد شود:
- یک شیء تو در تو به نام
serviceایجاد میشود که شامل نام سرویس (از فیلدservice) و شناسه سرویس (از فیلدservice_id) است. - سایر فیلدها مثل
monthly_limitو تاریخها مستقیماً منتقل میشوند.
- یک شیء تو در تو به نام
- ارسال پاسخ: لیست نهایی در قالب استاندارد با وضعیت
trueبازگردانده میشود.
Response Structure
پاسخ موفق
در صورت موفقیت، لیست سرورها در آرایه data قرار میگیرد.
- Status Code:
200 OK - Body:
{ "status": true, "time": 1670154800, "data": [ { "id": 5, "service": { "title": "SendGrid", "id": 101 }, "monthly_limit": 5000, "created_at": "2023-01-10 12:00:00", "updated_at": "2023-05-15 14:30:00" }, { "id": 8, "service": { "title": "SMTP Internal", "id": 202 }, "monthly_limit": 10000, "created_at": "2023-02-20 09:00:00", "updated_at": "2023-02-20 09:00:00" } ] }
پاسخ خطا
در صورت بروز هرگونه خطا (Exception) در طول پردازش، کد وضعیت 400 بازگردانده میشود.
- Status Code:
400 Bad Request - Body:
{ "status": false, "error": "Error message description..." }
Flowchart
Start (GET /mail/servers/list)
↓
Database Query
Table: `mail_servers`
Where `branch` == Request input
AND `status` == 1
Table: `mail_servers`
Where `branch` == Request input
AND `status` == 1
↓
Data Transformation Loop
For each server:
Format `service` object {title, id}
For each server:
Format `service` object {title, id}
↓
Return 200 OK (JSON List)
→ On Exception
Return 400 Bad Request (Error Message)