Class: StudyplusForSchoolSync::Authorizer

Inherits:
Object
  • Object
show all
Defined in:
lib/studyplus_for_school_sync/authorizer.rb

Overview

Retrieve Authorization Code

Constant Summary collapse

OOB_URI =
'urn:ietf:wg:oauth:2.0:oob'
RESPONSE_TYPE =
"code"
END_POINT =
"learning_material_supplier_api/v1/oauth/authorize"
DEFAULT_SCOPES =
%w(learning_material_supplier lms_passcode_issue)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(base_url:, client_id:, redirect_uri: nil, scopes: DEFAULT_SCOPES) ⇒ Authorizer

Returns a new instance of Authorizer.

Parameters:

  • base_url (String)

    API domain

  • client_id (String)

    ApplicationClientID

  • redirect_uri (String) (defaults to: nil)
  • scopes (Array) (defaults to: DEFAULT_SCOPES)


18
19
20
21
22
23
# File 'lib/studyplus_for_school_sync/authorizer.rb', line 18

def initialize(base_url:, client_id:, redirect_uri: nil, scopes: DEFAULT_SCOPES)
  @base_url = base_url
  @client_id = client_id
  @redirect_uri = redirect_uri || OOB_URI
  @scopes = scopes
end

Instance Attribute Details

#base_urlObject (readonly)

Returns the value of attribute base_url.



12
13
14
# File 'lib/studyplus_for_school_sync/authorizer.rb', line 12

def base_url
  @base_url
end

#client_idObject (readonly)

Returns the value of attribute client_id.



12
13
14
# File 'lib/studyplus_for_school_sync/authorizer.rb', line 12

def client_id
  @client_id
end

#redirect_uriObject (readonly)

Returns the value of attribute redirect_uri.



12
13
14
# File 'lib/studyplus_for_school_sync/authorizer.rb', line 12

def redirect_uri
  @redirect_uri
end

#scopesObject (readonly)

Returns the value of attribute scopes.



12
13
14
# File 'lib/studyplus_for_school_sync/authorizer.rb', line 12

def scopes
  @scopes
end

Instance Method Details

#authorizeObject

Launch the browser to get the Authorization Code and authorize it.



26
27
28
29
# File 'lib/studyplus_for_school_sync/authorizer.rb', line 26

def authorize
  query = URI.encode_www_form({ client_id: client_id, response_type: RESPONSE_TYPE, redirect_uri: redirect_uri, scope: scopes.join(" ") })
  Launchy.open(build_url(query))
end