From 5206b096273f6dc89eec28dd57b22b5f6a04cbfe Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 15 Feb 2021 20:23:06 -0700 Subject: [PATCH] Update ReportController, handle json reports --- app/Http/Controllers/ReportController.php | 40 +++++++++++++++++------ 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/app/Http/Controllers/ReportController.php b/app/Http/Controllers/ReportController.php index aa20fb3e..8791856e 100644 --- a/app/Http/Controllers/ReportController.php +++ b/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!'); + } } }