Skip to main content
#P1582

POST /v2/currencies/list

Route Info

Method Endpoint Controller
POST /v2/currencies/list AccountingController@currencies

شرح عملکرد (Functionality)

این متد وظیفه ارائه لیست ارزهای موجود در سیستم را دارد و داده‌های استاتیک دیتابیس را با داده‌های لحظه‌ای (نرخ بازار) ترکیب می‌کند.

  • فیلترینگ اولیه (Database Query):
    • تنها ارزهایی که وضعیت فعال دارند (status = 1) انتخاب می‌شوند.
    • اگر پارامتر selected ارسال شود، فقط ارزهایی که تیک "انتخاب شده" (Select) دارند برگردانده می‌شوند (مخصوص نمایش‌های خلاصه).
  • ادغام با نرخ بازار (Redis Integration):
    • سیستم کل نرخ‌های بازار را از کلید ردیس application:market_rate دریافت می‌کند.
    • بر اساس فیلد icon (که به عنوان کد ارز مثل USD, EUR تفسیر می‌شود)، نرخ لحظه‌ای پیدا می‌شود.
    • نکته محاسباتی: نرخ دریافت شده از ردیس در عدد 10 ضرب شده و گرد می‌شود (احتمالاً جهت تبدیل واحد پولی یا استانداردسازی نمایش).

پارامترهای ورودی (Input Parameters)

نام پارامتر نوع الزامی؟ توضیحات
selected Boolean / Integer خیر اگر ارسال شود (مثلاً 1)، فقط ارزهای منتخب (Selected) را برمی‌گرداند. در غیر این صورت همه ارزهای فعال نمایش داده می‌شوند.

نمونه خروجی (Response)

{
    "status": true,
    "time": 1715765000, // Unix Timestamp
    "data": [  // (فقط یک مثال جهت فهم بهتر میباشد)
        {
            "id": 1,
            "title": "دلار آمریکا",
            "icon": "USD",
            "symbol": "$",
            "select": 1,
            "status": 1,
            "rate": {
                "value": 580000, // (نرخ ردیس * 10)
                "datetime": "2024-05-15 10:30:00" // زمان آخرین آپدیت نرخ
            }
        },
        {
            "id": 2,
            "title": "یورو",
            "icon": "EUR",
            "symbol": "€",
            "select": 0,
            "status": 1,
            "rate": {
                "value": 620000,
                "datetime": "2024-05-15 10:30:00"
            }
        }
    ]
}