class Smarteru::Resources::Users
Constants
- DEFAULT_CREATE_INFO
Public Instance Methods
create(info = {})
click to toggle source
# File lib/smarteru/resources/users.rb, line 14 def create(info = {}) validate!(info, :email, :employee_i_d, :given_name, :surname, :group) params = create_params(info) client.request('createUser', params) end
enroll(id_or_email, group, module_id)
click to toggle source
# File lib/smarteru/resources/users.rb, line 42 def enroll(id_or_email, group, module_id) params = { learning_module_enrollment: { enrollment: { user: normalize_id_param(id_or_email), group_name: group, learning_module_i_d: module_id } } } client.request('enrollLearningModules', params) end
enrolled?(id_or_email, group, course_name)
click to toggle source
# File lib/smarteru/resources/users.rb, line 75 def enrolled?(id_or_email, group, course_name) enrollments = learner_report(id_or_email, group) enrollments.any? { |e| e[:course_name] == course_name } end
get(id_or_email)
click to toggle source
# File lib/smarteru/resources/users.rb, line 4 def get(id_or_email) params = { user: normalize_id_param(id_or_email) } response = client.request('getUser', params) response.success? ? response.result[:user] : response rescue Error => e return nil if e.code == 'GU:03' fail e end
learner_report(id_or_email, group)
click to toggle source
# File lib/smarteru/resources/users.rb, line 53 def learner_report(id_or_email, group) params = { report: { filters: { groups: { group_names: { group_name: group } }, learning_modules: nil, users: { user_identifier: normalize_id_param(id_or_email, :email_address) } }, columns: [ { column_name: 'ENROLLED_DATE' }, { column_name: 'COMPLETED_DATE' }, { column_name: 'DUE_DATE' }, { column_name: 'LAST_ACCESSED_DATE' }, { column_name: 'STARTED_DATE' } ], custom_fields: nil } } response = client.request('getLearnerReport', params) [ response.result[:learner_report][:learner] ].flatten.compact end
signin(id_or_email)
click to toggle source
# File lib/smarteru/resources/users.rb, line 36 def signin(id_or_email) params = { security: normalize_id_param(id_or_email) } client.request('requestExternalAuthorization', params) end
update(id_or_email, info = {})
click to toggle source
# File lib/smarteru/resources/users.rb, line 22 def update(id_or_email, info = {}) params = { user: { identifier: normalize_id_param(id_or_email), info: info, profile: nil, groups: nil } } client.request('updateUser', params) end
update_employee_id(id_or_email, new_employee_id)
click to toggle source
# File lib/smarteru/resources/users.rb, line 32 def update_employee_id(id_or_email, new_employee_id) update(id_or_email, employee_i_d: new_employee_id) end
Private Instance Methods
create_params(info)
click to toggle source
# File lib/smarteru/resources/users.rb, line 87 def create_params(info) group = info.delete(:group) { user: { info: info.merge(DEFAULT_CREATE_INFO), profile: { home_group: group }, groups: { group: { group_name: group, group_permissions: nil } } } } end
normalize_id_param(value, email_field_name = :email)
click to toggle source
# File lib/smarteru/resources/users.rb, line 99 def normalize_id_param(value, email_field_name = :email) value =~ /@/ ? { email_field_name => value } : { employee_i_d: value } end
validate!(params, *args)
click to toggle source
# File lib/smarteru/resources/users.rb, line 103 def validate!(params, *args) args.each do |arg| fail(":#{arg} required to create user") unless params.include?(arg) end end