--- /dev/null
+<?php
+
+class AlloController extends AppliancesController {
+
+ /**
+ * @api {get} /index.php?action=allo_version Récupération du nom et du numéro de version d'Allo
+ * @apiGroup Allo
+ * @apiVersion 1.0.0
+ *
+ *
+ * @apiSuccessExample {json} Success-Reponse:
+ * {"retour":"OK","message":"","result":{"name":"Allo","version":"0.9.0"}}
+ */
+ public function versionAction(){
+ return json_decode(file_get_contents(__DIR__."/../../version.json"),true);
+ }
+
+ /**
+ * @api {get} /index.php?action=allo_sugar_synchronize Configure des objets avec Sugar
+ * @apiGroup Allo
+ * @apiParam {String} objet l'objet à synchroniser au all pour tout syncrhoniser
+ * @apiVersion 1.0.0
+ *
+ *
+ * @apiSuccessExample {json} Success-Reponse:
+ * {"retour":"OK","message":"","result":true}
+ */
+ public function synchronizeAction(){
+ $command = $this->getParameters()->get('object');
+ return $this->sugarSynchronize($command);
+ }
+
+ public function getSynchronizeObject(){
+ $object_list = array('customer','product','contract','version','channel','typeHebergement');
+ return $object_list;
+ }
+
+ public function getSynchronizeCommand(){
+ $command_list = $this->getSynchronizeObject();
+ $command_list[] = 'all';
+ return $command_list;
+ }
+
+ public function sugarSynchronize($command){
+ if (! in_array($command,$this->getSynchronizeCommand())){
+ throw new Exception("Commande de synchronisation iconnue");
+ }
+ foreach($this->getSynchronizeObject() as $object){
+ if (! in_array($command,array('all',$object))){
+ continue;
+ }
+ $sugarObjectName = "Sugar" .ucfirst($object);
+ /** @var SugarObject $sugarObject */
+ $sugarObject = new $sugarObjectName($this->getSugarWrapper());
+ $sugarObject->synchronize();
+ }
+ return true;
+ }
+
+}
\ No newline at end of file