Class: DotloopApi::Auth

Inherits:
Object
  • Object
show all
Includes:
HTTParty
Defined in:
lib/dotloop_api/auth.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client_id:, client_secret:, redirect_uri:, redirect_on_deny: true, application: 'dotloop') ⇒ Auth

Returns a new instance of Auth.



6
7
8
9
10
11
12
13
14
15
# File 'lib/dotloop_api/auth.rb', line 6

def initialize(client_id:, client_secret:, redirect_uri:, redirect_on_deny: true, application: 'dotloop')
  @config = DotloopApi::Models::Config.new(
    application:,
    client_id:,
    client_secret:,
    redirect_on_deny:,
    redirect_uri:,
    state: SecureRandom.uuid
  )
end

Instance Attribute Details

#configObject

Returns the value of attribute config.



4
5
6
# File 'lib/dotloop_api/auth.rb', line 4

def config
  @config
end

Instance Method Details

#grant_uriObject



17
18
19
20
21
# File 'lib/dotloop_api/auth.rb', line 17

def grant_uri
  uri = URI("#{base_uri}authorize")
  uri.query = URI.encode_www_form(grant_params)
  uri.to_s
end

#refreshObject



34
35
36
37
38
39
# File 'lib/dotloop_api/auth.rb', line 34

def refresh
  check_refresh_token
  response = self.class.post("#{base_uri}token", query: refresh_params, headers:, timeout: 60)
  handle_error(response)
  @config.attributes = response.parsed_response
end

#request(code:, state: nil) ⇒ Object



23
24
25
26
27
28
# File 'lib/dotloop_api/auth.rb', line 23

def request(code:, state: nil)
  check_state(state)
  response = self.class.post("#{base_uri}token", query: request_params(code), headers:, timeout: 60)
  handle_error(response)
  @config.attributes = response.parsed_response
end

#request_from_url(url) ⇒ Object



30
31
32
# File 'lib/dotloop_api/auth.rb', line 30

def request_from_url(url)
  request(**parse_url_response(url))
end

#revokeObject



41
42
43
44
45
46
47
# File 'lib/dotloop_api/auth.rb', line 41

def revoke
  check_revoke_token
  params = { token: @config.access_token }
  response = self.class.post("#{base_uri}token/revoke", query: params, headers:, timeout: 60)
  handle_error(response)
  clear_auth
end