mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-10-26 11:11:56 +00:00
Some checks are pending
analyse-php / build (push) Waiting to run
lint-php / build (push) Waiting to run
test-migrations / build (8.2) (push) Waiting to run
test-migrations / build (8.3) (push) Waiting to run
test-migrations / build (8.4) (push) Waiting to run
test-php / build (8.2) (push) Waiting to run
test-php / build (8.3) (push) Waiting to run
test-php / build (8.4) (push) Waiting to run
Move some checks and made some tweaks to the repo to support consistency between API and UI.
52 lines
1.4 KiB
PHP
52 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace BookStack\Http;
|
|
|
|
use BookStack\Api\ListingResponseBuilder;
|
|
use Illuminate\Database\Eloquent\Builder;
|
|
use Illuminate\Http\JsonResponse;
|
|
|
|
abstract class ApiController extends Controller
|
|
{
|
|
/**
|
|
* The validation rules for this controller.
|
|
* Can alternative be defined in a rules() method is they need to be dynamic.
|
|
*
|
|
* @var array<string, string[]>
|
|
*/
|
|
protected array $rules = [];
|
|
|
|
/**
|
|
* 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, 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.
|
|
*/
|
|
protected function rules(): array
|
|
{
|
|
return $this->rules;
|
|
}
|
|
}
|