public function uploadUpdate($attachmentId, Request $request)
{
$this->validate($request, ['uploaded_to' => 'required|integer|exists:pages,id', 'file' => 'required|file']);
$pageId = $request->get('uploaded_to');
$page = $this->pageRepo->getById($pageId, true);
$attachment = $this->attachment->findOrFail($attachmentId);
$this->checkOwnablePermission('page-update', $page);
$this->checkOwnablePermission('attachment-create', $attachment);
if (intval($pageId) !== intval($attachment->uploaded_to)) {
return $this->jsonError('Page mismatch during attached file update');
}
$uploadedFile = $request->file('file');
try {
$attachment = $this->attachmentService->saveUpdatedUpload($uploadedFile, $attachment);
} catch (FileUploadException $e) {
return response($e->getMessage(), 500);
}
return response()->json($attachment);
}