commit: 7c6e02aaf3e3771448ada4197eda66322dff714f
parent: 7f554306523f0ba531df768f21f6609d186406ea
Author: Matt Jankowski <mjankowski@thoughtbot.com>
Date: Tue, 30 May 2017 21:13:31 -0400
Refactor api/v1/reports controller (#3469)
Diffstat:
1 file changed, 18 insertions(+), 8 deletions(-)
diff --git a/app/controllers/api/v1/reports_controller.rb b/app/controllers/api/v1/reports_controller.rb
@@ -8,22 +8,32 @@ class Api::V1::ReportsController < ApiController
respond_to :json
def index
- @reports = Report.where(account: current_account)
+ @reports = current_account.reports
end
def create
- status_ids = report_params[:status_ids].is_a?(Enumerable) ? report_params[:status_ids] : [report_params[:status_ids]]
-
- @report = Report.create!(account: current_account,
- target_account: Account.find(report_params[:account_id]),
- status_ids: Status.find(status_ids).pluck(:id),
- comment: report_params[:comment])
-
+ @report = current_account.reports.create!(
+ target_account: reported_account,
+ status_ids: reported_status_ids,
+ comment: report_params[:comment]
+ )
render :show
end
private
+ def reported_status_ids
+ Status.find(status_ids).pluck(:id)
+ end
+
+ def status_ids
+ Array(report_params[:status_ids])
+ end
+
+ def reported_account
+ Account.find(report_params[:account_id])
+ end
+
def report_params
params.permit(:account_id, :comment, status_ids: [])
end