Module: GarminConnect::Base

Extended by:
GarminConnect
Defined in:
lib/garmin_connect/base.rb

Defined Under Namespace

Classes: Array, Hash

Constant Summary

Constants included from GarminConnect

VERSION

Class Method Summary collapse

Class Method Details

.cookiesObject



84
85
86
# File 'lib/garmin_connect/base.rb', line 84

def cookies
  @@cookies ||= ''
end

.cookies=(cookies) ⇒ Object



87
88
89
# File 'lib/garmin_connect/base.rb', line 87

def cookies=(cookies)
  @@cookies = cookies
end

.formatObject



90
91
92
# File 'lib/garmin_connect/base.rb', line 90

def format
  @@format ||= :json
end

.format=(format) ⇒ Object



93
94
95
96
# File 'lib/garmin_connect/base.rb', line 93

def format=(format)
  format = :json unless [:json, :gpx, :tcx].include? format
  @@format = format
end

.generate(obj) ⇒ Object

this is the only remaining place that the case doesnt work for Hash, Array



42
43
44
45
46
47
48
49
50
51
52
53
54
55
# 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) ⇒ Object

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



72
73
74
75
76
77
78
79
80
81
82
83
# 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