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