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