namespace BookStack\Uploads\Controllers;
-use BookStack\Entities\Models\Page;
+use BookStack\Entities\Queries\PageQueries;
use BookStack\Exceptions\FileUploadException;
use BookStack\Http\ApiController;
use BookStack\Uploads\Attachment;
class AttachmentApiController extends ApiController
{
public function __construct(
- protected AttachmentService $attachmentService
+ protected AttachmentService $attachmentService,
+ protected PageQueries $pageQueries,
) {
}
$requestData = $this->validate($request, $this->rules()['create']);
$pageId = $request->get('uploaded_to');
- $page = Page::visible()->findOrFail($pageId);
+ $page = $this->pageQueries->findVisibleByIdOrFail($pageId);
$this->checkOwnablePermission('page-update', $page);
if ($request->hasFile('file')) {
$page = $attachment->page;
if ($requestData['uploaded_to'] ?? false) {
$pageId = $request->get('uploaded_to');
- $page = Page::visible()->findOrFail($pageId);
+ $page = $this->pageQueries->findVisibleByIdOrFail($pageId);
$attachment->uploaded_to = $requestData['uploaded_to'];
}
{
return [
'create' => [
- 'name' => ['required', 'min:1', 'max:255', 'string'],
+ 'name' => ['required', 'string', 'min:1', 'max:255'],
'uploaded_to' => ['required', 'integer', 'exists:pages,id'],
'file' => array_merge(['required_without:link'], $this->attachmentService->getFileValidationRules()),
- 'link' => ['required_without:file', 'min:1', 'max:2000', 'safe_url'],
+ 'link' => ['required_without:file', 'string', 'min:1', 'max:2000', 'safe_url'],
],
'update' => [
- 'name' => ['min:1', 'max:255', 'string'],
+ 'name' => ['string', 'min:1', 'max:255'],
'uploaded_to' => ['integer', 'exists:pages,id'],
'file' => $this->attachmentService->getFileValidationRules(),
- 'link' => ['min:1', 'max:2000', 'safe_url'],
+ 'link' => ['string', 'min:1', 'max:2000', 'safe_url'],
],
];
}