From: Marcin Haba Date: Thu, 22 Dec 2022 11:49:24 +0000 (+0100) Subject: baculum: Add offset parameter to storage and client list endpoint X-Git-Tag: Release-13.0.2~26 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2fa22dca33b13de5d57d9a88f0da54c7d854d2cc;p=thirdparty%2Fbacula.git baculum: Add offset parameter to storage and client list endpoint --- diff --git a/gui/baculum/protected/API/Modules/ClientManager.php b/gui/baculum/protected/API/Modules/ClientManager.php index 88f8d7d30..f2608a24a 100644 --- a/gui/baculum/protected/API/Modules/ClientManager.php +++ b/gui/baculum/protected/API/Modules/ClientManager.php @@ -33,10 +33,13 @@ use Prado\Data\ActiveRecord\TActiveRecordCriteria; */ class ClientManager extends APIModule { - public function getClients($limit) { + public function getClients($limit_val = 0, $offset_val = 0) { $criteria = new TActiveRecordCriteria; - if(is_numeric($limit) && $limit > 0) { - $criteria->Limit = $limit; + if(is_numeric($limit_val) && $limit_val > 0) { + $criteria->Limit = $limit_val; + } + if (is_int($offset_val) && $offset_val > 0) { + $criteria->Offset = $offset_val; } return ClientRecord::finder()->findAll($criteria); } diff --git a/gui/baculum/protected/API/Modules/StorageManager.php b/gui/baculum/protected/API/Modules/StorageManager.php index 217073afb..6d61907fd 100644 --- a/gui/baculum/protected/API/Modules/StorageManager.php +++ b/gui/baculum/protected/API/Modules/StorageManager.php @@ -33,10 +33,13 @@ use Prado\Data\ActiveRecord\TActiveRecordCriteria; */ class StorageManager extends APIModule { - public function getStorages($limit) { + public function getStorages($limit_val = 0, $offset_val = 0) { $criteria = new TActiveRecordCriteria; - if(is_int($limit) && $limit > 0) { - $criteria->Limit = $limit; + if(is_int($limit_val) && $limit_val > 0) { + $criteria->Limit = $limit_val; + } + if (is_int($offset_val) && $offset_val > 0) { + $criteria->Offset = $offset_val; } return StorageRecord::finder()->findAll($criteria); } diff --git a/gui/baculum/protected/API/Pages/API/Clients.php b/gui/baculum/protected/API/Pages/API/Clients.php index fe65726e9..a11d25c51 100644 --- a/gui/baculum/protected/API/Pages/API/Clients.php +++ b/gui/baculum/protected/API/Pages/API/Clients.php @@ -33,10 +33,12 @@ use Baculum\Common\Modules\Errors\ClientError; class Clients extends BaculumAPIServer { public function get() { + $misc = $this->getModule('misc'); $limit = $this->Request->contains('limit') ? intval($this->Request['limit']) : 0; + $offset = $this->Request->contains('offset') && $misc->isValidInteger($this->Request['offset']) ? (int)$this->Request['offset'] : 0; $result = $this->getModule('bconsole')->bconsoleCommand($this->director, array('.client')); if ($result->exitcode === 0) { - $clients = $this->getModule('client')->getClients($limit); + $clients = $this->getModule('client')->getClients($limit, $offset); array_shift($result->output); $clients_output = array(); foreach($clients as $client) { diff --git a/gui/baculum/protected/API/Pages/API/Storages.php b/gui/baculum/protected/API/Pages/API/Storages.php index 5ea64692a..cb4b059e0 100644 --- a/gui/baculum/protected/API/Pages/API/Storages.php +++ b/gui/baculum/protected/API/Pages/API/Storages.php @@ -33,8 +33,10 @@ use Baculum\Common\Modules\Errors\StorageError; class Storages extends BaculumAPIServer { public function get() { + $misc = $this->getModule('misc'); $limit = $this->Request->contains('limit') ? intval($this->Request['limit']) : 0; - $storages = $this->getModule('storage')->getStorages($limit); + $offset = $this->Request->contains('offset') && $misc->isValidInteger($this->Request['offset']) ? (int)$this->Request['offset'] : 0; + $storages = $this->getModule('storage')->getStorages($limit, $offset); $result = $this->getModule('bconsole')->bconsoleCommand( $this->director, array('.storage') diff --git a/gui/baculum/protected/API/openapi_baculum.json b/gui/baculum/protected/API/openapi_baculum.json index 67c644d23..8a3dff595 100644 --- a/gui/baculum/protected/API/openapi_baculum.json +++ b/gui/baculum/protected/API/openapi_baculum.json @@ -452,9 +452,14 @@ } } }, - "parameters": [{ - "$ref": "#/components/parameters/Limit" - }] + "parameters": [ + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + } + ] } }, "/api/v2/clients/{clientid}": { @@ -2414,9 +2419,14 @@ } } }, - "parameters": [{ - "$ref": "#/components/parameters/Limit" - }] + "parameters": [ + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" + } + ] } }, "/api/v2/storages/{storageid}": {