2019-05-03 06:17:27 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2016-12-23 00:08:35 +08:00
|
|
|
class WebHookPostSerializer < PostSerializer
|
2018-01-18 02:40:21 +08:00
|
|
|
|
2019-10-02 09:41:33 +08:00
|
|
|
attributes :topic_posts_count,
|
2019-12-05 01:22:44 +08:00
|
|
|
:topic_filtered_posts_count,
|
2019-10-02 09:41:33 +08:00
|
|
|
:topic_archetype,
|
|
|
|
:category_slug
|
2018-01-18 02:40:21 +08:00
|
|
|
|
2017-04-21 10:04:21 +08:00
|
|
|
def include_topic_title?
|
|
|
|
true
|
2016-12-23 00:08:35 +08:00
|
|
|
end
|
|
|
|
|
2017-04-21 10:04:21 +08:00
|
|
|
%i{
|
|
|
|
can_view
|
|
|
|
can_edit
|
|
|
|
can_delete
|
|
|
|
can_recover
|
|
|
|
can_wiki
|
2018-05-21 10:52:57 +08:00
|
|
|
actions_summary
|
|
|
|
can_view_edit_history
|
|
|
|
yours
|
|
|
|
primary_group_flair_url
|
|
|
|
primary_group_flair_bg_color
|
|
|
|
primary_group_flair_color
|
2019-04-19 22:53:58 +08:00
|
|
|
notice_args
|
|
|
|
notice_type
|
2017-04-21 10:04:21 +08:00
|
|
|
}.each do |attr|
|
|
|
|
define_method("include_#{attr}?") do
|
|
|
|
false
|
|
|
|
end
|
2016-12-23 00:08:35 +08:00
|
|
|
end
|
2018-01-18 02:40:21 +08:00
|
|
|
|
|
|
|
def topic_posts_count
|
2018-01-23 01:54:11 +08:00
|
|
|
object.topic ? object.topic.posts_count : 0
|
2018-01-18 02:40:21 +08:00
|
|
|
end
|
|
|
|
|
2019-12-05 01:22:44 +08:00
|
|
|
def topic_filtered_posts_count
|
|
|
|
object.topic ? object.topic.posts.where(post_type: Post.types[:regular]).count : 0
|
|
|
|
end
|
|
|
|
|
2019-10-02 09:41:33 +08:00
|
|
|
def topic_archetype
|
|
|
|
object.topic ? object.topic.archetype : ''
|
|
|
|
end
|
|
|
|
|
|
|
|
def include_category_slug?
|
|
|
|
object.topic && object.topic.category
|
|
|
|
end
|
|
|
|
|
|
|
|
def category_slug
|
|
|
|
object.topic && object.topic.category ? object.topic.category.slug_for_url : ''
|
|
|
|
end
|
|
|
|
|
2019-08-27 20:09:00 +08:00
|
|
|
def include_readers_count?
|
|
|
|
false
|
|
|
|
end
|
2016-12-23 00:08:35 +08:00
|
|
|
end
|