Class: Post

Inherits:
ApplicationRecord show all
Includes:
AlgoliaSearch, RecsysHelpers, RelationHelpers, Utils
Defined in:
app/models/post.rb

Instance Method Summary collapse

Methods included from Utils

#obj_type, #reindex, #sanitize, #sanitize_content, #sanitize_description

Methods included from RelationHelpers

#clappers, #claps_count, #followers, #followers_count, #reviews_count, #saves_count

Methods included from RecsysHelpers

#add_edge, #remove_edge

Instance Method Details

#creatorObject



34
35
36
37
38
39
40
41
# File 'app/models/post.rb', line 34

def creator
  {
    id: user.id,
    first_name: user.first_name,
    last_name: user.last_name,
    logo_url: user.logo_url_sm
  }
end


53
54
55
# File 'app/models/post.rb', line 53

def frontend_link
  "/post/#{id}"
end

#notif_new_clap(clapper) ⇒ Object



57
58
59
60
61
62
63
64
65
66
67
# File 'app/models/post.rb', line 57

def notif_new_clap(clapper)
  Notification.create(
    target: user,
    category: :clap,
    type: 'new_clap',
    object: self,
    metadata: {
      clapper: clapper
    }
  )
end

#participants_except_commenter(comment) ⇒ Object



47
48
49
50
51
# File 'app/models/post.rb', line 47

def participants_except_commenter(comment)
  # user_id(post creator) + all_other_commenters - current_commenter
  participant_ids = (([user_id] + comments.pluck(:user_id)).uniq - [comment.user_id])
  User.where(id: participant_ids)
end

#usersObject



43
44
45
# File 'app/models/post.rb', line 43

def users
  [user, comments.map(&:user)].flatten.uniq
end