diff --git a/app/Http/Controllers/Admin/Manage/OwnerVerificationController.php b/app/Http/Controllers/Admin/Manage/OwnerVerificationController.php index 046bb15..2dcd9cc 100644 --- a/app/Http/Controllers/Admin/Manage/OwnerVerificationController.php +++ b/app/Http/Controllers/Admin/Manage/OwnerVerificationController.php @@ -4,6 +4,8 @@ use App\Http\Controllers\Concerns\FlashesEntityMessage; use App\Http\Controllers\Controller; +use App\Http\Requests\Admin\Manage\ApproveVerificationRequest; +use App\Http\Requests\Admin\Manage\RejectVerificationRequest; use App\Models\Cutting; use App\Services\Manage\StockService; use Illuminate\Http\RedirectResponse; @@ -28,16 +30,12 @@ public function index(Request $request): Response ]); } - public function approve(Request $request, Cutting $cutting): RedirectResponse + public function approve(ApproveVerificationRequest $request, Cutting $cutting): RedirectResponse { - $request->validate([ - 'approval_note' => ['nullable', 'string', 'max:500'], - ]); - $this->stockService->approveVerification( $cutting, $request->user(), - $request->input('approval_note'), + $request->validated('approval_note'), ); $this->flashSuccess('Verifikasi berhasil disetujui. Stok produk telah ditambahkan ke toko.'); @@ -45,16 +43,12 @@ public function approve(Request $request, Cutting $cutting): RedirectResponse return redirect()->route('admin.manage.owner-verifications.index'); } - public function reject(Request $request, Cutting $cutting): RedirectResponse + public function reject(RejectVerificationRequest $request, Cutting $cutting): RedirectResponse { - $request->validate([ - 'reason' => ['required', 'string', 'max:500'], - ]); - $this->stockService->rejectVerification( $cutting, $request->user(), - $request->input('reason'), + $request->validated('reason'), ); $this->flashSuccess('Verifikasi berhasil ditolak.'); diff --git a/app/Http/Controllers/PushSubscriptionController.php b/app/Http/Controllers/PushSubscriptionController.php index c6f88d4..bea04ad 100644 --- a/app/Http/Controllers/PushSubscriptionController.php +++ b/app/Http/Controllers/PushSubscriptionController.php @@ -2,20 +2,16 @@ namespace App\Http\Controllers; +use App\Http\Requests\PushSubscriptionRequest; use App\Models\PushSubscription; use Illuminate\Http\JsonResponse; -use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; class PushSubscriptionController extends Controller { - public function store(Request $request): JsonResponse + public function store(PushSubscriptionRequest $request): JsonResponse { - $validated = $request->validate([ - 'endpoint' => ['required', 'string', 'url'], - 'publicKey' => ['required', 'string'], - 'authToken' => ['required', 'string'], - ]); + $validated = $request->validated(); PushSubscription::updateOrCreate( [ @@ -31,11 +27,9 @@ public function store(Request $request): JsonResponse return response()->json(['message' => 'Subscription berhasil disimpan.']); } - public function destroy(Request $request): JsonResponse + public function destroy(PushSubscriptionRequest $request): JsonResponse { - $validated = $request->validate([ - 'endpoint' => ['required', 'string'], - ]); + $validated = $request->validated(); PushSubscription::where('user_id', Auth::id()) ->where('endpoint', $validated['endpoint']) diff --git a/app/Http/Requests/Admin/Manage/ApproveVerificationRequest.php b/app/Http/Requests/Admin/Manage/ApproveVerificationRequest.php new file mode 100644 index 0000000..e6a61aa --- /dev/null +++ b/app/Http/Requests/Admin/Manage/ApproveVerificationRequest.php @@ -0,0 +1,24 @@ +user()?->can(Permission::OWNER_VERIFICATIONS_VERIFY->value) ?? false; + } + + /** + * @return array + */ + public function rules(): array + { + return [ + 'approval_note' => ['nullable', 'string', 'max:500'], + ]; + } +} diff --git a/app/Http/Requests/Admin/Manage/RejectVerificationRequest.php b/app/Http/Requests/Admin/Manage/RejectVerificationRequest.php new file mode 100644 index 0000000..ef2b780 --- /dev/null +++ b/app/Http/Requests/Admin/Manage/RejectVerificationRequest.php @@ -0,0 +1,24 @@ +user()?->can(Permission::OWNER_VERIFICATIONS_REJECT->value) ?? false; + } + + /** + * @return array + */ + public function rules(): array + { + return [ + 'reason' => ['required', 'string', 'max:500'], + ]; + } +} diff --git a/app/Http/Requests/PushSubscriptionRequest.php b/app/Http/Requests/PushSubscriptionRequest.php new file mode 100644 index 0000000..29fb52b --- /dev/null +++ b/app/Http/Requests/PushSubscriptionRequest.php @@ -0,0 +1,32 @@ + + */ + public function rules(): array + { + if ($this->isMethod('DELETE')) { + return [ + 'endpoint' => ['required', 'string'], + ]; + } + + return [ + 'endpoint' => ['required', 'string', 'url'], + 'publicKey' => ['required', 'string'], + 'authToken' => ['required', 'string'], + ]; + } +}