Documents: Fix resource link load via API and Chamilo UI

pull/3924/head
Julio Montoya 5 years ago
parent 4ad07f1033
commit bcbf9b031e
  1. 13
      src/CoreBundle/Controller/Api/BaseResourceFileAction.php
  2. 11
      src/CoreBundle/Controller/Api/CreateDocumentFileAction.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,
];
}

@ -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;

Loading…
Cancel
Save