Implémentation de 'input/facebook' + correction 'download/phone'
This commit is contained in:
parent
ccae5bf279
commit
13bc65d27a
|
@ -87,9 +87,12 @@
|
|||
// }
|
||||
|
||||
|
||||
$req = new ModuleRequest('download/phone', array('subjects'=>array(1, 273)));
|
||||
var_dump( $req->download() );
|
||||
$req = new ModuleRequest('download/phone', array('subjects'=>array(1, 137, 205)));
|
||||
|
||||
$res = $req->download();
|
||||
|
||||
if( $res->error != ManagerError::Success )
|
||||
var_dump( ManagerError::explicit($res->error) );
|
||||
|
||||
|
||||
/* [4] Analyse des performances de `lightdb`
|
||||
|
|
|
@ -206,6 +206,19 @@
|
|||
"fiches": { "description": "Fiches relation sur les plus proches contacts de l'enquête.", "type": "array<array>" },
|
||||
"matrice": { "description": "Matrice contenant les relations entre les plus proches contacts", "type": "array<array>", "optional": true }
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
"facebook": {
|
||||
"description": "Enregistre les données d'une enquête facebook.",
|
||||
"permissions": ["admin"],
|
||||
"parameters": {
|
||||
"subject": { "description": "Données sur le sujet de l'enquête.", "type": "array" },
|
||||
"contacts": { "description": "Données des contacts de l'enquête.", "type": "array<array>" },
|
||||
"mini": { "description": "Mini fiches relations sur les contacts de l'enquête.", "type": "array<array>" },
|
||||
"fiches": { "description": "Fiches relation sur les plus proches contacts de l'enquête.", "type": "array<array>" },
|
||||
"matrice": { "description": "Matrice contenant les relations entre les plus proches contacts", "type": "array<array>", "optional": true }
|
||||
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -243,6 +256,15 @@
|
|||
"parameters": {
|
||||
"subjects": { "description": "Identifiants des sujets à intégrer.", "type": "array<id>" }
|
||||
}
|
||||
},
|
||||
|
||||
"facebook": {
|
||||
"description": "Download des données relatives à une enquête facebook.",
|
||||
"permissions": ["admin"],
|
||||
"options": { "download": true },
|
||||
"parameters": {
|
||||
"subjects": { "description": "Identifiants des sujets à intégrer.", "type": "array<id>" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
/* [1] On récupère le dictionnaire des valeurs
|
||||
=========================================================*/
|
||||
/* (1) On récupère le fichier */
|
||||
$dict = ResourceDispatcher::getResource('f/json/dictionary/upload/phone_storage');
|
||||
$dict = ResourceDispatcher::getResource('f/json/dictionary/dy/phone');
|
||||
|
||||
/* (2) Si une erreur pour le fichier de conf */
|
||||
if( $dict === false )
|
||||
|
@ -236,7 +236,7 @@
|
|||
$phone_storage = json_encode($phone_storage);
|
||||
|
||||
/* (3) On l'enregistre dans le fichier */
|
||||
$written = file_put_contents( __ROOT__.'/tmp/phone_storage_'.$subject_id.'.json', $phone_storage);
|
||||
$written = file_put_contents( __ROOT__.'/tmp/phone_'.$subject_id.'.json', $phone_storage);
|
||||
|
||||
// Si erreur d'écriture
|
||||
if( $written === false )
|
||||
|
|
|
@ -122,25 +122,25 @@
|
|||
|
||||
/* [0] On récupère le dictionnaire
|
||||
=========================================================*/
|
||||
$dict = ResourceDispatcher::getResource('f/json/dictionary/upload/phone_storage');
|
||||
$dict = ResourceDispatcher::getResource('f/json/dictionary/dy/phone');
|
||||
|
||||
/* (2) Si une erreur pour le fichier de conf */
|
||||
if( $dict === false )
|
||||
return ManagerError::UnreachableResource;
|
||||
return array( 'ModuleError' => ManagerError::UnreachableResource );
|
||||
|
||||
/* (3) On récupère la config sous forme de tableau */
|
||||
$dict = json_decode( $dict, true );
|
||||
|
||||
/* (4) Si erreur de PARSAGE */
|
||||
if( !is_array($dict) )
|
||||
return ManagerError::ParsingFailed;
|
||||
return array( 'ModuleError' => ManagerError::ParsingFailed );
|
||||
|
||||
|
||||
// Contiendra les données de tous les sujets
|
||||
$output = array();
|
||||
|
||||
// On ouvre une instance de la base de données
|
||||
$db = new lightdb('db', __ROOT__.'/src/upload/phone_storage/');
|
||||
$db = new lightdb('phone_db', __ROOT__.'/src/dynamic/');
|
||||
|
||||
|
||||
/* [1] On construit les fichiers de chaque sujet
|
||||
|
@ -184,7 +184,8 @@
|
|||
foreach($output as $subjectId=>$files){
|
||||
|
||||
foreach($files as $file=>$content)
|
||||
$zip->addFromString($subjects[$subjectId].'/'.$file.'.csv', $content);
|
||||
if( strlen($content) > 0 )
|
||||
$zip->addFromString($subjects[$subjectId].'/'.$file.'.csv', $content);
|
||||
}
|
||||
|
||||
$zip->close();
|
||||
|
|
|
@ -297,42 +297,7 @@
|
|||
|
||||
|
||||
|
||||
|
||||
/* [1] On récupère les logs s'ils existent
|
||||
=========================================================*/
|
||||
// Contiendra le contenu du fichier
|
||||
$file = array( 'logs' => array() );
|
||||
|
||||
|
||||
/* (1) On définit les 2 fichiers utiles */
|
||||
$tmpfile = __ROOT__.'/tmp/facebook_'.$subject['tmp_id'].'.json';
|
||||
|
||||
/* (2) Si on a déja crée le fichier avec le journal d'appel dedans, on le récupère */
|
||||
$storage_already = is_string($subject['tmp_id']) && strlen($subject['tmp_id']) == 40 && file_exists($tmpfile);
|
||||
|
||||
|
||||
/* (3) Si on a déja crée le fichier, on essaie de récupérer son contenu */
|
||||
if( $storage_already ){
|
||||
$file = json_decode( file_get_contents($tmpfile), true );
|
||||
|
||||
// erreur
|
||||
if( $file == null )
|
||||
return array( 'ModuleRequest' => ManagerError::ParsingFailed );
|
||||
|
||||
// On incrémente tous les ids de l'offset
|
||||
foreach($file['logs'] as $i=>$log){
|
||||
$file['logs'][$i]['id'] = $offset + $log['id'];
|
||||
|
||||
if( $log['id'] > $maxId )
|
||||
$maxId = (int) $log['id'];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* [2] On enregistre les données du sujet
|
||||
/* [1] On enregistre les données du sujet
|
||||
=========================================================*/
|
||||
$file['subject'] = array(
|
||||
'id' => $offset + $subject_id,
|
||||
|
@ -340,7 +305,7 @@
|
|||
);
|
||||
|
||||
|
||||
/* [3] On enregistre les contacts des MINI
|
||||
/* [2] On enregistre les contacts des MINI
|
||||
=========================================================*/
|
||||
$file['contacts'] = array();
|
||||
|
||||
|
@ -365,7 +330,7 @@
|
|||
}
|
||||
|
||||
|
||||
/* [4] On enregistre les contacts des FICHES
|
||||
/* [3] On enregistre les contacts des FICHES
|
||||
=========================================================*/
|
||||
foreach($fiches as $ficheData){
|
||||
// On récupère les données du contact associé
|
||||
|
@ -398,7 +363,7 @@
|
|||
}
|
||||
|
||||
|
||||
/* [5] On enregistre les relations de la MATRICE
|
||||
/* [4] On enregistre les relations de la MATRICE
|
||||
=========================================================*/
|
||||
$file['relations'] = array();
|
||||
|
||||
|
@ -410,13 +375,13 @@
|
|||
));
|
||||
|
||||
|
||||
/* [6] On enregistre tout dans 'lightdb'
|
||||
/* [5] On enregistre tout dans 'lightdb'
|
||||
=========================================================*/
|
||||
$db = new lightdb('facebook_db', __ROOT__.'/src/dynamic/');
|
||||
$db->insert( $subject_id, $file );
|
||||
$db->close();
|
||||
|
||||
/* [7] On met à jour le nouvel ID unique
|
||||
/* [6] On met à jour le nouvel ID unique
|
||||
=========================================================*/
|
||||
// $maxId += $offset;
|
||||
rewind($funiq); // On revient au début du fichier
|
||||
|
@ -424,13 +389,13 @@
|
|||
flock($funiq, LOCK_UN); // On débloque le verrou
|
||||
fclose($funiq);
|
||||
|
||||
/* [8] On supprime le fichier temporaire si existe
|
||||
/* [7] On supprime le fichier temporaire si existe
|
||||
=========================================================*/
|
||||
if( file_exists($tmpfile) )
|
||||
unlink($tmpfile);
|
||||
|
||||
|
||||
/* [9] Gestion du retour
|
||||
/* [8] Gestion du retour
|
||||
=========================================================*/
|
||||
return array(
|
||||
'ModuleError' => ManagerError::Success,
|
||||
|
|
|
@ -1 +1 @@
|
|||
0
|
||||
272
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
{"1":{"line":0,"hash":"423bda798fbf4363a61d945e936c6a11ce9ac057"},"69":{"line":1,"hash":"785691cf7be9f8b18eb1a298db3187bdc86c4884"},"137":{"line":2,"hash":"47fc53f817eded81eecd15b2e042722d52bd8513"},"205":{"line":3,"hash":"0a296a89a05509be912fefda7fdcc2692a244208"}}
|
Loading…
Reference in New Issue