module CourseMember
Public Instance Methods
as_normalized_json(member = {})
click to toggle source
# File lib/mumuki/classroom/models/concerns/course_member.rb, line 43 def as_normalized_json(member = {}) member.as_json.merge uid: (member[:uid] || member[:email])&.downcase, email: member[:email]&.downcase, last_name: member[:last_name]&.downcase&.titleize, first_name: member[:first_name]&.downcase&.titleize end
as_user(verified: true)
click to toggle source
# File lib/mumuki/classroom/models/concerns/course_member.rb, line 20 def as_user(verified: true) member_json = as_json.merge_if(verified, validated_first_name: first_name, validated_last_name: last_name) User.whitelist_attributes member_json end
attributes_from_uid(uid)
click to toggle source
# File lib/mumuki/classroom/models/concerns/course_member.rb, line 31 def attributes_from_uid(uid) whitelist_attributes User.locate!(uid).to_resource_h end
create_from_json!(member_json)
click to toggle source
# File lib/mumuki/classroom/models/concerns/course_member.rb, line 35 def create_from_json!(member_json) create! normalized_attributes_from_json(member_json) end
ensure_not_exists!(query)
click to toggle source
# File lib/mumuki/classroom/models/concerns/course_member.rb, line 26 def ensure_not_exists!(query) existing_members = where(query) raise Mumuki::Classroom::CourseMemberExistsError, {existing_members: existing_members.map(&:uid)}.to_json if existing_members.exists? end
normalized_attributes_from_json(member_json)
click to toggle source
# File lib/mumuki/classroom/models/concerns/course_member.rb, line 39 def normalized_attributes_from_json(member_json) whitelist_attributes as_normalized_json(member_json) end