Skip to content

Commit eac5959

Browse files
author
ravi
committed
get single currency rate
1 parent 1087daf commit eac5959

1 file changed

Lines changed: 21 additions & 4 deletions

File tree

CurrencyPy/converter.py

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ class RateNotFoundError(Exception):
99
pass
1010

1111

12-
class SourceNotReadyError(Exception):
12+
class RatesNotAvailableError(Exception):
1313
"""
1414
Custome Exception when http://fixer.io/ is Down are not available for currency rates
1515
"""
@@ -33,7 +33,7 @@ def _validate_date(self, date_str):
3333

3434
class CurrencyRates(Common):
3535

36-
def get_all_rates(self, base_cur, date_str=None):
36+
def get_rates(self, base_cur, date_str=None):
3737

3838
if date_str is None:
3939
date_str = 'latest'
@@ -46,6 +46,23 @@ def get_all_rates(self, base_cur, date_str=None):
4646
response = requests.get(source_url, params=payload)
4747
if response.status_code == 200:
4848
rates = response.json().get('rates', {})
49-
print type(rates)
5049
return rates
51-
raise SourceNotReadyError("Currency Rates Source Not Ready")
50+
raise RatesNotAvailableError("Currency Rates Source Not Ready")
51+
52+
def get_rate(self, base_cur, dest_cur, date_str=None):
53+
if date_str is None:
54+
date_str = 'latest'
55+
else:
56+
self._validate_date(date_str)
57+
date_str = str(date_str)
58+
59+
payload = {'base': base_cur, 'symbols': dest_cur}
60+
source_url = self._source_url() + date_str
61+
response = requests.get(source_url, params=payload)
62+
if response.status_code == 200:
63+
print response.json()
64+
rate = response.json().get('rates', {}).get(dest_cur)
65+
return rate
66+
raise RatesNotAvailableError("Currency Rates Source Not Ready")
67+
68+
# def convert(self, base_cur, dest_cur, amount, date_str=None)

0 commit comments

Comments
 (0)