Module: Api::UsersSerializerHelper
- Included in:
- ChallengeSerializer, CommentSerializer, MembersSerializer, NeedSerializer, PostSerializer, ProgramSerializer, ProjectIndexSerializer, ProjectSerializer, SerializerHelper, SpaceSerializer, WorkgroupSerializer
- Defined in:
- app/serializers/concerns/api/users_serializer_helper.rb
Instance Method Summary collapse
- #creator(obj = nil) ⇒ Object
- #get_user_json(user, obj) ⇒ Object
- #members(obj = nil) ⇒ Object
- #reviewers(obj = nil) ⇒ Object
- #users(obj = nil) ⇒ Object
Instance Method Details
#creator(obj = nil) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'app/serializers/concerns/api/users_serializer_helper.rb', line 63 def creator(obj = nil) obj = object if obj.nil? # Get the user id # TODO: move this to each model user_id = if obj.instance_of?(Post) || obj.instance_of?(Comment) || obj.instance_of?(Need) obj.user_id else obj.creator[:id] end # Get the user object user = User.find(user_id) || Users::DeletedUser.new # Render the object { id: user.id, first_name: user.first_name, last_name: user.last_name, logo_url: user.logo_url('80x80^'), logo_url_sm: user.logo_url_sm, short_bio: user.short_bio } end |
#get_user_json(user, obj) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'app/serializers/concerns/api/users_serializer_helper.rb', line 6 def get_user_json(user, obj) { id: user.id, first_name: user.first_name, last_name: user.last_name, nickname: user.nickname, last_active_at: user.last_active_at, skills: user.skills.pluck(:skill_name), ressources: user.ressources.pluck(:ressource_name), status: user.status, can_contact: user.can_contact, owner: user.has_role?(:owner, obj), admin: user.has_role?(:admin, obj), member: user.has_role?(:member, obj), reviewer: user.has_role?(:reviewer, obj), has_followed: has_followed(user), has_clapped: has_clapped(user), has_saved: has_clapped(user), current_sign_in_at: user.current_sign_in_at, projects_count: user.projects_count, mutual_count: user.mutual_count, logo_url: user.logo_url, logo_url_sm: user.logo_url_sm, short_bio: user.short_bio, geoloc: { lat: user.latitude, lng: user.longitude } } end |
#members(obj = nil) ⇒ Object
44 45 46 47 48 49 50 51 52 |
# File 'app/serializers/concerns/api/users_serializer_helper.rb', line 44 def members(obj = nil) obj = object if obj.nil? User.where(id: User.with_any_role( { name: :member, resource: obj }, { name: :pending, resource: obj } ).map(&:id)).where(active_status: 'active').map do |user| get_user_json(user, obj) end end |
#reviewers(obj = nil) ⇒ Object
54 55 56 57 58 59 60 61 |
# File 'app/serializers/concerns/api/users_serializer_helper.rb', line 54 def reviewers(obj = nil) obj = object if obj.nil? User.where(id: User.with_any_role( { name: :reviewer, resource: obj } ).map(&:id)).where(active_status: 'active').map do |user| get_user_json(user, obj) end end |
#users(obj = nil) ⇒ Object
37 38 39 40 41 42 |
# File 'app/serializers/concerns/api/users_serializer_helper.rb', line 37 def users(obj = nil) obj = object if obj.nil? obj.users.where(active_status: 'active').map do |user| get_user_json(user, obj) end end |