getParsedBody()['resource'] ?? []; if (($resource['type'] ?? '') !== 'file' || !isset($resource['uid'])) { return $this->createResponse(['success' => false], 400); } $fileObject = null; try { $fileObject = $this->resourceFactory->getFileObject($resource['uid']); } catch (FileDoesNotExistException $e) { } if ($fileObject === null || !($onlineMediaHelper = $this->onlineMediaHelperRegistry->getOnlineMediaHelper($fileObject)) || !$fileObject->checkActionPermission('editMeta') || !$fileObject->getMetaData()->offsetExists('uid') || !$this->getBackendUser()->check('tables_modify', 'sys_file_metadata') ) { return $this->createResponse(['success' => false], 400); } try { $this->previewService->updatePreviewImage($fileObject); } catch (\InvalidArgumentException $e) { return $this->createResponse(['success' => false], 400); } // Update remaining meta data from online media helper $fileObject->getMetaData()->add($onlineMediaHelper->getMetaData($fileObject))->save(); return $this->createResponse(['success' => true]); } protected function createResponse(array $data = [], int $status = 200): ResponseInterface { return $this->responseFactory->createResponse($status) ->withHeader('Content-Type', 'application/json; charset=utf-8') ->withBody($this->streamFactory->createStream((string)json_encode($data))); } protected function getBackendUser(): BackendUserAuthentication { return $GLOBALS['BE_USER']; } }