class Clever::Types::Student
Attributes
first_name[R]
last_name[R]
provider[R]
uid[R]
Public Class Methods
new(attributes = {}, client: nil)
click to toggle source
# File lib/clever/types/student.rb, line 11 def initialize(attributes = {}, client: nil) @district_username = attributes.dig('credentials', 'district_username') @email = attributes['email'] @first_name = attributes['name']['first'] @last_name = attributes['name']['last'] @provider = 'clever' @sis_id = attributes.dig('roles', 'student', 'sis_id') @uid = attributes['id'] @username = username(client) end
Public Instance Methods
to_h()
click to toggle source
# File lib/clever/types/student.rb, line 28 def to_h { uid: @uid, first_name: @first_name, last_name: @last_name, username: @username, provider: @provider } end
username(client = nil)
click to toggle source
# File lib/clever/types/student.rb, line 22 def username(client = nil) username_source = client&.username_source @username ||= presence(username_from(username_source)) || default_username end
Private Instance Methods
default_username()
click to toggle source
# File lib/clever/types/student.rb, line 46 def default_username presence(@district_username) || presence(@email) || @sis_id end
username_from(username_source)
click to toggle source
# File lib/clever/types/student.rb, line 40 def username_from(username_source) return if blank?(username_source) presence(instance_variable_get("@#{username_source}")) end