68 lines
2.4 KiB
PHP
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.');
|
|
}
|
|
}
|