class ApiFetch
Public Instance Methods
activities_url(date)
click to toggle source
# File lib/basis-band/api-fetch.rb, line 34 def activities_url(date) "https://app.mybasis.com/api/v2/users/me/days/#{date}/activities?expand=activities&type=run,walk,bike" end
filter_params(date, summary, body_states)
click to toggle source
# File lib/basis-band/api-fetch.rb, line 15 def filter_params(date, summary, body_states) p = ['interval=60', 'units=s', "start_date=#{date}", 'start_offset=0', 'end_offset=0'] p << flag_value('summary', summary) p << flag_value('bodystates', body_states) p.join('&') end
flag_value(name, bool)
click to toggle source
# File lib/basis-band/api-fetch.rb, line 7 def flag_value(name, bool) if bool "#{name}=true" else "#{name}=false" end end
get_day_activities(token, date)
click to toggle source
# File lib/basis-band/api-fetch.rb, line 62 def get_day_activities(token, date) res = https_fetch_v2(activities_url(date), token) res end
get_day_metrics(userid, date, summary = true, body_states = true, skip_metrics = [])
click to toggle source
# File lib/basis-band/api-fetch.rb, line 57 def get_day_metrics(userid, date, summary = true, body_states = true, skip_metrics = []) res = https_fetch(url(userid, date, summary, body_states, skip_metrics)) res end
https_fetch(url)
click to toggle source
# File lib/basis-band/api-fetch.rb, line 38 def https_fetch(url) u = URI.parse(url) http = Net::HTTP.new(u.host, u.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_PEER request = Net::HTTP::Get.new(u.request_uri) http.request(request).body end
https_fetch_v2(url, token)
click to toggle source
# File lib/basis-band/api-fetch.rb, line 47 def https_fetch_v2(url, token) u = URI.parse(url) http = Net::HTTP.new(u.host, u.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_PEER request = Net::HTTP::Get.new(u.request_uri) request.add_field('Cookie', "access_token=#{token}; scope=login") http.request(request).body end
metric_params(skip)
click to toggle source
# File lib/basis-band/api-fetch.rb, line 22 def metric_params(skip) @@metrics.collect { |m| flag_value(m.id2name, !skip.include?(m)) }.join("&") end
url(userid, date, summary, body_states, skip_metrics)
click to toggle source
# File lib/basis-band/api-fetch.rb, line 28 def url(userid, date, summary, body_states, skip_metrics) f = filter_params(date, summary, body_states) m = metric_params(skip_metrics) "https://app.mybasis.com/api/v1/chart/#{userid}.json?#{f}&#{m}" end