Update API Zones for city and province

This commit is contained in:
mikael-zakaria 2025-10-21 15:27:22 +07:00
parent 10c275ac2b
commit b88b587358
3 changed files with 48 additions and 0 deletions

View File

@ -256,10 +256,14 @@ $routes->group('', ['filter' => 'cors'], function($routes) {
});
// REST API
$routes->get('/api/provinces', 'Api\ZonesApi::getProvinces');
$routes->get('/api/cities', 'Api\ZonesApi::getCities');
// $routes->get('/api/zones', 'Api::ZonesApi/');
// $routes->get('/api/getProductList', 'Api::getProductList');
$routes->get('/api/getProductAlias', 'Api::getProductAlias');
$routes->get('/api/getProductSites', 'Api::getProductSites');
//CLQMS
// $routes->get('/clqms', 'Clqms::index'); // for CLQMS Inst select
/*

View File

@ -0,0 +1,32 @@
<?php
namespace App\Controllers\Api;
use CodeIgniter\API\ResponseTrait;
use App\Controllers\BaseController;
use App\Models\ZonesModel;
class ZonesApi extends BaseController {
use ResponseTrait;
protected $model;
public function __construct() {
$this->model = new ZonesModel();
}
public function getProvinces() {
$rows = $this->model->getAllProvinces();
if (empty($rows)) { return $this->respond([ 'status' => 'success', 'message' => "no Data.", 'data' => [] ], 200); }
return $this->respond([ 'status' => 'success', 'message'=> "Data fetched successfully", 'data' => $rows ], 200);
}
public function getCities() {
$rows = $this->model->getAllCities();
if (empty($rows)) { return $this->respond([ 'status' => 'success', 'message' => "no Data.", 'data' => [] ], 200); }
return $this->respond([ 'status' => 'success', 'message'=> "Data fetched successfully", 'data' => $rows ], 200);
}
}

View File

@ -3,7 +3,19 @@
use CodeIgniter\Model;
class ZonesModel extends Model {
protected $table = 'zones';
protected $primaryKey = 'zoneid';
protected $allowedFields = [ 'zonecode', 'zoneclass', 'parentzoneid', 'zonename' ];
public function getAllProvinces() {
$rows = $this->select('zoneid, zonename')->where('parentzoneid IS NULL', null, false)->findAll();
return $rows;
}
public function getAllCities() {
$rows = $this->select('zoneid, zonename')->where('parentzoneid IS NOT NULL', null, false)->findAll();
return $rows;
}
}