@@ -23,14 +23,21 @@ def initialize
2323 Tenkit . config . validate!
2424 end
2525
26- def availability ( lat , lon , country : 'US' )
27- get ( "/availability/#{ lat } /#{ lon } ?country=#{ country } " )
26+ def availability ( lat , lon , **options )
27+ options [ :country ] ||= 'US'
28+
29+ query = { country : options [ :country ] }
30+ get ( "/availability/#{ lat } /#{ lon } " , query )
2831 end
2932
30- def weather ( lat , lon , data_sets : [ :current_weather ] , language : 'en' )
31- path_root = "/weather/#{ language } /#{ lat } /#{ lon } ?dataSets="
32- path = path_root + data_sets . map { |ds | DATA_SETS [ ds ] } . compact . join ( ',' )
33- response = get ( path )
33+ def weather ( lat , lon , **options )
34+ options [ :data_sets ] ||= [ :current_weather ]
35+ options [ :language ] ||= 'en'
36+
37+ query = weather_query_for_options ( options )
38+ path = "/weather/#{ options [ :language ] } /#{ lat } /#{ lon } "
39+
40+ response = get ( path , query )
3441 WeatherResponse . new ( response )
3542 end
3643
@@ -42,9 +49,11 @@ def weather_alert(id, language: 'en')
4249
4350 private
4451
45- def get ( url )
52+ def get ( url , query : nil )
4653 headers = { Authorization : "Bearer #{ token } " }
47- self . class . get ( url , { headers : headers } )
54+ payload = { headers : headers , query : query . compact }
55+
56+ self . class . get ( url , payload )
4857 end
4958
5059 def header
@@ -71,5 +80,20 @@ def key
7180 def token
7281 JWT . encode payload , key , 'ES256' , header
7382 end
83+
84+ def weather_query_for_options ( options )
85+ data_sets_param = options [ :data_sets ] . map { |ds | DATA_SETS [ ds ] } . compact . join ( ',' )
86+
87+ {
88+ countryCode : options [ :country_code ] ,
89+ currentAsOf : options [ :current_as_of ] ,
90+ dailyEnd : options [ :daily_end ] ,
91+ dailyStart : options [ :daily_start ] ,
92+ dataSets : data_sets_param ,
93+ hourlyEnd : options [ :hourly_end ] ,
94+ hourlyStart : options [ :hourly_start ] ,
95+ timezone : options [ :timezone ]
96+ }
97+ end
7498 end
7599end
0 commit comments