<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; use Illuminate\Http\UploadedFile; use Illuminate\Support\Facades\Mail; use App\Mail\{OrderRequestApprove,OrderRequestReject}; use App\Models\{Service,SiteDetails}; class AdminHomeController extends Controller { public function service(Service $o) { return View('a.service',['o'=>$o]); } public function setup() { return view('a.setup'); } public function setup_update(Request $request) { $request->validate([ 'site_name' => 'required|string|max:255', 'site_email' => 'required|string|email|max:255', 'site_address1' => 'required|string|max:255', 'site_address2' => 'nullable|string|max:255', 'site_city' => 'required|string|max:64', 'site_state' => 'required|string|max:32', 'site_postcode' => 'required|string|max:8', 'site_phone' => 'nullable|regex:/[0-9 ]+/|min:6|max:12', 'site_fax' => 'nullable|regex:/[0-9 ]+/|min:6|max:12', ]); // If we are more input that sample data, reject the update. if (config('SITE_SETUP')->allowed_keys(array_keys($request->except('_token')))) return redirect()->back() ->withInput() ->withErrors('Invalid configuration - values not expected.'); foreach ($request->except('_token') as $key => $value) { if (! $value) { SiteDetails::where('site_id',config('SITE_SETUP')->id)->where('key',$key)->delete(); } else { try { if ($key == 'site_logo' AND $value instanceof UploadedFile) { $path = $value->storeAs('site/'.config('SITE_SETUP')->id,$value->getClientOriginalName(),'public'); SiteDetails::updateOrCreate([ 'site_id'=>config('SITE_SETUP')->id, 'key'=>$key, ],[ 'value'=>$path, ]); } else { // Update or create our config record. SiteDetails::updateOrCreate([ 'site_id'=>config('SITE_SETUP')->id, 'key'=>$key, ],[ 'value'=>$value, ]); } } catch (\Exception $e) { Log::debug($e->getMessage(),['k'=>$key,'v'=>$value]); } } } return redirect()->back() ->with('success','Setup Updated!');; } }