Files
getgreen-backend/app/Http/Controllers/Dashboard/Partner/Controller.php
2026-04-16 11:25:40 +05:00

73 lines
2.1 KiB
PHP
Executable File

<?php
namespace App\Http\Controllers\Dashboard\Partner;
use App\Http\Controllers\Controller as ExController;
use App\Models\Partner;
use App\Http\Requests\Dashboard\Partner\Update as UpdateRequest;
use App\Http\Requests\Dashboard\Partner\Store as StoreRequest;
use App\Jobs\Dashboard\Partner\Store as StoreJob;
use App\Jobs\Dashboard\Partner\Update as UpdateJob;
use Illuminate\Support\Facades\Storage;
class Controller extends ExController
{
public function index()
{
$this->authorize('view', 'partners');
$partners = Partner::orderBy('position')->paginate(20);
return view('dashboard.partners.index', compact('partners'));
}
public function create()
{
$this->authorize('create', 'partners');
return view('dashboard.partners.create');
}
public function store(StoreRequest $request)
{
if ($request->hasFile('image')) {
$path = $request->file('image')->store('uploads/partners');
}
$this->dispatchSync(StoreJob::fromRequest($request, $path));
$this->info(trans('admin.messages.created'));
return redirect()->route('dashboard.partners.index');
}
public function edit(Partner $partner)
{
$this->authorize('update', 'partners');
return view('dashboard.partners.edit', compact('partner'));
}
public function update(UpdateRequest $request, Partner $partner)
{
if ($request->hasFile('image')) {
Storage::delete($partner->image);
$path = $request->file('image')->store('uploads/partners');
} else {
$path = $partner->image;
}
$this->dispatchSync(UpdateJob::fromRequest($partner, $request, $path));
$this->info(trans('admin.messages.updated'));
return redirect()->route('dashboard.partners.index');
}
public function destroy(Partner $partner)
{
$this->authorize('delete', 'partners');
Storage::delete($partner->image);
$partner->delete();
$this->info(trans('admin.messages.deleted'));
return redirect()->back();
}
}