about summary refs log tree commit diff
path: root/app
diff options
context:
space:
mode:
authorMatt Jankowski <mjankowski@thoughtbot.com>2017-05-30 21:13:31 -0400
committerGitHub <noreply@github.com>2017-05-30 21:13:31 -0400
commit7c6e02aaf3e3771448ada4197eda66322dff714f (patch)
tree840096b007547a680fe41fa58443bcc826c1d706 /app
parent7f554306523f0ba531df768f21f6609d186406ea (diff)
Refactor api/v1/reports controller (#3469)
Diffstat (limited to 'app')
-rw-r--r--app/controllers/api/v1/reports_controller.rb26
1 files 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