Class: LedgerSync::Adaptors::QuickBooksOnline::OAuthClient::RedirectURIParser

Inherits:
Object
  • Object
show all
Defined in:
lib/ledger_sync/adaptors/quickbooks_online/oauth_client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(uri:) ⇒ RedirectURIParser

Returns a new instance of RedirectURIParser.



14
15
16
# File 'lib/ledger_sync/adaptors/quickbooks_online/oauth_client.rb', line 14

def initialize(uri:)
  @uri = uri
end

Instance Attribute Details

#uriObject (readonly)

Returns the value of attribute uri.



12
13
14
# File 'lib/ledger_sync/adaptors/quickbooks_online/oauth_client.rb', line 12

def uri
  @uri
end

Instance Method Details

#codeObject



18
19
20
# File 'lib/ledger_sync/adaptors/quickbooks_online/oauth_client.rb', line 18

def code
  @code ||= query.fetch('code').first
end

#parsed_uriObject



22
23
24
# File 'lib/ledger_sync/adaptors/quickbooks_online/oauth_client.rb', line 22

def parsed_uri
  @parsed_uri = URI.parse(uri)
end

#queryObject



26
27
28
# File 'lib/ledger_sync/adaptors/quickbooks_online/oauth_client.rb', line 26

def query
  @query ||= CGI.parse(parsed_uri.query)
end

#realm_idObject



30
31
32
# File 'lib/ledger_sync/adaptors/quickbooks_online/oauth_client.rb', line 30

def realm_id
  @realm_id ||= query.fetch('realmId').first
end

#redirect_uriObject



34
35
36
37
38
39
40
41
42
43
# File 'lib/ledger_sync/adaptors/quickbooks_online/oauth_client.rb', line 34

def redirect_uri
  @redirect_uri ||= begin
    use_uri = parsed_uri.dup
    use_uri.fragment = nil
    use_uri.query = nil
    ret = use_uri.to_s
    ret = ret[0..-2] if ret.end_with?('/')
    ret
  end
end