|
- # frozen_string_literal: true
-
-
- module PostRepr
- BASE = { include: { tags: TagRepr::BASE, uploaded_user: UserRepr::BASE } }.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
|