3 namespace BookStack\Entities\Tools;
5 use BookStack\Entities\EntityProvider;
6 use BookStack\Entities\Models\Entity;
8 class MixedEntityRequestHelper
10 public function __construct(
11 protected EntityProvider $entities,
16 * Query out an entity, visible to the current user, for the given
17 * entity request details (this provided in a request validated by
18 * this classes' validationRules method).
19 * @param array{type: string, id: string} $requestData
21 public function getVisibleEntityFromRequestData(array $requestData): Entity
23 $entityType = $this->entities->get($requestData['type']);
25 return $entityType->newQuery()->scopes(['visible'])->findOrFail($requestData['id']);
29 * Get the validation rules for an abstract entity request.
30 * @return array{type: string[], id: string[]}
32 public function validationRules(): array
35 'type' => ['required', 'string'],
36 'id' => ['required', 'integer'],