浏览代码

Update ReportController, handle json reports

Daniel Supernault 4 年之前
父节点
当前提交
5206b09627
共有 1 个文件被更改,包括 30 次插入10 次删除
  1. 30 10
      app/Http/Controllers/ReportController.php

+ 30 - 10
app/Http/Controllers/ReportController.php

@@ -86,11 +86,11 @@ class ReportController extends Controller
     public function formStore(Request $request)
     {
         $this->validate($request, [
-          'report'  => 'required|alpha_dash',
-          'type'    => 'required|alpha_dash',
-          'id'      => 'required|integer|min:1',
-          'msg'     => 'nullable|string|max:150',
-      ]);
+            'report'  => 'required|alpha_dash',
+            'type'    => 'required|alpha_dash',
+            'id'      => 'required|integer|min:1',
+            'msg'     => 'nullable|string|max:150',
+        ]);
 
         $profile = Auth::user()->profile;
         $reportType = $request->input('report');
@@ -113,7 +113,11 @@ class ReportController extends Controller
         ];
 
         if (!in_array($reportType, $types)) {
-            return redirect('/timeline')->with('error', 'Invalid report type');
+            if($request->wantsJson()) {
+                return abort(400, 'Invalid report type');
+            } else {
+                return redirect('/timeline')->with('error', 'Invalid report type');
+            }
         }
 
         switch ($object_type) {
@@ -127,16 +131,28 @@ class ReportController extends Controller
           break;
 
         default:
-          return redirect('/timeline')->with('error', 'Invalid report type');
+            if($request->wantsJson()) {
+                return abort(400, 'Invalid report type');
+            } else {
+                return redirect('/timeline')->with('error', 'Invalid report type');
+            }
           break;
       }
 
         if ($exists !== 0) {
-            return redirect('/timeline')->with('error', 'You have already reported this!');
+            if($request->wantsJson()) {
+                return response()->json(200);
+            } else {
+                return redirect('/timeline')->with('error', 'You have already reported this!');
+            }
         }
 
         if ($object->profile_id == $profile->id) {
-            return redirect('/timeline')->with('error', 'You cannot report your own content!');
+            if($request->wantsJson()) {
+                return response()->json(200);
+            } else {
+                return redirect('/timeline')->with('error', 'You cannot report your own content!');
+            }
         }
 
         $report = new Report();
@@ -149,6 +165,10 @@ class ReportController extends Controller
         $report->message = e($request->input('msg'));
         $report->save();
 
-        return redirect('/timeline')->with('status', 'Report successfully sent!');
+        if($request->wantsJson()) {
+            return response()->json(200);
+        } else {
+            return redirect('/timeline')->with('status', 'Report successfully sent!');
+        }
     }
 }