Class: PlatformSdk::OneRoster::Client
- Inherits:
-
Object
- Object
- PlatformSdk::OneRoster::Client
- Defined in:
- lib/platform_sdk/one_roster/client.rb
Overview
OneRoster Client which wraps the swagger generated OneRoster Management APIs
Instance Attribute Summary collapse
-
#academic_sessions_api ⇒ Object
Returns the value of attribute academic_sessions_api.
-
#classes_api ⇒ Object
Returns the value of attribute classes_api.
-
#courses_api ⇒ Object
Returns the value of attribute courses_api.
-
#demographics_api ⇒ Object
Returns the value of attribute demographics_api.
-
#enrollments_api ⇒ Object
Returns the value of attribute enrollments_api.
-
#line_items_api ⇒ Object
Returns the value of attribute line_items_api.
-
#orgs_api ⇒ Object
Returns the value of attribute orgs_api.
-
#results_api ⇒ Object
Returns the value of attribute results_api.
-
#users_api ⇒ Object
Returns the value of attribute users_api.
Instance Method Summary collapse
- #error(api_error) ⇒ Object
- #function_name(key) ⇒ Object
- #init_apis ⇒ Object
-
#initialize(oneroster_base_url, auth_client) ⇒ Client
constructor
A new instance of Client.
- #key_map(key) ⇒ Object
- #pluralize_oneroster_type(record_type) ⇒ Object
-
#records_type ⇒ Array<(UsersType, Integer, Hash)>
UsersType data, response status code and response headers.
- #with_rescue_and_set_token ⇒ Object
Constructor Details
#initialize(oneroster_base_url, auth_client) ⇒ Client
Returns a new instance of Client.
10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/platform_sdk/one_roster/client.rb', line 10 def initialize(oneroster_base_url, auth_client) @auth = auth_client uri = URI.parse(oneroster_base_url) ::OneRosterClient.configure do |config| # Configure OAuth2 access token for authorization: OAuth2Security config.scheme = uri.scheme config.host = uri.host config.base_path = uri.path end init_apis end |
Instance Attribute Details
#academic_sessions_api ⇒ Object
Returns the value of attribute academic_sessions_api.
7 8 9 |
# File 'lib/platform_sdk/one_roster/client.rb', line 7 def academic_sessions_api @academic_sessions_api end |
#classes_api ⇒ Object
Returns the value of attribute classes_api.
7 8 9 |
# File 'lib/platform_sdk/one_roster/client.rb', line 7 def classes_api @classes_api end |
#courses_api ⇒ Object
Returns the value of attribute courses_api.
7 8 9 |
# File 'lib/platform_sdk/one_roster/client.rb', line 7 def courses_api @courses_api end |
#demographics_api ⇒ Object
Returns the value of attribute demographics_api.
7 8 9 |
# File 'lib/platform_sdk/one_roster/client.rb', line 7 def demographics_api @demographics_api end |
#enrollments_api ⇒ Object
Returns the value of attribute enrollments_api.
7 8 9 |
# File 'lib/platform_sdk/one_roster/client.rb', line 7 def enrollments_api @enrollments_api end |
#line_items_api ⇒ Object
Returns the value of attribute line_items_api.
7 8 9 |
# File 'lib/platform_sdk/one_roster/client.rb', line 7 def line_items_api @line_items_api end |
#orgs_api ⇒ Object
Returns the value of attribute orgs_api.
7 8 9 |
# File 'lib/platform_sdk/one_roster/client.rb', line 7 def orgs_api @orgs_api end |
#results_api ⇒ Object
Returns the value of attribute results_api.
7 8 9 |
# File 'lib/platform_sdk/one_roster/client.rb', line 7 def results_api @results_api end |
#users_api ⇒ Object
Returns the value of attribute users_api.
7 8 9 |
# File 'lib/platform_sdk/one_roster/client.rb', line 7 def users_api @users_api end |
Instance Method Details
#error(api_error) ⇒ Object
79 80 81 82 83 84 85 86 87 |
# File 'lib/platform_sdk/one_roster/client.rb', line 79 def error(api_error) case api_error.response[:status] when 404 nil else puts "Exception when calling OneRoster resource: #{api_error}" raise end end |
#function_name(key) ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/platform_sdk/one_roster/client.rb', line 89 def function_name(key) { student: "user", agents: "user", orgs: "org", school: "org", terms: "academic_session", school_year: "academic_session", grading_period: "academic_session", parent: "academic_session" }[key] || key end |
#init_apis ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/platform_sdk/one_roster/client.rb', line 24 def init_apis @users_api = ::OneRosterClient::UsersManagementApi.new @classes_api = ::OneRosterClient::ClassesManagementApi.new @courses_api = ::OneRosterClient::CoursesManagementApi.new @enrollments_api = ::OneRosterClient::EnrollmentsManagementApi.new @academic_sessions_api = ::OneRosterClient::AcademicSessionsManagementApi.new @line_items_api = ::OneRosterClient::LineItemsManagementApi.new @results_api = ::OneRosterClient::ResultsManagementApi.new @orgs_api = ::OneRosterClient::OrgsManagementApi.new @demographics_api = ::OneRosterClient::DemographicsManagementApi.new end |
#key_map(key) ⇒ Object
102 103 104 105 106 107 |
# File 'lib/platform_sdk/one_roster/client.rb', line 102 def key_map(key) { class: "_class", demographic: "demographics" }[key] || key end |
#pluralize_oneroster_type(record_type) ⇒ Object
64 65 66 67 68 69 70 |
# File 'lib/platform_sdk/one_roster/client.rb', line 64 def pluralize_oneroster_type(record_type) if record_type == :class "#{record_type}es" else "#{record_type}s" end end |
#records_type ⇒ Array<(UsersType, Integer, Hash)>
Returns UsersType data, response status code and response headers.
55 56 57 58 59 60 61 62 |
# File 'lib/platform_sdk/one_roster/client.rb', line 55 %i[users classes courses enrollments demographics orgs line_items results].each do |records_type| define_method(records_type) do |opts = {}| api = instance_variable_get "@#{records_type}_api" with_rescue_and_set_token do one_roster_records(api, records_type, opts) end end end |
#with_rescue_and_set_token ⇒ Object
72 73 74 75 76 77 |
# File 'lib/platform_sdk/one_roster/client.rb', line 72 def with_rescue_and_set_token ::OneRosterClient.configure.access_token = @auth.auth_token yield rescue ::OneRosterClient::Error => e error(e) end |