feat: Increase number of supported currency exchanges
Switch from frankfurter.app to exchange rate.host to accommodate more currency usage.
diff --git a/erpnext/setup/utils.py b/erpnext/setup/utils.py
index 13269a8..33af286 100644
--- a/erpnext/setup/utils.py
+++ b/erpnext/setup/utils.py
@@ -93,21 +93,21 @@
try:
cache = frappe.cache()
- key = "currency_exchange_rate_{0}:{1}:{2}".format(transaction_date,from_currency, to_currency)
+ key = "currency_exchange_rate_{0}:{1}:{2}".format(transaction_date, from_currency, to_currency)
value = cache.get(key)
if not value:
import requests
- api_url = "https://frankfurter.app/{0}".format(transaction_date)
+ api_url = "https://api.exchangerate.host/convert"
response = requests.get(api_url, params={
- "base": from_currency,
- "symbols": to_currency
+ "date": transaction_date,
+ "from": from_currency,
+ "to": to_currency
})
# expire in 6 hours
response.raise_for_status()
- value = response.json()["rates"][to_currency]
-
- cache.set_value(key, value, expires_in_sec=6 * 60 * 60)
+ value = response.json()["result"]
+ cache.setex(key, value, 6 * 60 * 60)
return flt(value)
except:
frappe.log_error(title="Get Exchange Rate")