mirror of
https://github.com/discourse/discourse-rewind.git
synced 2025-12-12 18:33:30 +00:00
42 lines
1.3 KiB
Ruby
42 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module ::DiscourseRewind
|
|
class RewindsController < ::ApplicationController
|
|
requires_plugin PLUGIN_NAME
|
|
|
|
requires_login
|
|
|
|
def index
|
|
DiscourseRewind::FetchReports.call(service_params) do
|
|
on_model_not_found(:year) do
|
|
raise Discourse::NotFound.new(nil, custom_message: "discourse_rewind.invalid_year")
|
|
end
|
|
on_model_not_found(:reports) do
|
|
raise Discourse::NotFound.new(nil, custom_message: "discourse_rewind.report_failed")
|
|
end
|
|
on_success do |reports:, total_available:|
|
|
render json: { reports: reports, total_available: total_available }, status: :ok
|
|
end
|
|
end
|
|
end
|
|
|
|
def show
|
|
DiscourseRewind::FetchReport.call(service_params) do
|
|
on_model_not_found(:year) do
|
|
raise Discourse::NotFound.new(nil, custom_message: "discourse_rewind.invalid_year")
|
|
end
|
|
on_model_not_found(:report_class) do
|
|
raise Discourse::NotFound.new(
|
|
nil,
|
|
custom_message: "discourse_rewind.invalid_report_index",
|
|
)
|
|
end
|
|
on_model_not_found(:report) do
|
|
raise Discourse::NotFound.new(nil, custom_message: "discourse_rewind.report_failed")
|
|
end
|
|
on_success { |report:| render json: { report: report }, status: :ok }
|
|
end
|
|
end
|
|
end
|
|
end
|