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)));
|
$req = new ModuleRequest('download/phone', array('subjects'=>array(1, 137, 205)));
|
||||||
var_dump( $req->download() );
|
|
||||||
|
|
||||||
|
$res = $req->download();
|
||||||
|
|
||||||
|
if( $res->error != ManagerError::Success )
|
||||||
|
var_dump( ManagerError::explicit($res->error) );
|
||||||
|
|
||||||
|
|
||||||
/* [4] Analyse des performances de `lightdb`
|
/* [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>" },
|
"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 }
|
"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": {
|
"parameters": {
|
||||||
"subjects": { "description": "Identifiants des sujets à intégrer.", "type": "array<id>" }
|
"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 dictionnaire des valeurs
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
/* (1) On récupère le fichier */
|
/* (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 */
|
/* (2) Si une erreur pour le fichier de conf */
|
||||||
if( $dict === false )
|
if( $dict === false )
|
||||||
|
@ -236,7 +236,7 @@
|
||||||
$phone_storage = json_encode($phone_storage);
|
$phone_storage = json_encode($phone_storage);
|
||||||
|
|
||||||
/* (3) On l'enregistre dans le fichier */
|
/* (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
|
// Si erreur d'écriture
|
||||||
if( $written === false )
|
if( $written === false )
|
||||||
|
|
|
@ -122,25 +122,25 @@
|
||||||
|
|
||||||
/* [0] On récupère le dictionnaire
|
/* [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 */
|
/* (2) Si une erreur pour le fichier de conf */
|
||||||
if( $dict === false )
|
if( $dict === false )
|
||||||
return ManagerError::UnreachableResource;
|
return array( 'ModuleError' => ManagerError::UnreachableResource );
|
||||||
|
|
||||||
/* (3) On récupère la config sous forme de tableau */
|
/* (3) On récupère la config sous forme de tableau */
|
||||||
$dict = json_decode( $dict, true );
|
$dict = json_decode( $dict, true );
|
||||||
|
|
||||||
/* (4) Si erreur de PARSAGE */
|
/* (4) Si erreur de PARSAGE */
|
||||||
if( !is_array($dict) )
|
if( !is_array($dict) )
|
||||||
return ManagerError::ParsingFailed;
|
return array( 'ModuleError' => ManagerError::ParsingFailed );
|
||||||
|
|
||||||
|
|
||||||
// Contiendra les données de tous les sujets
|
// Contiendra les données de tous les sujets
|
||||||
$output = array();
|
$output = array();
|
||||||
|
|
||||||
// On ouvre une instance de la base de données
|
// 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
|
/* [1] On construit les fichiers de chaque sujet
|
||||||
|
@ -184,6 +184,7 @@
|
||||||
foreach($output as $subjectId=>$files){
|
foreach($output as $subjectId=>$files){
|
||||||
|
|
||||||
foreach($files as $file=>$content)
|
foreach($files as $file=>$content)
|
||||||
|
if( strlen($content) > 0 )
|
||||||
$zip->addFromString($subjects[$subjectId].'/'.$file.'.csv', $content);
|
$zip->addFromString($subjects[$subjectId].'/'.$file.'.csv', $content);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -297,42 +297,7 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* [1] On enregistre les données du sujet
|
||||||
/* [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
|
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$file['subject'] = array(
|
$file['subject'] = array(
|
||||||
'id' => $offset + $subject_id,
|
'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();
|
$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){
|
foreach($fiches as $ficheData){
|
||||||
// On récupère les données du contact associé
|
// 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();
|
$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 = new lightdb('facebook_db', __ROOT__.'/src/dynamic/');
|
||||||
$db->insert( $subject_id, $file );
|
$db->insert( $subject_id, $file );
|
||||||
$db->close();
|
$db->close();
|
||||||
|
|
||||||
/* [7] On met à jour le nouvel ID unique
|
/* [6] On met à jour le nouvel ID unique
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
// $maxId += $offset;
|
// $maxId += $offset;
|
||||||
rewind($funiq); // On revient au début du fichier
|
rewind($funiq); // On revient au début du fichier
|
||||||
|
@ -424,13 +389,13 @@
|
||||||
flock($funiq, LOCK_UN); // On débloque le verrou
|
flock($funiq, LOCK_UN); // On débloque le verrou
|
||||||
fclose($funiq);
|
fclose($funiq);
|
||||||
|
|
||||||
/* [8] On supprime le fichier temporaire si existe
|
/* [7] On supprime le fichier temporaire si existe
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
if( file_exists($tmpfile) )
|
if( file_exists($tmpfile) )
|
||||||
unlink($tmpfile);
|
unlink($tmpfile);
|
||||||
|
|
||||||
|
|
||||||
/* [9] Gestion du retour
|
/* [8] Gestion du retour
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
return array(
|
return array(
|
||||||
'ModuleError' => ManagerError::Success,
|
'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