Преглед на файлове

Add LabsSettings controller

Daniel Supernault преди 6 години
родител
ревизия
8946121334
променени са 1 файла, в които са добавени 83 реда и са изтрити 0 реда
  1. 83 0
      app/Http/Controllers/Settings/LabsSettings.php

+ 83 - 0
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);
+	}
+
+}