File "OurPartnerApiController.php"
Full Path: /home/clickysoft/public_html/jmapi5.clickysoft.net/app/Http/Controllers/Api/V1/Admin/OurPartnerApiController.php
File size: 3.19 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\StoreOurPartnerRequest;
use App\Http\Requests\Admin\UpdateOurPartnerRequest;
use App\Http\Resources\Admin\OurPartnerEditResource;
use App\Http\Resources\Admin\OurPartnerResource;
use App\Models\OurPartner;
use Gate;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class OurPartnerApiController extends Controller
{
public function index(Request $request)
{
abort_if(Gate::denies('our_partner_access'), Response::HTTP_FORBIDDEN, '403 Forbidden');
OurPartnerResource::withoutWrapping();
$our_partners = OurPartner::when($request->filled('title'), function ($query) use ($request) {
$query->where('title', 'like', "%{$request->get('title')}%");
})->orderBy('created_at', 'DESC')->paginate(50);
return OurPartnerResource::collection($our_partners);
}
public function get_partners()
{
OurPartnerResource::withoutWrapping();
$our_partners = OurPartner::all();
return OurPartnerResource::collection($our_partners);
}
public function store(StoreOurPartnerRequest $request)
{
$our_partner = OurPartner::create($request->all());
if ($request->hasFile('logo')) {
$our_partner->addMediaFromRequest('logo')->toMediaCollection('logo', 'partners');
}
return (new OurPartnerResource($our_partner))
->response()
->setStatusCode(Response::HTTP_CREATED);
}
public function show(OurPartner $our_partner)
{
abort_if(Gate::denies('our_partner_show'), Response::HTTP_FORBIDDEN, '403 Forbidden');
return new OurPartnerEditResource($our_partner);
}
public function update(UpdateOurPartnerRequest $request, OurPartner $our_partner)
{
$our_partner->title = $request->title;
$our_partner->status = $request->status;
$our_partner->save();
if ($request->hasFile('logo')) {
$request->validated([
'logo' => 'mimes:jpg,gif,png|max:5120'
]);
if (!empty($our_partner->logo)) {
$our_partner->logo->delete();
}
$our_partner->addMediaFromRequest('logo')->toMediaCollection('logo', 'partners');
}
return (new OurPartnerResource($our_partner))
->response()
->setStatusCode(Response::HTTP_CREATED);
}
public function destroy(OurPartner $our_partner)
{
abort_if(Gate::denies('our_partner_show'), Response::HTTP_FORBIDDEN, '403 Forbidden');
try {
$our_partner->delete();
return response(['message' => 'Partner deleted successfully'], Response::HTTP_OK);
}catch (\Exception $e){
\Log::channel('db_errors')->info('Record Deletion Error : Partner -> '.$our_partner->id);
\Log::channel('db_errors')->info($e->getMessage());
return response()
->json([
'message' => "Record not deleted.",
'errors' => ["error" => ["Unable to delete partner."]]
], Response::HTTP_INTERNAL_SERVER_ERROR);
}
}
}