File: /home/jairicem/bunkerltd.com/app/controllers/api/v1/Warehouses.php
<?php
defined('BASEPATH') or exit('No direct script access allowed');
require APPPATH . '/libraries/REST_Controller.php';
use Restserver\Libraries\REST_Controller;
class Warehouses extends REST_Controller
{
public function __construct()
{
parent::__construct();
$this->methods['index_get']['limit'] = 500;
$this->load->api_model('warehouses_api');
}
protected function setWarehouse($warehouse)
{
unset($warehouse->price_group_id);
$warehouse = (array) $warehouse;
ksort($warehouse);
return $warehouse;
}
public function index_get()
{
$code = $this->get('code');
$filters = [
'code' => $code,
'include' => $this->get('include') ? explode(',', $this->get('include')) : null,
'group' => $this->get('group') ? $this->get('group') : 'customer',
'start' => $this->get('start') && is_numeric($this->get('start')) ? $this->get('start') : 1,
'limit' => $this->get('limit') && is_numeric($this->get('limit')) ? $this->get('limit') : 10,
'order_by' => $this->get('order_by') ? explode(',', $this->get('order_by')) : ['code', 'acs'],
];
if ($code === null) {
if ($warehouses = $this->warehouses_api->getWarehouses($filters)) {
$pr_data = [];
foreach ($warehouses as $warehouse) {
if (!empty($filters['include'])) {
foreach ($filters['include'] as $include) {
if ($include == 'price_group') {
$warehouse->price_group = $this->warehouses_api->getPriceGroupByID($warehouse->price_group_id);
}
}
}
$pr_data[] = $this->setWarehouse($warehouse);
}
$data = [
'data' => $pr_data,
'limit' => $filters['limit'],
'start' => $filters['start'],
'total' => $this->warehouses_api->countWarehouses($filters),
];
$this->response($data, REST_Controller::HTTP_OK);
} else {
$this->response([
'message' => 'No warehouse were found.',
'status' => false,
], REST_Controller::HTTP_NOT_FOUND);
}
} else {
if ($warehouse = $this->warehouses_api->getWarehouse($filters)) {
if (!empty($filters['include'])) {
foreach ($filters['include'] as $include) {
if ($include == 'price_group') {
$warehouse->price_group = $this->warehouses_api->getPriceGroupByID($warehouse->price_group_id);
}
}
}
$warehouse = $this->setWarehouse($warehouse);
$this->set_response($warehouse, REST_Controller::HTTP_OK);
} else {
$this->set_response([
'message' => 'Warehouse could not be found for name ' . $name . '.',
'status' => false,
], REST_Controller::HTTP_NOT_FOUND);
}
}
}
}