From 1161b72618d89a49f561dda31b2b0d3135ab8220 Mon Sep 17 00:00:00 2001
From: Damien <damien.burel@maarch.org>
Date: Tue, 24 Nov 2020 15:20:07 +0100
Subject: [PATCH] FEAT #15397 TIME 0:15 Alfresco folder metadata creation

---
 apps/maarch_entreprise/xml/alfresco.json.default       |  5 ++++-
 .../alfresco/controllers/AlfrescoController.php        | 10 +++++++---
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/apps/maarch_entreprise/xml/alfresco.json.default b/apps/maarch_entreprise/xml/alfresco.json.default
index 98ecf5e434b..0a41d5ca6b5 100644
--- a/apps/maarch_entreprise/xml/alfresco.json.default
+++ b/apps/maarch_entreprise/xml/alfresco.json.default
@@ -7,7 +7,10 @@
         "attachment" : {
             "cm:name": "title"
         },
-        "folder" : {
+        "folderCreation" : {
+            "cm:title": "un titre"
+        },
+        "folderModification" : {
             "cm:description": "une description"
         }
     }
diff --git a/src/app/external/alfresco/controllers/AlfrescoController.php b/src/app/external/alfresco/controllers/AlfrescoController.php
index 064eacad3c5..d6d0d29e4cc 100644
--- a/src/app/external/alfresco/controllers/AlfrescoController.php
+++ b/src/app/external/alfresco/controllers/AlfrescoController.php
@@ -593,12 +593,16 @@ class AlfrescoController
             return ['errors' => 'Alfresco mapping file does not exist'];
         }
 
+        $body = ['name' => str_replace('/', '_', $document['alt_identifier']), 'nodeType' => 'cm:folder'];
+        if (!empty($alfrescoParameters['mapping']['folderCreation'])) {
+            $body['properties'] = $alfrescoParameters['mapping']['folderCreation'];
+        }
         $curlResponse = CurlModel::execSimple([
             'url'           => "{$alfrescoUri}/alfresco/versions/1/nodes/{$args['folderId']}/children",
             'basicAuth'     => ['user' => $entityInformations['alfresco']['login'], 'password' => $entityInformations['alfresco']['password']],
             'headers'       => ['content-type:application/json', 'Accept: application/json'],
             'method'        => 'POST',
-            'body'          => json_encode(['name' => str_replace('/', '_', $document['alt_identifier']), 'nodeType' => 'cm:folder'])
+            'body'          => json_encode($body)
         ]);
         if ($curlResponse['code'] != 201) {
             return ['errors' => "Create folder {$document['alt_identifier']} failed : " . json_encode($curlResponse['response'])];
@@ -819,9 +823,9 @@ class AlfrescoController
             AttachmentModel::update(['set' => ['external_id' => json_encode($externalId)], 'where' => ['res_id = ?'], 'data' => [$attachment['res_id']]]);
         }
 
-        if (!empty($alfrescoParameters['mapping']['folder'])) {
+        if (!empty($alfrescoParameters['mapping']['folderModification'])) {
             $body = [
-                'properties' => $alfrescoParameters['mapping']['folder'],
+                'properties' => $alfrescoParameters['mapping']['folderModification'],
             ];
             $curlResponse = CurlModel::execSimple([
                 'url'           => "{$alfrescoUri}/alfresco/versions/1/nodes/{$resourceFolderId}",
-- 
GitLab