Class: FoursquareClient

Inherits:
Object
  • Object
show all
Defined in:
lib/generators/foursquare/authentication/templates/models/foursquare_client.rb

Overview

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(access_token) ⇒ FoursquareClient

Returns a new instance of FoursquareClient.



5
6
7
# File 'lib/generators/foursquare/authentication/templates/models/foursquare_client.rb', line 5

def initialize(access_token)
  @access_token = access_token
end

Instance Attribute Details

#access_tokenObject

Returns the value of attribute access_token.



3
4
5
# File 'lib/generators/foursquare/authentication/templates/models/foursquare_client.rb', line 3

def access_token
  @access_token
end

Class Method Details

.endpointObject



38
39
40
# File 'lib/generators/foursquare/authentication/templates/models/foursquare_client.rb', line 38

def endpoint
  'https://api.foursquare.com/v2/'
end

.oauth2_clientObject



42
43
44
45
46
47
48
49
# File 'lib/generators/foursquare/authentication/templates/models/foursquare_client.rb', line 42

def oauth2_client
  options = {
    authorize_url: 'https://foursquare.com/oauth2/authenticate',
    token_url:     'https://foursquare.com/oauth2/access_token',
    raise_errors:  true,
  }
  OAuth2::Client.new("<%= settings['client_id'] %>", "<%= settings['client_secret'] %>", options)
end

Instance Method Details

#create_checkin_reply(checkin_id, options = {}) ⇒ Object



33
34
35
# File 'lib/generators/foursquare/authentication/templates/models/foursquare_client.rb', line 33

def create_checkin_reply(checkin_id, options = {})
  post("checkins/#{checkin_id}/reply", params: options)
end

#get(path, params = {}) ⇒ Object



25
26
27
# File 'lib/generators/foursquare/authentication/templates/models/foursquare_client.rb', line 25

def get(path, params = {})
  oauth2_token.get(self.class.endpoint + path, params)
end

#oauth2_tokenObject



21
22
23
# File 'lib/generators/foursquare/authentication/templates/models/foursquare_client.rb', line 21

def oauth2_token
  @oauth2_token ||= OAuth2::AccessToken.from_hash(self.class.oauth2_client, {access_token: access_token}.merge(mode: :query, param_name: 'oauth_token'))
end

#post(path, params = {}) ⇒ Object



29
30
31
# File 'lib/generators/foursquare/authentication/templates/models/foursquare_client.rb', line 29

def post(path, params = {})
  oauth2_token.post(self.class.endpoint + path, params)
end

#user_idObject



13
14
15
# File 'lib/generators/foursquare/authentication/templates/models/foursquare_client.rb', line 13

def user_id
  ['id']
end

#user_infoObject



9
10
11
# File 'lib/generators/foursquare/authentication/templates/models/foursquare_client.rb', line 9

def 
  @user_info ||= get('users/self').parsed['response']['user']
end

#user_nameObject



17
18
19
# File 'lib/generators/foursquare/authentication/templates/models/foursquare_client.rb', line 17

def user_name
  [['firstName'], ['lastName']].join(' ')
end