From 7c6e02aaf3e3771448ada4197eda66322dff714f Mon Sep 17 00:00:00 2001
From: Matt Jankowski <mjankowski@thoughtbot.com>
Date: Tue, 30 May 2017 21:13:31 -0400
Subject: [PATCH] Refactor api/v1/reports controller (#3469)

---
 app/controllers/api/v1/reports_controller.rb | 26 ++++++++++++++------
 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
index f83c573cb..e0f9ed232 100644
--- 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
-- 
GitLab