#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"
}
}
]
}