From: Marcin Haba Date: Thu, 9 Feb 2023 14:48:15 +0000 (+0100) Subject: baculum: Add offset and limit parameters to bvfs versions endpoint X-Git-Tag: Release-13.0.3~135 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7bc292331e0a0ebcf6d39cb337103ef671e97737;p=thirdparty%2Fbacula.git baculum: Add offset and limit parameters to bvfs versions endpoint --- diff --git a/gui/baculum/protected/API/Pages/API/BVFSVersions.php b/gui/baculum/protected/API/Pages/API/BVFSVersions.php index 0e7e2c326..627c9234d 100644 --- a/gui/baculum/protected/API/Pages/API/BVFSVersions.php +++ b/gui/baculum/protected/API/Pages/API/BVFSVersions.php @@ -33,13 +33,16 @@ use Baculum\Common\Modules\Errors\BVFSError; class BVFSVersions extends ConsoleOutputPage { public function get() { + $misc = $this->getModule('misc'); $jobid = $this->Request->contains('jobid') ? intval($this->Request['jobid']) : 0; $pathid = $this->Request->contains('pathid') ? intval($this->Request['pathid']) : 0; $filenameid = $this->Request->contains('filenameid') ? intval($this->Request['filenameid']) : 0; $copies = $this->Request->contains('copies') ? intval($this->Request['copies']) : 0; $out_format = $this->Request->contains('output') && $this->isOutputFormatValid($this->Request['output']) ? $this->Request['output'] : parent::OUTPUT_FORMAT_RAW; + $limit = $this->Request->contains('limit') && $misc->isValidInteger($this->Request['limit']) ? (int)$this->Request['limit'] : 0; + $offset = $this->Request->contains('offset') && $misc->isValidInteger($this->Request['offset']) ? (int)$this->Request['offset'] : 0; $client = null; - if ($this->Request->contains('client') && $this->getModule('misc')->isValidName($this->Request['client'])) { + if ($this->Request->contains('client') && $misc->isValidName($this->Request['client'])) { $client = $this->Request['client']; } elseif ($this->Request->contains('clientid')) { $clientid = intval($this->Request['clientid']); @@ -61,6 +64,14 @@ class BVFSVersions extends ConsoleOutputPage { 'filenameid' => $filenameid, 'copies' => $copies ]; + + if(is_int($limit) && $limit > 0) { + $params['limit'] = $limit; + } + if (is_int($offset) && $offset > 0) { + $params['offset'] = $offset; + } + $out = (object)['output' => [], 'exitcode' => 0]; if ($out_format === parent::OUTPUT_FORMAT_RAW) { $out = $this->getRawOutput($params); @@ -89,6 +100,12 @@ class BVFSVersions extends ConsoleOutputPage { if ($params['copies'] == 1) { $cmd[] = 'copies'; } + if (isset($params['offset'])) { + $cmd[] = 'offset="' . $params['offset'] . '"'; + } + if (isset($params['limit'])) { + $cmd[] = 'limit="' . $params['limit'] . '"'; + } return $this->getModule('bconsole')->bconsoleCommand($this->director, $cmd); } diff --git a/gui/baculum/protected/API/openapi_baculum.json b/gui/baculum/protected/API/openapi_baculum.json index 75858b712..f70c29f00 100644 --- a/gui/baculum/protected/API/openapi_baculum.json +++ b/gui/baculum/protected/API/openapi_baculum.json @@ -4886,6 +4886,12 @@ }, { "$ref": "#/components/parameters/Output" + }, + { + "$ref": "#/components/parameters/Limit" + }, + { + "$ref": "#/components/parameters/Offset" } ] }