Class: ConnectorsSdk::Base::Authorization
- Inherits:
-
Object
- Object
- ConnectorsSdk::Base::Authorization
show all
- Defined in:
- lib/connectors_sdk/base/authorization.rb
Class Method Summary
collapse
Class Method Details
.access_token(params) ⇒ Object
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/connectors_sdk/base/authorization.rb', line 30
def access_token(params)
missing = missing_fields(params, %w[client_id client_secret code redirect_uri])
unless missing.blank?
raise ConnectorsShared::ClientError.new("Missing required fields: #{missing.join(', ')}")
end
params[:grant_type] = 'authorization_code'
client = oauth_client(params)
client.fetch_access_token
end
|
.authorization_uri(params) ⇒ Object
18
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/connectors_sdk/base/authorization.rb', line 18
def authorization_uri(params)
missing = missing_fields(params, %w[client_id])
unless missing.blank?
raise ConnectorsShared::ClientError.new("Missing required fields: #{missing.join(', ')}")
end
params[:response_type] = 'code'
params[:additional_parameters] = additional_parameters
client = oauth_client(params)
client.authorization_uri.to_s
end
|
.missing_fields(params, required = []) ⇒ Object
65
66
67
|
# File 'lib/connectors_sdk/base/authorization.rb', line 65
def missing_fields(params, required = [])
Array.wrap(required).select { |field| params[field.to_sym].nil? }
end
|
.oauth_client(params) ⇒ Object
55
56
57
58
59
60
61
62
63
|
# File 'lib/connectors_sdk/base/authorization.rb', line 55
def oauth_client(params)
options = params.merge(
:authorization_uri => authorization_url,
:token_credential_uri => token_credential_uri,
:scope => oauth_scope
)
options[:state] = JSON.dump(options[:state]) if options[:state]
Signet::OAuth2::Client.new(options)
end
|
.oauth_scope ⇒ Object
69
70
71
|
# File 'lib/connectors_sdk/base/authorization.rb', line 69
def oauth_scope
raise 'Not implemented for this connector'
end
|
.refresh(params) ⇒ Object