From 7d619e02e1a530ee7dc0e476dec4e0ebf87d9c52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Munsch?= Date: Mon, 10 Jan 2022 16:58:25 +0100 Subject: [PATCH] Added code search --- app/Http/Controllers/Bo/CodesController.php | 28 ++++++++++++++++ app/Http/Requests/CodeSearchRequest.php | 32 +++++++++++++++++++ resources/views/bo/codes/index.blade.php | 1 + .../views/bo/codes/search-form.blade.php | 8 +++++ resources/views/bo/codes/search.blade.php | 22 +++++++++++++ routes/web-bo.php | 1 + 6 files changed, 92 insertions(+) create mode 100644 app/Http/Requests/CodeSearchRequest.php create mode 100644 resources/views/bo/codes/search-form.blade.php create mode 100644 resources/views/bo/codes/search.blade.php diff --git a/app/Http/Controllers/Bo/CodesController.php b/app/Http/Controllers/Bo/CodesController.php index 646e030..f1da831 100644 --- a/app/Http/Controllers/Bo/CodesController.php +++ b/app/Http/Controllers/Bo/CodesController.php @@ -3,12 +3,14 @@ namespace App\Http\Controllers\Bo; use App\Http\Controllers\Controller; +use App\Http\Requests\CodeSearchRequest; use App\Http\Requests\ExportCodesRequest; use App\Http\Requests\GenerateCodesRequest; use App\Jobs\ProcessExportCodesUniques; use App\Jobs\ProcessUniqueCode; use App\Models\Codes; use App\Models\Settings; +use Kwaadpepper\Serial\Exceptions\SerialCasterException; class CodesController extends Controller { @@ -73,4 +75,30 @@ class CodesController extends Controller config('mail.MAIL_ADMIN') . " lorsque le traitement sera terminé." ); } + + /** + * Search for a specific code. + * + * @param CodeSearchRequest $request + * @return \Illuminate\View\View|\Illuminate\Contracts\View\Factory + */ + public function search(CodeSearchRequest $request) + { + $code = null; + try { + $code = Codes::whereId(Codes::serialToInt($request->code))->first(); + } catch (\Throwable $e) { + if (\get_class($e) === SerialCasterException::class) { + $code = false; + } + } finally { + if ($code === false) { + \session()->flash('warning', trans('Code non valide.')); + } + if ($code === null) { + \session()->flash('warning', trans('Code introuvable.')); + } + } + return view('bo.codes.search', compact('code')); + } } diff --git a/app/Http/Requests/CodeSearchRequest.php b/app/Http/Requests/CodeSearchRequest.php new file mode 100644 index 0000000..2ece3fb --- /dev/null +++ b/app/Http/Requests/CodeSearchRequest.php @@ -0,0 +1,32 @@ +check() and + auth()->user()->role === 1; + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + 'code' => 'required|string|min:1|max:25' + ]; + } +} diff --git a/resources/views/bo/codes/index.blade.php b/resources/views/bo/codes/index.blade.php index 0f3dc9d..2ee6f7c 100644 --- a/resources/views/bo/codes/index.blade.php +++ b/resources/views/bo/codes/index.blade.php @@ -8,6 +8,7 @@ + @include('bo.codes.search-form')