123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <?php
- namespace App\Http\Controllers\Admin;
- 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)
- {
- $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'));
- }
- public function instanceScan(Request $request)
- {
- DB::transaction(function() {
- Profile::select('domain')->whereNotNull('domain')
- ->groupBy('id')
- ->groupBy('domain')
- ->chunk(50, function($domains) {
- foreach($domains as $domain) {
- Instance::firstOrCreate([
- 'domain' => $domain->domain
- ]);
- }
- });
- });
- 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([]);
- }
- }
|