From 3c799963bdaa0c0eb048f97bcc5e6e85a4914ca3 Mon Sep 17 00:00:00 2001 From: "afiq.hamzah" Date: Sun, 19 Mar 2023 19:40:31 +0800 Subject: [PATCH] Add validations --- app/Http/Controllers/PoskodController.php | 48 +++++++++++++------ resources/views/layouts/app.blade.php | 57 +++++++++++++++++------ resources/views/poskod/edit.blade.php | 2 +- 3 files changed, 79 insertions(+), 28 deletions(-) diff --git a/app/Http/Controllers/PoskodController.php b/app/Http/Controllers/PoskodController.php index 117a6fc..cf1f15a 100644 --- a/app/Http/Controllers/PoskodController.php +++ b/app/Http/Controllers/PoskodController.php @@ -92,17 +92,28 @@ class PoskodController extends Controller 'kodnegeri' => $request->kodnegeri ]); + $data = json_decode($response->body()); if(! $response->ok()){ - $message = str_replace("\"", "", $response->body()); + $error_detail = (array) $data->response->original; + + $message = $error_detail; + + $request->session()->flash('response_status', $response->ok()); + $request->session()->flash('response_message', $message); + + return redirect()->route('poskod.create'); + } else { $message = "Daftar poskod {$request->poskod} selesai"; + + $request->session()->flash('response_status', $response->ok()); + $request->session()->flash('response_message', $message); + + return redirect()->route('poskod.edit', $data->poskod); } - $request->session()->flash('response_status', $response->ok()); - $request->session()->flash('response_message', $message); - return redirect()->route('poskod.index', compact('message')); } @@ -153,18 +164,29 @@ class PoskodController extends Controller ]); + $data = json_decode($response->body()); + $request->session()->flash('response_status', $response->ok()); + if(! $response->ok()){ - $message = str_replace("\"", "", $response->body()); + $error_detail = (array) $data->response->original; + + $message = $error_detail; + + $request->session()->flash('response_message', $message); + + return redirect()->route('poskod.edit', $postcode); } else { - $message = "Kemaskini poskod {$postcode} kepada {$request->poskod} selesai"; + + $message = 'Kemaskini berjaya'; + + if(! empty($data->poskod_changes)){ + $message = $data->poskod_changes; + } + + $request->session()->flash('response_message', $message); + + return redirect()->route('poskod.edit', $data->poskod->poskod); } - - - $request->session()->flash('response_status', $response->ok()); - $request->session()->flash('response_message', $message); - - return redirect()->route('poskod.index', compact('message')); - return redirect()->route('poskod.index', compact('message')); } diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index d6fdc98..cf829a9 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -226,20 +226,24 @@ @stack('additional_scripts') @@ -251,17 +255,42 @@ let failToastMessage = document.querySelector('#fail-toast-message') if (response_status === true) { + + let success_message = (message) => { + if (typeof(message) === 'string') { + return message; + } + + let constructed_success_message_from_obj = Object.keys(response_message) + .reduce((accumulator, currentItem) => { + return accumulator + currentItem + ' dikemaskini kepada ' + response_message[currentItem] + + '
'; + }, ""); + + + return constructed_success_message_from_obj; + } + successToastMessage.classList.remove('hidden'); - successToastMessage.querySelector('#toast-message-text').textContent = response_message; + successToastMessage.querySelector('#toast-message-text').innerHTML = success_message(response_message); + + setTimeout(() => successToastMessage.classList.add('hidden'), 15000) + } if (response_status === false) { failToastMessage.classList.remove('hidden'); - failToastMessage.querySelector('#toast-message-text').textContent = response_message; + + $error_message = Object.keys(response_message) + .reduce((accumulator, currentItem) => { + return accumulator + response_message[currentItem] + '
'; + }, ""); + + + failToastMessage.querySelector('#toast-message-text').innerHTML = $error_message; setTimeout(() => failToastMessage.classList.add('hidden'), 15000) } - diff --git a/resources/views/poskod/edit.blade.php b/resources/views/poskod/edit.blade.php index 19cacbd..23f7ef5 100644 --- a/resources/views/poskod/edit.blade.php +++ b/resources/views/poskod/edit.blade.php @@ -19,7 +19,7 @@

- KEMASKINI POSKOD + KEMASKINI POSKOD {{ $postcode['poskod'] }}