2019-05-02 18:17:27 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2013-12-23 18:50:36 -05:00
|
|
|
class TopListSerializer < ApplicationSerializer
|
|
|
|
|
2021-03-30 11:42:26 -04:00
|
|
|
attributes :can_create_topic
|
2014-01-16 22:38:08 -05:00
|
|
|
|
|
|
|
def can_create_topic
|
|
|
|
scope.can_create?(Topic)
|
|
|
|
end
|
|
|
|
|
2013-12-23 18:50:36 -05:00
|
|
|
TopTopic.periods.each do |period|
|
2014-01-13 19:02:14 -05:00
|
|
|
attribute period
|
|
|
|
|
2013-12-23 18:50:36 -05:00
|
|
|
define_method(period) do
|
2019-05-06 21:57:55 -04:00
|
|
|
if resolved = object.public_send(period)
|
|
|
|
TopicListSerializer.new(resolved, scope: scope).as_json
|
2019-05-06 21:27:05 -04:00
|
|
|
end
|
2013-12-23 18:50:36 -05:00
|
|
|
end
|
2014-01-13 19:02:14 -05:00
|
|
|
|
2013-12-23 18:50:36 -05:00
|
|
|
end
|
|
|
|
|
|
|
|
end
|