Browse Source

Update AdminInstanceController

Daniel Supernault 6 years ago
parent
commit
b30c8aade5
1 changed files with 67 additions and 1 deletions
  1. 67 1
      app/Http/Controllers/Admin/AdminInstanceController.php

+ 67 - 1
app/Http/Controllers/Admin/AdminInstanceController.php

@@ -6,13 +6,37 @@ use DB, Cache;
 use App\{Instance, Profile};
 use Carbon\Carbon;
 use Illuminate\Http\Request;
+use Illuminate\Validation\Rule;
 
 trait AdminInstanceController
 {
 
 	public function instances(Request $request)
 	{
-		$instances = Instance::orderByDesc('id')->paginate(5);
+		$this->validate($request, [
+			'filter' => [
+				'nullable',
+				'string',
+				'min:1',
+				'max:20',
+				Rule::in(['autocw', 'unlisted', 'banned'])
+			],
+		]);
+		if($request->has('filter') && $request->filled('filter')) {
+			switch ($request->filter) {
+				case 'autocw':
+					$instances = Instance::whereAutoCw(true)->orderByDesc('id')->paginate(5);
+					break;
+				case 'unlisted':
+					$instances = Instance::whereUnlisted(true)->orderByDesc('id')->paginate(5);
+					break;
+				case 'banned':
+					$instances = Instance::whereBanned(true)->orderByDesc('id')->paginate(5);
+					break;
+			}
+		} else {
+			$instances = Instance::orderByDesc('id')->paginate(5);
+		}
 		return view('admin.instances.home', compact('instances'));
 	}
 
@@ -32,4 +56,46 @@ trait AdminInstanceController
 		return redirect()->back();
 	}
 
+	public function instanceShow(Request $request, $id)
+	{
+		$instance = Instance::findOrFail($id);
+		return view('admin.instances.show', compact('instance'));
+	}
+
+	public function instanceEdit(Request $request, $id)
+	{
+		$this->validate($request, [
+			'action' => [
+				'required',
+				'string',
+				'min:1',
+				'max:20',
+				Rule::in(['autocw', 'unlist', 'ban'])
+			],
+		]);
+
+		$instance = Instance::findOrFail($id);
+		$unlisted = $instance->unlisted;
+		$autocw = $instance->auto_cw;
+		$banned = $instance->banned;
+
+		switch ($request->action) {
+			case 'autocw':
+				$instance->auto_cw = $autocw == true ? false : true;
+				$instance->save();
+				break;
+
+			case 'unlist':
+				$instance->unlisted = $unlisted == true ? false : true;
+				$instance->save();
+				break;
+
+			case 'ban':
+				$instance->banned = $banned == true ? false : true;
+				$instance->save();
+				break;
+		}
+
+		return response()->json([]);
+	}
 }