diff --git a/api/manifest.json b/api/manifest.json new file mode 100644 index 0000000..5311b50 --- /dev/null +++ b/api/manifest.json @@ -0,0 +1,22 @@ +{ + "name": "socioview_api", + "version": "0.1", + "description": "API de la plateforme d'acquisition et de visualisation de donnees dans le cadre d'etudes relationnelles en sociologie", + + "requests": { + + "parse-call-log":{ + "url": "socioview/api/", + "method": "POST", + "description": "Renvoie a partir du contenu d'un fichier de journal d'appel XML un objet classant les relations SMS/MMS par nombre de messages recus et emis, et de meme pour les appels classes par nombre d'appels.", + + "input": { "path": "callLog/unserialize", "data": "array" }, + "output": { "ModuleError": "int", "data": "json" } + } + + } + + + +} + diff --git a/automate.php b/automate.php index 07f8e12..6e7cf89 100755 --- a/automate.php +++ b/automate.php @@ -41,27 +41,31 @@ /* [4] Sinon on recupere le resultat =========================================================*/ - $obj = $answer->get('object'); + $sms = $answer->get('sms'); + $call = $answer->get('call'); + $contact = $answer->get('contact'); /* [5] On debug les donnees recues =========================================================*/ - var_dump( "Il y a ".count($obj['contact'])." personnes :" ); - var_dump( "- ".count($obj['SMS'])." par SMS/MMS" ); - var_dump( "- ".count($obj['CALL'])." par telephone" ); + var_dump( "Il y a ".count($contact)." personnes :" ); + var_dump( "- ".count($sms)." par SMS/MMS" ); + var_dump( "- ".count($call)." par telephone" ); echo "
"; echo "TOP 10 DES APPELS
"; echo "=================
"; - foreach($obj['CALL'] as $v) - var_dump( $v[0] ." (".$obj['contact'][$v[0]].") \t\t\t". $v[1] ." appels"); + foreach($call as $v) + var_dump( $v[0] ." (".$contact[$v[0]].") \t\t\t". $v[1] ." appels"); echo "TOP 10 DES MMS/SMS
"; echo "==================
"; - foreach($obj['SMS'] as $v) - var_dump( $v[0] ." (".$obj['contact'][$v[0]].") \t\t\t". $v[1] ." appels"); + foreach($sms as $v) + var_dump( $v[0] ." (".$contact[$v[0]].") \t\t\t". $v[1] ." appels"); var_dump("\n\n\nOBJET COMPLET"); - var_dump( $obj ); + var_dump( $sms ); + var_dump( $call ); + var_dump( $contact ); } parseCallLog(); diff --git a/manager/module/callLog.php b/manager/module/callLog.php index 9e2953c..a7d7071 100644 --- a/manager/module/callLog.php +++ b/manager/module/callLog.php @@ -13,7 +13,9 @@ * * @content Le contenu du journal d'appel a deserialiser * - * @return object Retourne un tableau associatif contenant les donnees triees + * @return sms Retourne un tableau associatif contenant les sms triees + * @return call Retourne un tableau associatif contenant les appels triees + * @return contact Retourne un tableau associatif contenant les correspondances numero/nom de contact * */ public static function unserialize($content=null){ @@ -85,311 +87,45 @@ } - /* [4] On trie par nombre de contacts + /* [4] On trie par nombre d'interactions (sms/appel) =========================================================*/ $tmp = $msms; /* (1) Tri des SMS/MMS */ - $maxMSMS = array(); - for( $i = 0 ; $i < 10 ; $i++ ){ + $sortedMSMS = array(); + // On fait le tri pour les 10 premiers elements sauf s'il en a moins + for( $i = 0 ; $i < 10 && $i < count($tmp) ; $i++ ){ $maxval = max($tmp); $maxkey = array_search($maxval, $tmp); - array_push( $maxMSMS, array($maxkey, $maxval) ); + array_push( $sortedMSMS, array($maxkey, $maxval) ); unset($tmp[$maxkey]); } $tmp = $call; /* (2) Tri des appels */ - $maxCalls = array(); - for( $i = 0 ; $i < 10 ; $i++ ){ + $sortedCALL = array(); + // On fait le tri pour les 10 premiers elements sauf s'il en a moins + for( $i = 0 ; $i < 10 && $i < count($tmp) ; $i++ ){ $maxval = max($tmp); $maxkey = array_search($maxval, $tmp); - array_push( $maxCalls, array($maxkey, $maxval) ); + array_push( $sortedCALL, array($maxkey, $maxval) ); unset($tmp[$maxkey]); } - /* [5] Mise en forme de l'objet de retour - =========================================================*/ - $object = array( - 'SMS' => $maxMSMS, - 'CALL' => $maxCalls, - 'contact' => $names - ); - - /* [5] Gestion du retour =========================================================*/ return array( 'ModuleError' => ManagerError::Success, - 'object' => $object + 'sms' => $sortedMSMS, + 'call' => $sortedCALL, + 'contact' => $names ); } - - /* AJOUTE UNE MACHINE DONNEE A UN GROUPE DONNE - * - * @id_cluster UID du groupe - * @id_machine UID de la machine - * - * @return association Renvoie l'UID de l'association cree - * Renvoie FALSE si une erreur occure - * - */ - public static function link($id_cluster, $id_machine){ - /* [1] Normalisation + verification des donnees - =========================================================*/ - $correct_param = Database::check('auto_increment_id', $id_cluster); - $correct_param = $correct_param && Database::check('auto_increment_id', $id_machine); - - // Si les parametres ne sont pas corrects, on retourne une erreur - if( !$correct_param ) - return array('ModuleError' => ManagerError::ParamError); - - /* [2] Creation de l'association - =========================================================*/ - $link_machine = new Repo('cluster/link', array($id_cluster, $id_machine, clusterRepo::MACHINE_CLASS)); - - return $link_machine; - - } - - - - - - /* RETIRE UNE MACHINE DONNEE A UN GROUPE DONNE - * - * @id_cluster UID du groupe - * @id_machine UID de la machine - * - * @return association Renvoie l'UID de l'association cree - * Renvoie FALSE si une erreur occure - * - */ - public static function unlink($id_cluster, $id_machine){ - /* [1] Normalisation + verification des donnees - =========================================================*/ - $correct_param = Database::check('auto_increment_id', $id_cluster); - $correct_param = $correct_param && Database::check('auto_increment_id', $id_machine); - - // Si les parametres ne sont pas corrects, on retourne une erreur - if( !$correct_param ) - return array('ModuleError' => ManagerError::ParamError); - - /* [2] Suppression de l'association - =========================================================*/ - $link_machine = new Repo('cluster/unlink', array($id_cluster, $id_machine, clusterRepo::MACHINE_CLASS)); - - return $link_machine; - - } - - - - - - /* RENVOIE UNE MACHINE EN FONCTION D'UN MOT CLE - * - * @keyword Element de recherche - * - * @return machines Retourne la liste des machines trouvees - * - */ - public static function search($keyword){ - // On recupere les donnees - $machine = new Repo('machine/search', array($keyword)); - - return array( - 'machines' => $machine->answer() - ); - } - - - - - - /* RENVOIE LA LISTE EXHAUSTIVE DES MACHINES - * - * @return machines Liste des machines - * - */ - public static function getAll(){ - // On recupere les donnees - $machines = new Repo('machine/getAll'); - - return array( - 'machines' => $machines->answer() - ); - } - - - - - - /* RENVOIE LA MACHINE D'UID DONNE - * - * @id_machine UID de la machine en question - * - * @return machine Machine d'UID donne - * - */ - public static function getById($id_machine){ - // On recupere les donnees - $request = new Repo('machine/getById', array($id_machine)); - $answer = $request->answer(); - - // Si aucun resultat, on retourne une erreur - if( $answer === false ) - return array( 'ModuleError' => ManagerError::ModuleError ); - - - return array( - 'machine' => $answer - ); - } - - - - - - /* RENVOIE LA MACHINE DE CODE DONNE - * - * @code Code de la machine en question - * - * @return machine Machine de code donne - * - */ - public static function getByCode($code){ - // On recupere les donnees - $request = new Repo('machine/getByCode', array($code)); - $answer = $request->answer(); - - // Si aucun resultat, on retourne une erreur - if( $answer === false ) - return array( 'ModuleError' => ManagerError::ModuleError ); - - - return array( - 'machine' => $answer - ); - } - - - - - - /* RENVOIE LES GROUPES D'UNE MACHINE DONNEE - * - * @id_machine UID de la machine en question - * - * @return clusters Groupes de la machine donne - * - */ - public static function getClusters($id_machine){ - // On recupere les donnees - $request = new Repo('machine/getClusters', array($id_machine)); - $answer = $request->answer(); - - // Si aucun resultat, on retourne une erreur - if( $answer === false ) - return array( 'ModuleError' => ManagerError::ModuleError ); - - - return array( - 'clusters' => $answer - ); - } - - - - - - /* MODIFIE UNE MACHINE DONNEE - * - * @id_machine UID de la machine - * @code Code RFID de la machine - * @name Identifiant l'utilisateur - * - * @return status Retourne si oui ou non tout s'est bien deroule - * - */ - public static function edit($id_machine=null, $code=null, $name=null){ - // Si @id_machine n'est pas au bon format, on retourne une erreur - if( !Database::check('auto_increment_id', $id_machine) ) - return array('ModuleError' => ManagerError::ModuleError); - - - /* [1] On verifie l'existence de la machine - =========================================================*/ - $machine_exists = new Repo('machine/getById', array($id_machine)); - $machine_data = $machine_exists->answer(); - - // Si on a recupere aucune machine, on retourne une erreur - if( !is_array($machine_data) ) - return array('ModuleError' => ManagerError::ModuleError); - - - - - /* [2] Normalisation + verification des donnees - =========================================================*/ - - /* (1) Verification des parametres (si correct et different)*/ - $correct_param = array( - 'code' => Database::check('machine.code', $code ) && $machine_data['code'] != $code, - 'name' => Database::check('machine.name', $name ) && $machine_data['name'] != $name - ); - - /* (2) Gestion des parametres optionnels */ - $opt_data = array( - 'code' => ($correct_param['code']) ? $code : $machine_data['code'], - 'name' => ($correct_param['name']) ? $name : $machine_data['name'] - ); - - - /* [3] Modification de la machine - =========================================================*/ - $request = new Repo('machine/edit', array( - $id_machine, - $opt_data['code'], - $opt_data['name'] - )); - - - return array( - 'status' => $request->answer() - ); - } - - - - - - /* SUPPRIME UNE MACHINE DONNEE - * - * @id_machine UID de la machine en question - * - * @return status Retourne si oui ou non tout s'est bien deroule - * - */ - public static function delete($id_machine){ - // On recupere les donnees - $request = new Repo('machine/delete', array($id_machine)); - $answer = $request->answer(); - - return array( - 'status' => $answer - ); - } - - - - - } diff --git a/todo.md b/todo.md index f8a4d72..1bb6cef 100755 --- a/todo.md +++ b/todo.md @@ -30,11 +30,14 @@ - [ ] Implementation CSS - [x] [doc/wireframe.png] Components - [ ] CSS - + ######## # FAIT # ######## +- [x] Graphique de type #FIELD + - [x] Definition des donnees + - [x] Definition graphique + implementation - [x] Modification du modele de navigation - [x] Suppression du sub-side-menu - [x] Creation des bonnes pages