Files
database-pertani-web/app/Http/Controllers/Web/Bumdes/PengurusBumdesController.php
T
2026-11-05 19:20:05 +07:00

68 lines
2.4 KiB
PHP

<?php
namespace App\Http\Controllers\Web\Bumdes;
use App\Http\Controllers\Controller;
use App\Http\Requests\Bumdes\BumdesRequest;
use App\Http\Requests\Bumdes\IndexPengurusBumdesRequest;
use App\Http\Requests\Bumdes\StorePengurusBumdesRequest;
use App\Http\Requests\Bumdes\UpdatePengurusBumdesRequest;
use App\Models\Bumdes\PengurusBumdes;
use App\Services\Bumdes\PengurusBumdesService;
use Illuminate\Http\RedirectResponse;
use Illuminate\Support\Facades\DB;
use Illuminate\View\View;
class PengurusBumdesController extends Controller
{
public function __construct(private readonly PengurusBumdesService $service) {}
public function index(IndexPengurusBumdesRequest $request): View
{
return view('bumdes.profil.index', $this->service->indexData($request->validated()));
}
public function create(BumdesRequest $request): View
{
return view('bumdes.profil.create', $this->service->profileData());
}
public function store(StorePengurusBumdesRequest $request): RedirectResponse
{
$pengurus = $this->service->storeProfile($request->validated());
return $this->profileSavedResponse($request, $pengurus);
}
public function show(BumdesRequest $request, PengurusBumdes $pengurusBumdes): RedirectResponse
{
return redirect()->route('bumdes.edit', $pengurusBumdes);
}
public function edit(BumdesRequest $request, PengurusBumdes $pengurusBumdes): View
{
return view('bumdes.profil.edit', $this->service->profileData($pengurusBumdes));
}
public function update(UpdatePengurusBumdesRequest $request, PengurusBumdes $pengurusBumdes): RedirectResponse
{
$this->service->updateProfile($pengurusBumdes, $request->validated());
return $this->profileSavedResponse($request, $pengurusBumdes);
}
public function destroy(BumdesRequest $request, PengurusBumdes $pengurusBumdes): RedirectResponse
{
DB::transaction(fn () => $pengurusBumdes->delete());
return redirect()->route('bumdes.index')->with('success', 'Data profil berhasil dihapus.');
}
private function profileSavedResponse(BumdesRequest $request, PengurusBumdes $pengurus): RedirectResponse
{
$fragment = $request->input('redirect_fragment') === 'section-kepengurusan' ? '#section-kepengurusan' : '';
return redirect(route('bumdes.edit', $pengurus).$fragment)->with('success', 'Data Profil berhasil disimpan.');
}
}