29 lines
866 B
Ruby
29 lines
866 B
Ruby
# frozen_string_literal: true
|
|
|
|
class CommentPresenter < BasePresenter
|
|
def as_json(opts={})
|
|
{
|
|
id: id,
|
|
guid: guid,
|
|
text: message.plain_text_for_json,
|
|
author: author.as_api_response(:backbone),
|
|
created_at: created_at,
|
|
mentioned_people: mentioned_people.as_api_response(:backbone)
|
|
}
|
|
end
|
|
|
|
def as_api_response
|
|
{
|
|
guid: guid,
|
|
body: message.plain_text_for_json,
|
|
author: PersonPresenter.new(author).as_api_json,
|
|
created_at: created_at,
|
|
mentioned_people: build_mentioned_people_json,
|
|
reported: current_user.present? && reports.where(user: current_user).exists?
|
|
}
|
|
end
|
|
|
|
def build_mentioned_people_json
|
|
mentioned_people.map {|m| PersonPresenter.new(m).as_api_json }
|
|
end
|
|
end
|