Files
openfoodnetwork/app/controllers/api/v0/reports_controller.rb
Sebastian Castro 287e8f5845 Reports Refactor 3
Easily group and create header and summary row
Auto format cells when appropriate type (boolean, dates) and render_format (neither csv nor json)
2022-05-12 16:54:13 +02:00

40 lines
955 B
Ruby

# frozen_string_literal: true
module Api
module V0
class ReportsController < Api::V0::BaseController
include ReportsActions
rescue_from ::Reporting::Errors::Base, with: :render_error
before_action :validate_report, :authorize_report, :validate_query
def show
params[:report_format] = 'json'
@report = report_class.new(current_api_user, params)
render_report
end
private
def render_report
render json: { data: @report.as_json }
end
def render_error(error)
render json: { error: error.message }, status: :unprocessable_entity
end
def validate_report
raise ::Reporting::Errors::NoReportType if report_type.blank?
raise ::Reporting::Errors::ReportNotFound if report_class.blank?
end
def validate_query
raise ::Reporting::Errors::MissingQueryParams if ransack_params.blank?
end
end
end
end