X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/1c43602f4bed60a84f47735ca8bc4a399018e013..refs/pull/4191/head:/app/Http/Controllers/Api/ApiController.php diff --git a/app/Http/Controllers/Api/ApiController.php b/app/Http/Controllers/Api/ApiController.php index fc9788b06..5c448e49f 100644 --- a/app/Http/Controllers/Api/ApiController.php +++ b/app/Http/Controllers/Api/ApiController.php @@ -15,17 +15,31 @@ abstract class ApiController extends Controller * Provide a paginated listing JSON response in a standard format * taking into account any pagination parameters passed by the user. */ - protected function apiListingResponse(Builder $query, array $fields): JsonResponse + protected function apiListingResponse(Builder $query, array $fields, array $modifiers = []): JsonResponse { $listing = new ListingResponseBuilder($query, request(), $fields); + foreach ($modifiers as $modifier) { + $listing->modifyResults($modifier); + } + return $listing->toResponse(); } /** * Get the validation rules for this controller. + * Defaults to a $rules property but can be a rules() method. + */ + public function getValidationRules(): array + { + return $this->rules(); + } + + /** + * Get the validation rules for the actions in this controller. + * Defaults to a $rules property but can be a rules() method. */ - public function getValdationRules(): array + protected function rules(): array { return $this->rules; }