File "SiteSettingApiController.php"

Full Path: /home/clickysoft/public_html/jmapi5.clickysoft.net/app/Http/Controllers/Api/V1/Admin/SiteSettingApiController.php
File size: 2.55 KB
MIME-type: text/x-php
Charset: utf-8

<?php

namespace App\Http\Controllers\Api\V1\Admin;

use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\StoreSiteSettingRequest;
use App\Http\Requests\Admin\UpdateSiteSettingRequest;
use App\Http\Resources\Admin\SiteSettingResource;
use App\Models\SiteSetting;
use Gate;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;

class SiteSettingApiController extends Controller
{
    public function index(Request $request)
    {
        abort_if(Gate::denies('site_setting_access'), Response::HTTP_FORBIDDEN, '403 Forbidden');
        $settings = SiteSetting::when($request->filled('key'), function ($query) use ($request){
            $query->where('key', 'like', "%{$request->get('key')}%");
        })->when($request->filled('value'), function ($query) use ($request){
            $query->where('value', 'like', "%{$request->get('value')}%");
        })->orderBy('value')
            ->get();

        SiteSettingResource::withoutWrapping();
        return SiteSettingResource::collection($settings);
    }

    public function store(StoreSiteSettingRequest $request)
    {
        $site_setting = SiteSetting::create($request->all());

        return (new SiteSettingResource($site_setting))
            ->response()
            ->setStatusCode(Response::HTTP_CREATED);
    }

    public function show(SiteSetting $site_setting)
    {
        abort_if(Gate::denies('site_setting_show'), Response::HTTP_FORBIDDEN, '403 Forbidden');

        return new SiteSettingResource($site_setting);
    }

    public function update(UpdateSiteSettingRequest $request, SiteSetting $site_setting)
    {
        $site_setting->update($request->validated());

        return (new SiteSettingResource($site_setting))
            ->response()
            ->setStatusCode(Response::HTTP_CREATED);
    }

    /*public function destroy(SiteSetting $site_setting)
    {
        abort_if(Gate::denies('site_setting_delete'), Response::HTTP_FORBIDDEN, '403 Forbidden');

        try {
            $site_setting->delete();
            return response()
            ->json(['message' => 'Site setting deleted successfully'], Response::HTTP_OK);
        }catch (\Exception $e){
            \Log::channel('db_errors')->info('Record Deletion Error : Site Setting -> '.$site_setting->id);
            \Log::channel('db_errors')->info($e->getMessage());
            return response()
            ->json([
                'message' => "Record not deleted.",
                'errors' => ["error" => ["Unable to delete site setting."]]
            ], Response::HTTP_INTERNAL_SERVER_ERROR);
        }
    }*/
}