Add validations
This commit is contained in:
@@ -2,30 +2,32 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Daerah;
|
||||
use App\Negeri;
|
||||
use App\Poskod;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Validation\ValidationException;
|
||||
|
||||
class PoskodController extends Controller
|
||||
{
|
||||
|
||||
public function showAllPoskod()
|
||||
{
|
||||
$poskod = Poskod::on('mysql7')
|
||||
->with(['negeri:kodnegeri,negeri', 'daerah:koddaerah,namadaerah'])
|
||||
->when(request()->query_string, function ($q) {
|
||||
return $q->where('poskod', 'like', '%' . request()->query_string . '%')
|
||||
->orWhereHas('negeri', function ($b) {
|
||||
$b->where(DB::raw('lower(negeri)'), 'like', '%' . strtolower(request()->query_string) . '%');
|
||||
})
|
||||
->orWhereHas('daerah', function ($b) {
|
||||
$b->where(DB::raw('lower(namadaerah)'), 'like', '%' . strtolower(request()->query_string) . '%');
|
||||
});
|
||||
return $q
|
||||
->where('poskod', 'like', '%' . request()->query_string . '%')
|
||||
->orWhereHas('negeri', function ($b) {
|
||||
$b->where(DB::raw('lower(negeri)'), 'like', '%' . strtolower(request()->query_string) . '%');
|
||||
})
|
||||
->orWhereHas('daerah', function ($b) {
|
||||
$b->where(DB::raw('lower(namadaerah)'), 'like', '%' . strtolower(request()->query_string) . '%');
|
||||
});
|
||||
})
|
||||
->paginate(12);
|
||||
|
||||
|
||||
return response()
|
||||
->json($poskod)
|
||||
->header('query_string', request()->query_string);
|
||||
@@ -44,14 +46,20 @@ class PoskodController extends Controller
|
||||
public function store(Request $request)
|
||||
{
|
||||
|
||||
if (Poskod::where('poskod', $request->poskod)->exists()) {
|
||||
return response()->json("Daftar poskod tidak dibenarkan, poskod {$request->poskod} sudah wujud", 403);
|
||||
try {
|
||||
$validated = $this->validate($request, [
|
||||
'poskod' => 'required|numeric|digits:5|unique:poskod,poskod',
|
||||
'koddaerah' => 'required|numeric',
|
||||
'kodnegeri' => 'required|numeric',
|
||||
]);
|
||||
} catch (ValidationException $e) {
|
||||
return response()->json($e, 403);
|
||||
}
|
||||
|
||||
$created_poskod = Poskod::create([
|
||||
'poskod' => $request->poskod,
|
||||
'koddaerah' => $request->koddaerah,
|
||||
'kodnegeri' => $request->kodnegeri,
|
||||
'poskod' => $validated['poskod'],
|
||||
'koddaerah' => $validated['koddaerah'],
|
||||
'kodnegeri' => $validated['kodnegeri'],
|
||||
]);
|
||||
|
||||
return response()->json($created_poskod, 200);
|
||||
@@ -59,19 +67,56 @@ class PoskodController extends Controller
|
||||
|
||||
public function update(Request $request)
|
||||
{
|
||||
$poskod = Poskod::find($request->recno);
|
||||
|
||||
if (Poskod::where('poskod', $request->poskod)->exists()) {
|
||||
return response()->json("Kemaskini poskod tidak dibenarkan, poskod {$request->poskod} sudah wujud", 403);
|
||||
try {
|
||||
$validated = $this->validate($request, [
|
||||
'poskod' => 'required|numeric|digits:5|unique:poskod,poskod,' . $poskod->poskod . ',poskod',
|
||||
'koddaerah' => 'required|numeric',
|
||||
'kodnegeri' => 'required|numeric',
|
||||
]);
|
||||
} catch (ValidationException $e) {
|
||||
return response()->json($e, 403);
|
||||
}
|
||||
|
||||
$updated_poskod = Poskod::find($request->recno);
|
||||
|
||||
$updated_poskod->update([
|
||||
'poskod' => $request->poskod,
|
||||
'koddaerah' => $request->koddaerah,
|
||||
'kodnegeri' => $request->kodnegeri,
|
||||
$poskod->update([
|
||||
'poskod' => $validated['poskod'],
|
||||
'koddaerah' => $validated['koddaerah'],
|
||||
'kodnegeri' => $validated['kodnegeri'],
|
||||
]);
|
||||
|
||||
return response()->json($updated_poskod, 200);
|
||||
$poskod_changes = $poskod->getChanges();
|
||||
|
||||
$getProperChanges = function($poskod_changes){
|
||||
|
||||
$changes = [];
|
||||
|
||||
if(array_key_exists('poskod', $poskod_changes)){
|
||||
$poskod = $poskod_changes['poskod'];
|
||||
|
||||
array_push($changes, compact('poskod'));
|
||||
|
||||
}
|
||||
|
||||
if(array_key_exists('koddaerah', $poskod_changes)){
|
||||
$daerah = Daerah::where('koddaerah', '=', $poskod_changes['koddaerah'])->first()->namadaerah;
|
||||
|
||||
array_push($changes, compact('daerah'));
|
||||
|
||||
}
|
||||
|
||||
if(array_key_exists('kodnegeri', $poskod_changes)){
|
||||
$negeri = Negeri::where('kodnegeri', '=', $poskod_changes['kodnegeri'])->first()->negeri;
|
||||
|
||||
array_push($changes, compact('negeri'));
|
||||
}
|
||||
|
||||
return array_merge(...$changes);
|
||||
|
||||
};
|
||||
|
||||
$poskod_changes = $getProperChanges($poskod_changes);
|
||||
|
||||
return response()->json(compact('poskod', 'poskod_changes'), 200);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user