dceed1caa1
Merge remote-tracking branch 'origin/main' into feature/046 #46 #46 #46 #46 #46 #46 Co-authored-by: miteruzo <miteruzo@naver.com> Reviewed-on: #339
22 lines
505 B
Ruby
22 lines
505 B
Ruby
# frozen_string_literal: true
|
|
|
|
|
|
module PostRepr
|
|
BASE = { include: { tags: TagRepr::BASE, uploaded_user: UserRepr::BASE },
|
|
methods: [:parent_posts, :child_posts, :sibling_posts] }.freeze
|
|
|
|
module_function
|
|
|
|
def base post, current_user = nil
|
|
json = post.as_json(BASE)
|
|
return json.merge(viewed: false) unless current_user
|
|
|
|
viewed = current_user.viewed?(post)
|
|
json.merge(viewed:)
|
|
end
|
|
|
|
def many posts, current_user = nil
|
|
posts.map { |p| base(p, current_user) }
|
|
end
|
|
end
|