Class: Api::ClappersSerializer

Inherits:
ActiveModel::Serializer
  • Object
show all
Includes:
RelationsSerializerHelper
Defined in:
app/serializers/api/clappers_serializer.rb

Instance Method Summary collapse

Methods included from RelationsSerializerHelper

#has_clapped, #has_followed, #has_saved

Instance Method Details

#clappersObject



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
36
37
38
# File 'app/serializers/api/clappers_serializer.rb', line 9

def clappers
  includes = %i[user]

  object
    .relations
    .clapped
    .includes(includes)
    .map do |relation|
      user = relation.user
      user = Users::DeletedUser.new unless user.active?
      data = {
        id: user.id,
        first_name: user.first_name,
        last_name: user.last_name,
        nickname: user.nickname,
        logo_url: user.logo_url,
        logo_url_sm: user.logo_url_sm,
        has_followed: has_followed(user),
        has_clapped: has_clapped(user),
        short_bio: user.short_bio
      }
      if object.instance_of?(Post)
        data = data.merge({
                            can_contact: user.can_contact,
                            projects_count: user.projects_count
                          })
      end
      data
    end
end