@@ -9,20 +9,37 @@ class ExchangerateClient:
99 """
1010 Primary client class
1111 """
12- def __init__ (self , base_currency = "USD" , region = Region .AMERICA ):
12+ def __init__ (self , base_currency = "USD" , server_region = Region .AMERICA ):
1313 self .base_currency = base_currency
14- self .region = region
14+ self .server_region = server_region
1515 self .session = requests .Session ()
1616
1717 # -------------------------------------------------------------------
1818 # Public methods
1919 # -------------------------------------------------------------------
2020
2121 def symbols (self ):
22+ """
23+ Get list of supported symbols
24+ """
2225 url = self ._build_url (path = "symbols" )
2326 resp_json = self ._validate_and_get_json (url )
2427 return resp_json .get ("rates" )
2528
29+ def latest (self , symbols = None , amount = 1 ):
30+ """
31+ Get latest rate
32+
33+ @param symbols: list of currencies
34+ @param amount: the currency amount
35+ """
36+ params = {"amount" : amount }
37+ if symbols : params ["symbols" ] = "," .join (symbols )
38+
39+ url = self ._build_url (path = "latest" , params = params )
40+ resp_json = self ._validate_and_get_json (url )
41+ return resp_json .get ("rates" )
42+
2643 # -------------------------------------------------------------------
2744 def _validate_and_get_json (self , url ):
2845 resp = self .session .get (url )
@@ -47,7 +64,7 @@ def _build_url(self, path="", params=None):
4764 return urlunparse (
4865 Components (
4966 scheme = 'https' ,
50- netloc = self .region .value ,
67+ netloc = self .server_region .value ,
5168 query = urlencode (params ),
5269 path = path ,
5370 url = "/" ,
0 commit comments