79 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
<?php
 | 
						|
 | 
						|
namespace Modules\Admin\app\Http\Controllers;
 | 
						|
 | 
						|
use App\Helper\Cache\SettingCacheHelper;
 | 
						|
use App\Http\Controllers\Controller;
 | 
						|
use Illuminate\Http\RedirectResponse;
 | 
						|
use Illuminate\Http\Request;
 | 
						|
use Illuminate\Http\Response;
 | 
						|
use Illuminate\Support\Facades\Artisan;
 | 
						|
use Illuminate\Support\Facades\Storage;
 | 
						|
use Modules\Admin\app\Http\Requests\SettingRequest;
 | 
						|
use Modules\Admin\app\Models\Setting;
 | 
						|
 | 
						|
class SettingController extends Controller
 | 
						|
{
 | 
						|
    public function index()
 | 
						|
    {
 | 
						|
        return response()->json([
 | 
						|
            'data' => Setting::first(),
 | 
						|
            'status' => true
 | 
						|
        ]);
 | 
						|
    }
 | 
						|
 | 
						|
    public function updateOrCreate(SettingRequest $request)
 | 
						|
    {
 | 
						|
        if ($request->has('logo')) {
 | 
						|
            $file = $request->file('logo');
 | 
						|
            $path = 'setting/logo.' . $file->getClientOriginalExtension();
 | 
						|
            // save to local
 | 
						|
            Storage::disk('public')->put(
 | 
						|
                path: $path,
 | 
						|
                contents: $file->getContent()
 | 
						|
            );
 | 
						|
            $request->request->set('logo', $path);
 | 
						|
        }
 | 
						|
 | 
						|
        if ($request->has('favicon')) {
 | 
						|
            $file = $request->file('favicon');
 | 
						|
            $path = 'setting/favicon.' . $file->getClientOriginalExtension();
 | 
						|
            // save to local
 | 
						|
            Storage::disk('public')->put(
 | 
						|
                path: $path,
 | 
						|
                contents: $file->getContent()
 | 
						|
            );
 | 
						|
            $request->request->set('favicon', $path);
 | 
						|
        }
 | 
						|
 | 
						|
        try {
 | 
						|
            // Only 1 row
 | 
						|
            Setting::updateOrCreate([
 | 
						|
                'id' => 1
 | 
						|
            ], $request->request->all());
 | 
						|
 | 
						|
            return response()->json([
 | 
						|
                'data' => Setting::first(),
 | 
						|
                'status' => true
 | 
						|
            ]);
 | 
						|
        } catch (\Exception $e) {
 | 
						|
            return response()->json([
 | 
						|
                'message' => $e->getMessage(),
 | 
						|
                'code' => $e->getCode(),
 | 
						|
                'file' => $e->getFile(),
 | 
						|
                'line' => $e->getLine(),
 | 
						|
                'status' => false
 | 
						|
            ]);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    public function clearCache()
 | 
						|
    {
 | 
						|
        Artisan::call('key:generate');
 | 
						|
        Artisan::call('cache:clear');
 | 
						|
        return response()->json([
 | 
						|
            'status' => true
 | 
						|
        ]);
 | 
						|
    }
 | 
						|
}
 |