X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/c6ad16dba657c82512ae495a4a38b99b8cfa9eeb..refs/pull/5721/head:/app/Api/ListingResponseBuilder.php diff --git a/app/Api/ListingResponseBuilder.php b/app/Api/ListingResponseBuilder.php index 6da92040b..44117bad9 100644 --- a/app/Api/ListingResponseBuilder.php +++ b/app/Api/ListingResponseBuilder.php @@ -2,24 +2,31 @@ namespace BookStack\Api; -use BookStack\Model; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Collection; +use Illuminate\Database\Eloquent\Model; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; class ListingResponseBuilder { - protected $query; - protected $request; - protected $fields; + protected Builder $query; + protected Request $request; + + /** + * @var string[] + */ + protected array $fields; /** * @var array */ - protected $resultModifiers = []; + protected array $resultModifiers = []; - protected $filterOperators = [ + /** + * @var array + */ + protected array $filterOperators = [ 'eq' => '=', 'ne' => '!=', 'gt' => '>', @@ -48,7 +55,7 @@ class ListingResponseBuilder $filteredQuery = $this->filterQuery($this->query); $total = $filteredQuery->count(); - $data = $this->fetchData($filteredQuery)->each(function($model) { + $data = $this->fetchData($filteredQuery)->each(function ($model) { foreach ($this->resultModifiers as $modifier) { $modifier($model); } @@ -61,10 +68,11 @@ class ListingResponseBuilder } /** - * Add a callback to modify each element of the results - * @param (callable(Model)) $modifier + * Add a callback to modify each element of the results. + * + * @param (callable(Model): void) $modifier */ - public function modifyResults($modifier): void + public function modifyResults(callable $modifier): void { $this->resultModifiers[] = $modifier; }