From 812191032cd262f1376f8b3a483b3b2f4f6510b4 Mon Sep 17 00:00:00 2001 From: "afiq.hamzah" Date: Mon, 6 Mar 2023 10:33:22 +0800 Subject: [PATCH] Add backend operation to use with MyKad reader feature --- app/Daerah.php | 10 ++++++-- app/Http/Controllers/DaerahController.php | 10 ++++++-- app/Http/Controllers/PoskodController.php | 28 +++++++++++++++++++---- app/Poskod.php | 11 +++++---- routes/web.php | 7 +++--- 5 files changed, 50 insertions(+), 16 deletions(-) diff --git a/app/Daerah.php b/app/Daerah.php index 70cfd67..6818f7b 100644 --- a/app/Daerah.php +++ b/app/Daerah.php @@ -3,6 +3,7 @@ namespace App; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\Relations\BelongsTo; class Daerah extends Model { @@ -14,7 +15,7 @@ class Daerah extends Model * @var array */ // protected $fillable = [ - + // ]; /** @@ -23,4 +24,9 @@ class Daerah extends Model * @var array */ // protected $hidden = []; -} \ No newline at end of file + + public function negeri(): BelongsTo + { + return $this->belongsTo(Negeri::class, 'kodnegeri', 'kodnegeri'); + } +} diff --git a/app/Http/Controllers/DaerahController.php b/app/Http/Controllers/DaerahController.php index 56c4b80..e6c4b57 100644 --- a/app/Http/Controllers/DaerahController.php +++ b/app/Http/Controllers/DaerahController.php @@ -7,6 +7,12 @@ use Illuminate\Http\Request; class DaerahController extends Controller { + public function index() + { + $daerah = Daerah::on('mysql7')->with('negeri')->get(); + return response()->json($daerah); + } + public function showOneDaerah($koddaerah) { $daerah = Daerah::on('mysql7') @@ -20,7 +26,7 @@ class DaerahController extends Controller $daerah = Daerah::on('mysql7') ->where('kodnegeri','=',$kodnegeri) ->get(); - + return response()->json($daerah); } -} \ No newline at end of file +} diff --git a/app/Http/Controllers/PoskodController.php b/app/Http/Controllers/PoskodController.php index 5179caa..1899bd5 100644 --- a/app/Http/Controllers/PoskodController.php +++ b/app/Http/Controllers/PoskodController.php @@ -7,17 +7,35 @@ use Illuminate\Http\Request; class PoskodController extends Controller { - public function showAllPoskod(){ + + public function showAllPoskod() + { $poskod = Poskod::on('mysql7')->get(); - + return response()->json($poskod); } public function showOnePoskod($poskod) { $poskod = Poskod::on('mysql7') - ->where('poskod','=',$poskod) - ->first(); + ->where('poskod', '=', $poskod) + ->first(); return response()->json($poskod); } -} \ No newline at end of file + + public function store(Request $request) + { + + if (Poskod::where('poskod', $request->poskod)->exists()) { + return response()->json('Poskod creation forbidden, already exist', 403); + } + + $created_poskod = Poskod::create([ + 'poskod' => $request->poskod, + 'koddaerah' => $request->koddaerah, + 'kodnegeri' => $request->kodnegeri, + ]); + + return response()->json($created_poskod, 200); + } +} diff --git a/app/Poskod.php b/app/Poskod.php index 754225c..822cbcb 100644 --- a/app/Poskod.php +++ b/app/Poskod.php @@ -7,15 +7,18 @@ use Illuminate\Database\Eloquent\Model; class Poskod extends Model { protected $table = 'poskod'; + public $timestamps = false; /** * The attributes that are mass assignable. * * @var array */ - // protected $fillable = [ - - // ]; + protected $fillable = [ + 'poskod', + 'koddaerah', + 'kodnegeri', + ]; /** * The attributes excluded from the model's JSON form. @@ -23,4 +26,4 @@ class Poskod extends Model * @var array */ // protected $hidden = []; -} \ No newline at end of file +} diff --git a/routes/web.php b/routes/web.php index da770ab..f1027cc 100644 --- a/routes/web.php +++ b/routes/web.php @@ -174,6 +174,7 @@ $router->group(['prefix'=>'api'], function () use ($router){ $router->get('cawangan/detail/{kodcaw}',['uses'=>'CawanganDetailController@getCawanganDetail']); //Poskod API + $router->post('poskod',['uses'=>'PoskodController@store']); $router->get('poskod',['uses'=>'PoskodController@showAllPoskod']); $router->get('poskod/{poskod}',['uses'=>'PoskodController@showOnePoskod']); @@ -182,6 +183,7 @@ $router->group(['prefix'=>'api'], function () use ($router){ $router->get('negeri/',['uses'=>'NegeriController@NegeriListAll']); //Daerah API + $router->get('daerah',['uses'=>'DaerahController@index']); $router->get('daerah/{koddaerah}',['uses'=>'DaerahController@showOneDaerah']); $router->get('daerahkodnegeri/{kodnegeri}',['uses'=>'DaerahController@showOneNegeri']); @@ -345,7 +347,7 @@ $router->group(['prefix'=>'api'], function () use ($router){ $router->put('requestTeller/update/{kodcaw}',['uses' => 'TunaiController@updateRequestTeller']); $router->put('requestTeller/batal/{kodcaw}',['uses' => 'TunaiController@batalRequestTeller']); $router->get('requestTeller/checkproses',['uses'=>'TunaiController@CheckProsesReqTeller']); - + //API DENO PANJAR & DENO PEND-SERAHAN $router->post('requestdenopanjar/{kodcaw}',['uses' => 'PanjarController@createDenoPanjar']); $router->get('getdenopanjar/{kodcaw}',['uses' => 'PanjarController@getDenoPanjar']); @@ -727,7 +729,7 @@ $router->group(['prefix'=>'admin'], function () use ($router){ $router->get('audit/keuntungansebenar',['uses'=>'AdminPageController@KeuntunganSebenarExport']); $router->get('laporan/aging',['uses'=>'AdminPageController@LaporanAging']); $router->get('dashboard/aging',['uses'=>'AdminPageController@DashboardAging']); - + $router->get('laporan/auditcustomer',['uses'=>'AdminPageController@laporanAuditCustomer']); $router->get('ig/keuntungansebenar',['uses'=>'AdminPageController@AkruKeuntunganSebenar']); $router->get('ig/pendapatanterakru',['uses'=>'TebusController@CalculationPendapatanTerakru']); @@ -755,4 +757,3 @@ $router->group(['prefix'=>'kelantanpay'], function () use ($router){ $router->get('gadai/customer',['uses'=>'KelantanPayController@index']); $router->post('payment/gadai',['uses'=>'KelantanPayController@postPayment']); }); -