diff --git a/src/CoreBundle/Controller/Api/BaseResourceFileAction.php b/src/CoreBundle/Controller/Api/BaseResourceFileAction.php index fbd51d576d..91014c618d 100644 --- a/src/CoreBundle/Controller/Api/BaseResourceFileAction.php +++ b/src/CoreBundle/Controller/Api/BaseResourceFileAction.php @@ -26,11 +26,21 @@ class BaseResourceFileAction $comment = $contentData['comment'] ?? ''; $parentResourceNodeId = $contentData['parentResourceNodeId'] ?? 0; $fileType = $contentData['filetype'] ?? ''; + $resourceLinkList = $contentData['resourceLinkList'] ?? []; } else { $title = $request->get('title'); $comment = $request->get('comment'); $parentResourceNodeId = (int) $request->get('parentResourceNodeId'); $fileType = $request->get('filetype'); + $resourceLinkList = $request->get('resourceLinkList', []); + if (!empty($resourceLinkList)) { + $resourceLinkList = false === strpos($resourceLinkList, '[') ? json_decode('['.$resourceLinkList.']', true) : json_decode($resourceLinkList, true); + if (empty($resourceLinkList)) { + $message = 'resourceLinkList is not a valid json. Use for example: [{"c_id":1, "visibility":1}]'; + + throw new InvalidArgumentException($message); + } + } } if (empty($fileType)) { @@ -90,9 +100,10 @@ class BaseResourceFileAction return [ 'title' => $title, + 'filetype' => $fileType, 'comment' => $comment, 'parentResourceNodeId' => $parentResourceNodeId, - 'filetype' => $fileType, + 'resourceLinkList' => $resourceLinkList, ]; } diff --git a/src/CoreBundle/Controller/Api/CreateDocumentFileAction.php b/src/CoreBundle/Controller/Api/CreateDocumentFileAction.php index 7daf0d0034..c5f092a669 100644 --- a/src/CoreBundle/Controller/Api/CreateDocumentFileAction.php +++ b/src/CoreBundle/Controller/Api/CreateDocumentFileAction.php @@ -23,15 +23,8 @@ class CreateDocumentFileAction extends BaseResourceFileAction $document->setComment($result['comment']); // Specific for the CDocument because it needs to be registered in a course. - if ($request->request->has('resourceLinkList')) { - $links = $request->get('resourceLinkList'); - $links = false === strpos($links, '[') ? json_decode('['.$links.']', true) : json_decode($links, true); - if (empty($links)) { - $message = 'resourceLinkList is not a valid json. Use for example: [{"c_id":1, "visibility":1}]'; - - throw new InvalidArgumentException($message); - } - $document->setResourceLinkArray($links); + if (!empty($result['resourceLinkList'])) { + $document->setResourceLinkArray($result['resourceLinkList']); } return $document;