refactor: extract validation logic into FormRequests for verification and push subscription controllers
This commit is contained in:
parent
3e5ffef2d8
commit
60142c5aa8
@ -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.');
|
||||
|
||||
@ -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'])
|
||||
|
||||
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Admin\Manage;
|
||||
|
||||
use App\Enums\Permission;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class ApproveVerificationRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return $this->user()?->can(Permission::OWNER_VERIFICATIONS_VERIFY->value) ?? false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<string, mixed>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'approval_note' => ['nullable', 'string', 'max:500'],
|
||||
];
|
||||
}
|
||||
}
|
||||
24
app/Http/Requests/Admin/Manage/RejectVerificationRequest.php
Normal file
24
app/Http/Requests/Admin/Manage/RejectVerificationRequest.php
Normal file
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Admin\Manage;
|
||||
|
||||
use App\Enums\Permission;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class RejectVerificationRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return $this->user()?->can(Permission::OWNER_VERIFICATIONS_REJECT->value) ?? false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<string, mixed>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'reason' => ['required', 'string', 'max:500'],
|
||||
];
|
||||
}
|
||||
}
|
||||
32
app/Http/Requests/PushSubscriptionRequest.php
Normal file
32
app/Http/Requests/PushSubscriptionRequest.php
Normal file
@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class PushSubscriptionRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return Auth::check();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array<string, mixed>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
if ($this->isMethod('DELETE')) {
|
||||
return [
|
||||
'endpoint' => ['required', 'string'],
|
||||
];
|
||||
}
|
||||
|
||||
return [
|
||||
'endpoint' => ['required', 'string', 'url'],
|
||||
'publicKey' => ['required', 'string'],
|
||||
'authToken' => ['required', 'string'],
|
||||
];
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user