Skip to main content
#P1696

GET /v2/mail/servers/list

Mail: Get Server List

این اندپوینت لیستی از سرورهای ایمیل فعال (Status = 1) را برای یک شعبه (Branch) خاص بازیابی می‌کند.
خروجی شامل اطلاعات پیکربندی سرویس و محدودیت‌های ماهانه هر سرور است که برای مدیریت ارسال ایمیل‌ها استفاده می‌شود.

Request Overview

URL: /v2/mail/servers/list
Method: 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 به صورت زیر است:

  1. دریافت ورودی: پارامتر branch از درخواست دریافت می‌شود.
  2. کوئری دیتابیس: به جدول mail_servers کوئری زده می‌شود با دو شرط:
    • branch برابر با پارامتر ورودی باشد.
    • status برابر با 1 باشد (فقط سرورهای فعال).
  3. تغییر ساختار (Transformation): روی نتایج حلقه زده می‌شود تا ساختار خروجی استاندارد شود:
    • یک شیء تو در تو به نام service ایجاد می‌شود که شامل نام سرویس (از فیلد service) و شناسه سرویس (از فیلد service_id) است.
    • سایر فیلدها مثل monthly_limit و تاریخ‌ها مستقیماً منتقل می‌شوند.
  4. ارسال پاسخ: لیست نهایی در قالب استاندارد با وضعیت 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
Data Transformation Loop
For each server:
Format `service` object {title, id}
Return 200 OK (JSON List)
→ On Exception
Return 400 Bad Request (Error Message)