From 89461213340e657d9f268d92fce1808bcffd7eb4 Mon Sep 17 00:00:00 2001 From: Daniel Supernault <danielsupernault@gmail.com> Date: Sun, 28 Apr 2019 16:39:26 -0600 Subject: [PATCH] Add LabsSettings controller --- .../Controllers/Settings/LabsSettings.php | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 app/Http/Controllers/Settings/LabsSettings.php diff --git a/app/Http/Controllers/Settings/LabsSettings.php b/app/Http/Controllers/Settings/LabsSettings.php new file mode 100644 index 000000000..f0020b570 --- /dev/null +++ b/app/Http/Controllers/Settings/LabsSettings.php @@ -0,0 +1,83 @@ +<?php + +namespace App\Http\Controllers\Settings; + +use Illuminate\Http\Request; +use Cookie, Redis; +use App\Services\SuggestionService; + +trait LabsSettings { + + public function __constructor() + { + $this->middleware('auth'); + } + + public function labs(Request $request) + { + $profile = $request->user()->profile; + return view('settings.labs', compact('profile')); + } + + public function labsStore(Request $request) + { + $this->validate($request, [ + 'profile_layout' => 'nullable', + 'dark_mode' => 'nullable', + 'profile_suggestions' => 'nullable' + ]); + + $changes = false; + + $profile = $request->user()->profile; + + $cookie = Cookie::forget('dark-mode'); + if($request->has('dark_mode') && $profile->profile_layout != 'moment') { + if($request->dark_mode == 'on') { + $cookie = Cookie::make('dark-mode', true, 43800); + } + } + + if($request->has('profile_layout')) { + if($profile->profile_layout != 'moment') { + $profile->profile_layout = 'moment'; + $changes = true; + } else { + $profile->profile_layout = null; + $changes = true; + } + } else { + if($profile->profile_layout == 'moment') { + $profile->profile_layout = null; + $changes = true; + } + } + + if($request->has('profile_suggestions')) { + if($profile->is_suggestable == false) { + $profile->is_suggestable = true; + $changes = true; + SuggestionService::set($profile->id); + } else { + $profile->is_suggestable = false; + $changes = true; + SuggestionService::del($profile->id); + } + } else { + if($profile->is_suggestable == true) { + $profile->is_suggestable = false; + $changes = true; + SuggestionService::del($profile->id); + } + } + + if($changes == true) { + $profile->save(); + } + + return redirect(route('settings.labs')) + ->with('status', 'Labs preferences successfully updated!') + ->cookie($cookie); + } + +} \ No newline at end of file