From 305ea826b93b80e318dbcbac0d517e3762093cd2 Mon Sep 17 00:00:00 2001
From: Ninassi Benjamin <benjamin.ninassi@inria.fr>
Date: Tue, 9 Apr 2019 09:53:35 +0200
Subject: [PATCH] json import correction

---
 .../ImportStructuresFromJsonCommand.php       | 102 +++++++++---------
 1 file changed, 53 insertions(+), 49 deletions(-)

diff --git a/src/ClassCodeBundle/Command/ImportStructuresFromJsonCommand.php b/src/ClassCodeBundle/Command/ImportStructuresFromJsonCommand.php
index f91b251..67eebd2 100644
--- a/src/ClassCodeBundle/Command/ImportStructuresFromJsonCommand.php
+++ b/src/ClassCodeBundle/Command/ImportStructuresFromJsonCommand.php
@@ -68,56 +68,60 @@ class ImportStructuresFromJsonCommand extends ContainerAwareCommand
       $json_array = json_decode($json_source,true); 
     }
     if($json_array['structures']){         
-      foreach ($json_array as $data_structure) {
-        $type = ltrim(rtrim($data_structure['type']));      
-        $name = ltrim(rtrim($data_structure['name']));
-        if($type && $name){
-          
-          $logo = ltrim(rtrim($data_structure['logo']));   
-          $url = ltrim(rtrim($data_structure['url']));   
-          $who = ltrim(rtrim($data_structure['who']));
-          $address = ltrim(rtrim($data_structure['address']));
-          $location = $data_structure['location'];
-          if($location && is_array($location)){
-            $lat = ltrim(rtrim($location['lat']));
-            $long = ltrim(rtrim($location['lng']));
-          }else{
-            $lat = 0;
-            $long = 0;
-          }
-          $email = ltrim(rtrim($data_structure['email']));
-    
-          $structure =  $em->getRepository('ClassCodeBundle:Structure')->findOneBy(array('name' => $name,'type' => $type) );
-          
-          if(!$structure){
-            $structure = new Structure();   
-            $structure->setName($name);  
-            $structure->setMainType($type);
-          }
-          if(($structure->getLogo() != $logo)||
-             ($structure->getUrl() != $url)||
-             ($structure->getWho()!=$who)||
-             ($structure->getAddress() != $address)||
-             ($structure->getLatitude() != $lat)||
-             ($structure->getLongitude() != $long)||
-             ($structure->getDataSource() != $dataSource)||
-             ($structure->getEmail() != $email)){
-               
-            $structure->setLogo($logo); 
-            $structure->setUrl($url); 
-            $structure->setWho($who); 
-            $structure->setEmail($email); 
-            $structure->setAddress($address); 
-            $structure->setLatitude($lat); 
-            $structure->setLongitude($long); 
-            $structure->setDataSource($dataSource);
-            $structure->setUpdatedAt(new \DateTime());
-            $structure->setUpdatedBy($userName);   
+      foreach ($json_array['structures'] as $data_structure) {
+        if($data_structure['type'] && $data_structure['name']){
+          $type = ltrim(rtrim($data_structure['type']));      
+          $name = ltrim(rtrim($data_structure['name']));
+          if($type && $name){
+            
+            $logo = ltrim(rtrim($data_structure['logo']));   
+            $url = ltrim(rtrim($data_structure['url']));   
+            $who = ltrim(rtrim($data_structure['who']));
+            $address = ltrim(rtrim($data_structure['address']));
+            $location = $data_structure['location'];
+            if($location && is_array($location)){
+              $lat = ltrim(rtrim($location['lat']));
+              $long = ltrim(rtrim($location['lng']));
+            }else{
+              $lat = 0;
+              $long = 0;
+            }
+            $email = ltrim(rtrim($data_structure['email']));
+      
+            $structure =  $em->getRepository('ClassCodeBundle:Structure')->findOneBy(array('name' => $name,'type' => $type) );
             
-            $em->persist($structure);
-            $em->flush();
-          }    
-        }  
+            if(!$structure){
+              $structure = new Structure();   
+              $structure->setName($name);  
+              $structure->setMainType($type);
+            }
+            if(($structure->getLogo() != $logo)||
+               ($structure->getUrl() != $url)||
+               ($structure->getWho()!=$who)||
+               ($structure->getAddress() != $address)||
+               ($structure->getLatitude() != $lat)||
+               ($structure->getLongitude() != $long)||
+               ($structure->getDataSource() != $dataSource)||
+               ($structure->getEmail() != $email)){
+                 
+              $structure->setLogo($logo); 
+              $structure->setUrl($url); 
+              $structure->setWho($who); 
+              $structure->setEmail($email); 
+              $structure->setAddress($address); 
+              $structure->setLatitude($lat); 
+              $structure->setLongitude($long); 
+              $structure->setDataSource($dataSource);
+              $structure->setUpdatedAt(new \DateTime());
+              $structure->setUpdatedBy($userName);   
+              
+              $em->persist($structure);
+              $em->flush();
+            }    
+          }  
+        }else{
+          $log_msg_error .= "No type or no name defined, structure passed !\n";  
+        }
       }
     }else{
       $log_msg_error .= "No structures found, aborting import !\n";    
-- 
GitLab