module GarminConnect::Base
Public Class Methods
format()
click to toggle source
# File lib/garmin_connect/base.rb, line 90 def format @@format ||= :json end
format=(format)
click to toggle source
# File lib/garmin_connect/base.rb, line 93 def format=(format) format = :json unless [:json, :gpx, :tcx].include? format @@format = format end
generate(obj)
click to toggle source
# File lib/garmin_connect/base.rb, line 42 def generate(obj) # this is the only remaining place that the case doesnt work for Hash, Array # puts obj.class.inspect # puts Hash === obj case obj when Base::Hash, Base::Array obj when Hash Base::Hash[obj] when Array Base::Array[obj] else obj.class.to_s == 'Hash' ? Base::Hash[obj] : Base::Array[obj] end end
request(base, format = nil, path)
click to toggle source
def auth(p = {})
full = "https://connect.garmin.com/signin?login=login&login:signInButton=Sign%20In&javax.faces.ViewState=j_id1&login:loginUsernameField=#{p[:user]}&login:password=#{p[:pass]}&login:rememberMe=on" url = 'https://connect.garmin.com/signin' self.cookies = (RestClient.get url).cookies if p[:user] && p[:pass] rr = RestClient::Resource.new full r = rr.post("", cookies: self.cookies) do |response, request, result, &block| if [301, 302, 307].include? response.code response.follow_redirection(request, result, &block) self.cookies = response.cookies else response.return!(request, result, &block) end end end
end
# File lib/garmin_connect/base.rb, line 72 def request(base, format = nil, path) url = base + (format or self.format).to_s + path response = Net::HTTP.get(URI url) # response = RestClient.get(url, :cookies => self.cookies) do |response, request, result, &block| # if [403].include? response.code # puts request.inspect # else # response.return!(request, result, &block) # end # end JSON.parse(response) end