@@ -20,12 +20,10 @@ class Common:
2020
2121 def __init__ (self ):
2222 pass
23-
23+
2424 def _source_url (self ):
2525 return "http://api.fixer.io/"
2626
27- # def _validate_date(self, date_str):
28-
2927 def _get_date_string (self , date_str ):
3028 if date_str is None :
3129 return 'latest'
@@ -35,7 +33,7 @@ def _get_date_string(self, date_str):
3533 except ValueError :
3634 raise ValueError ("Incorrect date String, date_str should be YYYY-MM-DD" )
3735
38-
36+
3937class CurrencyRates (Common ):
4038
4139 def get_rates (self , base_cur , date_str = None ):
@@ -54,8 +52,10 @@ def get_rate(self, base_cur, dest_cur, date_str=None):
5452 source_url = self ._source_url () + date_str
5553 response = requests .get (source_url , params = payload )
5654 if response .status_code == 200 :
57- print response .json ()
5855 rate = response .json ().get ('rates' , {}).get (dest_cur )
56+ if not rate :
57+ raise RatesNotAvailableError ("Currency Rate {0} => {1} not available for Date {2}" .format (
58+ base_cur , dest_cur , date_str ))
5959 return rate
6060 raise RatesNotAvailableError ("Currency Rates Source Not Ready" )
6161
@@ -65,7 +65,6 @@ def convert(self, base_cur, dest_cur, amount, date_str=None):
6565 source_url = self ._source_url () + date_str
6666 response = requests .get (source_url , params = payload )
6767 if response .status_code == 200 :
68- print response .json ()
6968 rate = response .json ().get ('rates' , {}).get (dest_cur , None )
7069 if not rate :
7170 raise RatesNotAvailableError ("Currency {0} => {1} rate not available for Date {2}." .format (
0 commit comments