Viewing File: /home/ubuntu/vedadeals-backend-base/app/Http/Controllers/Admin/SettingController.php

<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;

use Illuminate\Http\Request;

use App\Helpers\Helper, App\Helpers\EnvEditorHelper;

use App\Models\{ Settings };

use DB, Setting, Validator, Exception, Enveditor;

class SettingController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct(Request $request) {

        $this->middleware('auth:admin');
    }

    /**
     * @method settings()
     *
     * @uses  Used to display the setting page
     *
     * @created Karthick
     *
     * @updated
     *
     * @param 
     *
     * @return view page 
     */

    public function settings() {

        $env_values = EnvEditorHelper::getEnvValues();

        return view('admin.settings.settings')
                ->with('env_values', $env_values)
                ->with('page' , 'settings');
    }
    
    /**
     * @method save_settings()
     * 
     * @uses to update settings details
     *
     * @created Karthick
     *
     * @updated 
     *
     * @param (request) setting details
     *
     * @return success/error message
     */
    public function save_settings(Request $request) {
      
        try {
            
            DB::beginTransaction();

            foreach( $request->toArray() as $key => $value) {

                if($key != '_token') {
                    
                    if(Enveditor::set($key, $value)) {
                    
                        Settings::where('key', $key)->update(['value' => $value]);

                        DB::commit();

                    } else {

                        if($request->hasFile($key) ) {
                                            
                            $file = Settings::where('key', $key)->first();
                           
                            Helper::storage_delete_file($file->value, FILE_PATH_SITE);

                            $file_path = Helper::storage_upload_file($request->file($key) , FILE_PATH_SITE);    

                            $result = Settings::where('key', $key)->update(['value' => $file_path]); 

                            if($result) {
                         
                                DB::commit();
                       
                            } else {

                                throw new Exception(tr('settings_save_error'), 101);
                            } 
                       
                        } else {

                            if(isset($value)) {

                                $result = Settings::where('key', $key)->update(['value' => $value]);

                            } else {

                                $result = Settings::where('key', $key)->update(['value' => '']);
                            }

                            DB::commit();
                           
                        }

                    }
                }
            }

            Helper::settings_generate_json();

            return redirect()->back()->with('flash_success', tr('settings_update_success') );
            
        } catch (Exception $e) {

            DB::rollback();

            return back()->with('flash_error', $e->getMessage());
        
        }
    }

    /**
     * @method env_settings_save()
     *
     * @uses To update the email details for .env file
     *
     * @created Karthick
     *
     * @updated
     *
     * @param Form data
     *
     * @return view page
     */

    public function env_settings_save(Request $request) {

        try {

            $env_values = EnvEditorHelper::getEnvValues();
           
            if($env_values) {

                foreach ($env_values as $key => $data) {

                    if($request->$key) { 

                        Enveditor::set($key, $request->$key);

                    }
                }
            }

            $message = tr('settings_update_success');

            return redirect()->route('clear-cache')->with('flash_success', $message);  

        } catch(Exception $e) {

            return back()->withInput()->with('flash_error' , $e->getMessage());

        }  

    }

    /**
     * @method settings_control()
     *
     * @uses to display custom settings control page
     *
     * @created Karthick
     *
     * @updated
     *
     * @param 
     *
     * @return view page 
     */

    public function settings_control() {

        $env_values = EnvEditorHelper::getEnvValues();

        return view('admin.settings.controls')
                ->with('env_values', $env_values)
                ->with('page' , 'settings');
    }
}
Back to Directory File Manager