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\Concerns\FlashesEntityMessage;
|
||||||
use App\Http\Controllers\Controller;
|
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\Models\Cutting;
|
||||||
use App\Services\Manage\StockService;
|
use App\Services\Manage\StockService;
|
||||||
use Illuminate\Http\RedirectResponse;
|
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(
|
$this->stockService->approveVerification(
|
||||||
$cutting,
|
$cutting,
|
||||||
$request->user(),
|
$request->user(),
|
||||||
$request->input('approval_note'),
|
$request->validated('approval_note'),
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->flashSuccess('Verifikasi berhasil disetujui. Stok produk telah ditambahkan ke toko.');
|
$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');
|
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(
|
$this->stockService->rejectVerification(
|
||||||
$cutting,
|
$cutting,
|
||||||
$request->user(),
|
$request->user(),
|
||||||
$request->input('reason'),
|
$request->validated('reason'),
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->flashSuccess('Verifikasi berhasil ditolak.');
|
$this->flashSuccess('Verifikasi berhasil ditolak.');
|
||||||
|
|||||||
@ -2,20 +2,16 @@
|
|||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Http\Requests\PushSubscriptionRequest;
|
||||||
use App\Models\PushSubscription;
|
use App\Models\PushSubscription;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
class PushSubscriptionController extends Controller
|
class PushSubscriptionController extends Controller
|
||||||
{
|
{
|
||||||
public function store(Request $request): JsonResponse
|
public function store(PushSubscriptionRequest $request): JsonResponse
|
||||||
{
|
{
|
||||||
$validated = $request->validate([
|
$validated = $request->validated();
|
||||||
'endpoint' => ['required', 'string', 'url'],
|
|
||||||
'publicKey' => ['required', 'string'],
|
|
||||||
'authToken' => ['required', 'string'],
|
|
||||||
]);
|
|
||||||
|
|
||||||
PushSubscription::updateOrCreate(
|
PushSubscription::updateOrCreate(
|
||||||
[
|
[
|
||||||
@ -31,11 +27,9 @@ public function store(Request $request): JsonResponse
|
|||||||
return response()->json(['message' => 'Subscription berhasil disimpan.']);
|
return response()->json(['message' => 'Subscription berhasil disimpan.']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function destroy(Request $request): JsonResponse
|
public function destroy(PushSubscriptionRequest $request): JsonResponse
|
||||||
{
|
{
|
||||||
$validated = $request->validate([
|
$validated = $request->validated();
|
||||||
'endpoint' => ['required', 'string'],
|
|
||||||
]);
|
|
||||||
|
|
||||||
PushSubscription::where('user_id', Auth::id())
|
PushSubscription::where('user_id', Auth::id())
|
||||||
->where('endpoint', $validated['endpoint'])
|
->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