From 1106b1eba2eeb265daa8b43320691493e967e973 Mon Sep 17 00:00:00 2001
From: Laurent Giovannoni <laurent.giovannoni@maarch.org>
Date: Thu, 14 Sep 2017 17:55:25 +0200
Subject: [PATCH] FEAT #5938

---
 core/Controllers/ResController.php | 35 +++++++++++++++++++++++++++---
 core/Test/ResControllerTest.php    |  2 +-
 2 files changed, 33 insertions(+), 4 deletions(-)

diff --git a/core/Controllers/ResController.php b/core/Controllers/ResController.php
index 3b437330d4b..f9352ce3190 100755
--- a/core/Controllers/ResController.php
+++ b/core/Controllers/ResController.php
@@ -34,12 +34,37 @@ class ResController
 {
     public function create(RequestInterface $request, ResponseInterface $response, $aArgs)
     {
-        if(empty($aArgs)){
+        if(empty($aArgs)) {
+            
             $aArgs = $request->getQueryParams();
+
             $aArgs['data'] = json_decode($aArgs['data']);
+
             $aArgs['data'] = $this->object2array($aArgs['data']);
+
+            //FIX pb if data has parent
+            if (isset($aArgs['data']['data'])) {
+                $aArgs['data'] = $aArgs['data']['data'];
+            }
         }
 
+        //*****************************************************************************************
+        //LOG ONLY LOG FOR DEBUG
+        // $file = fopen('storeResourceLogs.log', a);
+        // fwrite($file, '[' . date('Y-m-d H:i:s') . '] new request' . PHP_EOL);
+        // foreach ($aArgs as $key => $value) {
+        //     if ($key <> 'encodedFile') {
+        //         fwrite($file, '[' . date('Y-m-d H:i:s') . '] ' . $key . ' : ' . $value . PHP_EOL);
+        //     }
+        // }
+        // fclose($file);
+        // ob_flush();
+        // ob_start();
+        // print_r($aArgs['data']);
+        // file_put_contents("storeResourceLogs.log", ob_get_flush());
+        //END LOG FOR DEBUG ONLY
+        //*****************************************************************************************
+
         $return = $this->storeResource($aArgs);
 
         if ($return['errors']) {
@@ -49,8 +74,11 @@ class ResController
                     ['errors' => _NOT_CREATE . ' ' . $return['errors']]
                 );
         }
+
+        //standardize ws response for MaarchCapture
+        $wsReturn['resId'] = $return[0];
         
-        return $response->withJson($return);
+        return $response->withJson($wsReturn);
     }
 
     public function delete(RequestInterface $request, ResponseInterface $response, $aArgs)
@@ -158,7 +186,8 @@ class ResController
             
             $returnCode = 0;
             //copy sended file on tmp
-            $fileContent = base64_decode($encodedFile);
+            //$fileContent = base64_decode($encodedFile);
+            $fileContent = base64_decode(str_replace(array('-', '_'), array('+', '/'), $encodedFile));
             $random = rand();
             $fileName = 'tmp_file_' . $random . '.' . $fileFormat;
             $Fnm = CoreConfigModel::getTmpPath() . $fileName;
diff --git a/core/Test/ResControllerTest.php b/core/Test/ResControllerTest.php
index f9cc616d6b6..6ed1101d217 100755
--- a/core/Test/ResControllerTest.php
+++ b/core/Test/ResControllerTest.php
@@ -227,7 +227,7 @@ class ResControllerTest extends TestCase
         $response = new \Slim\Http\Response();
         $response = $action->create($request, $response, $aArgs);
         //print_r($response);exit;
-        $this->assertGreaterThan(1, json_decode($response->getBody())[0]);
+        $this->assertGreaterThan(1, json_decode($response->getBody())->resId);
     }
 
     public function testDeleteRes()
-- 
GitLab