Add endpoint and backend for managing postcode
This commit is contained in:
@@ -4,22 +4,40 @@ namespace App\Http\Controllers;
|
|||||||
|
|
||||||
use App\Poskod;
|
use App\Poskod;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
class PoskodController extends Controller
|
class PoskodController extends Controller
|
||||||
{
|
{
|
||||||
|
|
||||||
public function showAllPoskod()
|
public function showAllPoskod()
|
||||||
{
|
{
|
||||||
$poskod = Poskod::on('mysql7')->get();
|
$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) . '%');
|
||||||
|
});
|
||||||
|
})
|
||||||
|
->paginate(12);
|
||||||
|
|
||||||
return response()->json($poskod);
|
|
||||||
|
return response()
|
||||||
|
->json($poskod)
|
||||||
|
->header('query_string', request()->query_string);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function showOnePoskod($poskod)
|
public function showOnePoskod($poskod)
|
||||||
{
|
{
|
||||||
$poskod = Poskod::on('mysql7')
|
$poskod = Poskod::on('mysql7')
|
||||||
|
->with(['negeri:kodnegeri,negeri', 'daerah:koddaerah,namadaerah'])
|
||||||
->where('poskod', '=', $poskod)
|
->where('poskod', '=', $poskod)
|
||||||
->first();
|
->first();
|
||||||
|
|
||||||
return response()->json($poskod);
|
return response()->json($poskod);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -27,10 +45,10 @@ class PoskodController extends Controller
|
|||||||
{
|
{
|
||||||
|
|
||||||
if (Poskod::where('poskod', $request->poskod)->exists()) {
|
if (Poskod::where('poskod', $request->poskod)->exists()) {
|
||||||
return response()->json('Poskod creation forbidden, already exist', 403);
|
return response()->json("Daftar poskod tidak dibenarkan, poskod {$request->poskod} sudah wujud", 403);
|
||||||
}
|
}
|
||||||
|
|
||||||
$created_poskod = Poskod::create([
|
$created_poskod = Poskod::create([
|
||||||
'poskod' => $request->poskod,
|
'poskod' => $request->poskod,
|
||||||
'koddaerah' => $request->koddaerah,
|
'koddaerah' => $request->koddaerah,
|
||||||
'kodnegeri' => $request->kodnegeri,
|
'kodnegeri' => $request->kodnegeri,
|
||||||
@@ -38,4 +56,22 @@ class PoskodController extends Controller
|
|||||||
|
|
||||||
return response()->json($created_poskod, 200);
|
return response()->json($created_poskod, 200);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function update(Request $request)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (Poskod::where('poskod', $request->poskod)->exists()) {
|
||||||
|
return response()->json("Kemaskini poskod tidak dibenarkan, poskod {$request->poskod} sudah wujud", 403);
|
||||||
|
}
|
||||||
|
|
||||||
|
$updated_poskod = Poskod::find($request->recno);
|
||||||
|
|
||||||
|
$updated_poskod->update([
|
||||||
|
'poskod' => $request->poskod,
|
||||||
|
'koddaerah' => $request->koddaerah,
|
||||||
|
'kodnegeri' => $request->kodnegeri,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return response()->json($updated_poskod, 200);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,10 +3,12 @@
|
|||||||
namespace App;
|
namespace App;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
|
|
||||||
class Poskod extends Model
|
class Poskod extends Model
|
||||||
{
|
{
|
||||||
protected $table = 'poskod';
|
protected $table = 'poskod';
|
||||||
|
protected $primaryKey = 'recno';
|
||||||
public $timestamps = false;
|
public $timestamps = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -26,4 +28,13 @@ class Poskod extends Model
|
|||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
// protected $hidden = [];
|
// protected $hidden = [];
|
||||||
|
|
||||||
|
public function negeri(): BelongsTo {
|
||||||
|
return $this->belongsTo(Negeri::class, 'kodnegeri', 'kodnegeri');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function daerah(): BelongsTo {
|
||||||
|
return $this->belongsTo(Daerah::class, 'koddaerah', 'koddaerah');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -175,6 +175,7 @@ $router->group(['prefix'=>'api'], function () use ($router){
|
|||||||
|
|
||||||
//Poskod API
|
//Poskod API
|
||||||
$router->post('poskod',['uses'=>'PoskodController@store']);
|
$router->post('poskod',['uses'=>'PoskodController@store']);
|
||||||
|
$router->put('poskod/{poskod}/update',['uses'=>'PoskodController@update']);
|
||||||
$router->get('poskod',['uses'=>'PoskodController@showAllPoskod']);
|
$router->get('poskod',['uses'=>'PoskodController@showAllPoskod']);
|
||||||
$router->get('poskod/{poskod}',['uses'=>'PoskodController@showOnePoskod']);
|
$router->get('poskod/{poskod}',['uses'=>'PoskodController@showOnePoskod']);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user