Parsage du journal d'appel
This commit is contained in:
parent
9d7a9530e7
commit
0b06a50d8c
354
automate.php
354
automate.php
|
@ -12,297 +12,97 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* NSERTION DES UTILISATEURS DANS LA BDD DEPUIS JSON
|
/* PARSAGE DE JOURNAUX D'APPEL
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @return status<Boolean> TRUE si aucune erreur, sinon FALSE
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
function insertUsersFromJSON(){
|
function parseCallLog(){
|
||||||
$json = ResourceDispatcher::getResource('f/json/generated_users/conf');
|
|
||||||
$json = json_decode( $json, true );
|
|
||||||
|
|
||||||
// Pour chaque entree
|
/* [1] On recupere le journal d'appel
|
||||||
foreach( $json as $user ){
|
=========================================================*/
|
||||||
|
$filename = 'calllog.xml';
|
||||||
|
$file = simplexml_load_file( $filename );
|
||||||
|
|
||||||
// Creation de la requete
|
/* [2] On parcours chaque ligne
|
||||||
$request = new ModuleRequest('userDefault/create', array(
|
=========================================================*/
|
||||||
$user['code'],
|
$names = array(); // Contiendra les correspondances num/names
|
||||||
$user['username'],
|
$msms = array(); // Contiendra les personnes utilisant SMS/MMS
|
||||||
$user['firstname'],
|
$call = array(); // Contiendra les personnes utilisant CALL
|
||||||
$user['lastname'],
|
|
||||||
$user['email'],
|
|
||||||
$user['password'],
|
|
||||||
$user['status']
|
/* [3] On parcours chaque ligne
|
||||||
));
|
=========================================================*/
|
||||||
$answer = $request->dispatch();
|
foreach($file->Item as $log){
|
||||||
// Debug error
|
// On recupere le numero en string
|
||||||
var_dump( $answer->error == ManagerError::Success );
|
$num = (string) $log['Number'];
|
||||||
|
|
||||||
|
// On formatte le numero
|
||||||
|
if( preg_match("/^(?:\+33|33|0)(.+)/", $num, $m) )
|
||||||
|
$num = '0'.$m[1];
|
||||||
|
|
||||||
|
|
||||||
|
/* (1) Si le type est MMS ou SMS */
|
||||||
|
if( $log['Type'] == 'SMS' || $log['Type'] == 'MMS' ){
|
||||||
|
|
||||||
|
// Si la personne n'est pas referencee, on l'ajoute
|
||||||
|
// Sinon on incremente son nombre d'apparition
|
||||||
|
if( isset($msms[$num]) )
|
||||||
|
$msms[$num]+= 1;
|
||||||
|
else
|
||||||
|
$msms[$num] = 1;
|
||||||
|
|
||||||
|
// On enregistre le nom si c'est pas fait
|
||||||
|
if( !isset($names[$num]) ) $names[$num] = $log['Name'];
|
||||||
|
|
||||||
|
|
||||||
|
/* (2) Si le type est PHONE */
|
||||||
|
}else if( $log['Type'] == 'PHONE' ){
|
||||||
|
|
||||||
|
// Si la personne n'est pas referencee, on l'ajoute
|
||||||
|
// Sinon on incremente son nombre d'apparition
|
||||||
|
if( isset($call[$num]) )
|
||||||
|
$call[$num]+= 1;
|
||||||
|
else
|
||||||
|
$call[$num] = 1;
|
||||||
|
|
||||||
|
// On enregistre le nom si c'est pas fait
|
||||||
|
if( !isset($names[$num]) ) $names[$num] = $log['Name'];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// var_dump( $log );
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
|
||||||
|
|
||||||
}//insertUsersFromJSON();
|
/* [4] On trie par nombre de contacts
|
||||||
|
=========================================================*/
|
||||||
|
// rsort($msms);
|
||||||
|
// rsort($call);
|
||||||
|
|
||||||
|
/* [5] On debug les donnees recues
|
||||||
|
=========================================================*/
|
||||||
|
echo "Il y a ".count($names)." personnes :<br>";
|
||||||
|
echo "- ".count($msms)." par SMS/MMS<br>";
|
||||||
|
echo "- ".count($call)." par telephone<br><br>";
|
||||||
|
|
||||||
|
echo 'Soit par ordre d\'affinites : <br>';
|
||||||
|
echo "TOP 10 DES APPELS<br>";
|
||||||
/* NSERTION DES MACHINES DANS LA BDD DEPUIS JSON
|
echo "=================<br>";
|
||||||
*
|
$count = 0;
|
||||||
*
|
foreach($call as $k=>$v){
|
||||||
* @return status<Boolean> TRUE si aucune erreur, sinon FALSE
|
var_dump( $k );
|
||||||
*
|
|
||||||
*/
|
var_dump( $names[$k] ." => ". $v ." appels");
|
||||||
function insertMachinesFromJSON(){
|
$count++;
|
||||||
$json = ResourceDispatcher::getResource('f/json/generated_machines/conf');
|
|
||||||
$json = json_decode( $json, true );
|
|
||||||
|
|
||||||
// Pour chaque entree
|
|
||||||
foreach( $json as $machine ){
|
|
||||||
|
|
||||||
// Creation de la requete
|
|
||||||
$request = new ModuleRequest('machineDefault/create', array(
|
|
||||||
$machine['code'],
|
|
||||||
$machine['name']
|
|
||||||
));
|
|
||||||
$answer = $request->dispatch();
|
|
||||||
// Debug error
|
|
||||||
var_dump( $answer->error == ManagerError::Success );
|
|
||||||
}
|
}
|
||||||
|
// var_dump( $call );
|
||||||
|
|
||||||
return true;
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
}//insertMachinesFromJSON();
|
|
||||||
|
|
||||||
|
|
||||||
|
parseCallLog();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* AFFICHAGE DES UTILISATEURS DE LA BDD
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @return status<Boolean> TRUE si aucune erreur, sinon FALSE
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
function selectUsers(){
|
|
||||||
|
|
||||||
// Creation de la requete
|
|
||||||
$requete = new ModuleRequest('userDefault/getAll');
|
|
||||||
$answer = $requete->dispatch();
|
|
||||||
|
|
||||||
var_dump( ManagerError::explicit($answer->error) );
|
|
||||||
var_dump( $answer->get('users') );
|
|
||||||
|
|
||||||
return true;
|
|
||||||
|
|
||||||
}//selectUsers();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* AFFICHAGE DES MACHINES DE LA BDD
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @return status<Boolean> TRUE si aucune erreur, sinon FALSE
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
function selectMachines(){
|
|
||||||
|
|
||||||
// Creation de la requete
|
|
||||||
$requete = new ModuleRequest('machineDefault/getAll');
|
|
||||||
$answer = $requete->dispatch();
|
|
||||||
|
|
||||||
var_dump( ManagerError::explicit($answer->error) );
|
|
||||||
var_dump( $answer->get('machines') );
|
|
||||||
|
|
||||||
return true;
|
|
||||||
|
|
||||||
}//selectMachines();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* AFFICHAGE DES UTILISATEURS DE LA BDD (MIS EN PAGE)
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @return status<Boolean> TRUE si aucune erreur, sinon FALSE
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
function displayUsers(){
|
|
||||||
|
|
||||||
// Creation de la requete
|
|
||||||
$request = new ModuleRequest('userDefault/getAll');
|
|
||||||
$answer = $request->dispatch();
|
|
||||||
|
|
||||||
// Debug error
|
|
||||||
if( $answer->error != ManagerError::Success )
|
|
||||||
var_dump( ManagerError::explicit($answer->error) );
|
|
||||||
|
|
||||||
// display result
|
|
||||||
var_dump( $answer->getAll() );
|
|
||||||
|
|
||||||
return true;
|
|
||||||
|
|
||||||
}//displayUsers();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* TEST DU DISPATCHER DES MANAGERS
|
|
||||||
*
|
|
||||||
* @return nomRetour<typeRetour> Description du retour
|
|
||||||
|
|
||||||
*/
|
|
||||||
function testModuleDispatcher(){
|
|
||||||
|
|
||||||
// Creation d'une requete en objet
|
|
||||||
$req1 = new ModuleRequest('firstModule/returnvar', array('id_user' => 10, 'code' => '11-22-33-44') );
|
|
||||||
// Creation d'une requete a partir d'un json en <String>
|
|
||||||
$req2 = ModuleRequest::fromString('{"path": "firstModule/returnvar", "data": {"id_user":10, "code":"11-22-33-44"}}');
|
|
||||||
|
|
||||||
var_dump( $req1->dispatch() );
|
|
||||||
|
|
||||||
return true;
|
|
||||||
|
|
||||||
}//testModuleDispatcher();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* TEST DU DISPATCHER DES REPO
|
|
||||||
*
|
|
||||||
* @return nomRetour<typeRetour> Description du retour
|
|
||||||
|
|
||||||
*/
|
|
||||||
function testRepoDispatcher(){
|
|
||||||
|
|
||||||
// Creation d'une requete en objet
|
|
||||||
$req1 = new Repo('user/getById', array('19'));
|
|
||||||
// $req1 = new Repo('user/getByCode', array('92-55-B9-B3'));
|
|
||||||
var_dump( $req1->answer() );
|
|
||||||
|
|
||||||
if( $req1->error != ManagerError::Success )
|
|
||||||
var_dump( ManagerError::explicit($req1->error) );
|
|
||||||
|
|
||||||
|
|
||||||
return true;
|
|
||||||
|
|
||||||
}//testRepoDispatcher();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* INSERTION (COMPOSITE) DES UTILISATEURS DE LA BDD
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @return status<Boolean> TRUE si aucune erreur, sinon FALSE
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
function insertUsersComposite(){
|
|
||||||
|
|
||||||
// Creation de la requete
|
|
||||||
$request = new ModuleRequest('userDefault/create', array('92-55-B9-B1', 'b', 'bla', 'bla', 'bla@test.com', 'sadas', '1') );
|
|
||||||
$answer = $request->dispatch();
|
|
||||||
// Debug error
|
|
||||||
if( $answer->error != ManagerError::Success )
|
|
||||||
var_dump( ManagerError::explicit($answer->error) );
|
|
||||||
|
|
||||||
var_dump( $answer->getAll() );
|
|
||||||
|
|
||||||
return true;
|
|
||||||
|
|
||||||
}//insertUsersComposite();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* RETOURNE LES GROUPES D'UN UTILISATEUR
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @return status<Boolean> TRUE si aucune erreur, sinon FALSE
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
function getUserClusters(){
|
|
||||||
$id_user = 115;
|
|
||||||
|
|
||||||
// Groupes de l'utilisateur 'a'
|
|
||||||
$getUser1Clusters = new Repo('user/getClusters', array($id_user));
|
|
||||||
$user1Clusters = $getUser1Clusters->answer();
|
|
||||||
var_dump( $user1Clusters );
|
|
||||||
|
|
||||||
// On ajoute un groupe a l'utilisateur 100
|
|
||||||
$linkA = new Repo('cluster/link', array($user1Clusters[0]['id_cluster'], 100) );
|
|
||||||
var_dump( $linkA->answer() );
|
|
||||||
$getUser2Clusters = new Repo('user/getClusters', array(100));
|
|
||||||
var_dump( $getUser2Clusters->answer() );
|
|
||||||
|
|
||||||
// On retire un groupe a l'utilisateur 100
|
|
||||||
$unlinkA = new Repo('cluster/unlink', array($user1Clusters[0]['id_cluster'], 100) );
|
|
||||||
var_dump( $linkA->answer() );
|
|
||||||
$getUser2Clusters = new Repo('user/getClusters', array(100));
|
|
||||||
var_dump( $getUser2Clusters->answer() );
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return true;
|
|
||||||
|
|
||||||
}//getUserClusters();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* MODIFICATION D'UN UTILISATEUR
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @return status<Boolean> TRUE si aucune erreur, sinon FALSE
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
function editUser(){
|
|
||||||
$id_user = 48;
|
|
||||||
|
|
||||||
$request = new ModuleRequest('userDefault/edit', array(
|
|
||||||
'B1-87-EA-BF',
|
|
||||||
'Abigail',
|
|
||||||
'Mcmillan',
|
|
||||||
'Savage',
|
|
||||||
'mcmillansavage@corecom.com',
|
|
||||||
'password',
|
|
||||||
0
|
|
||||||
));
|
|
||||||
|
|
||||||
|
|
||||||
// ["B1-87-EA-BF","Abigail01","Mcmillan","Savage","mcmillansavage@corecom.com","password",0]
|
|
||||||
|
|
||||||
var_dump( $request->dispatch() );
|
|
||||||
|
|
||||||
|
|
||||||
return true;
|
|
||||||
|
|
||||||
}//editUser();
|
|
||||||
|
|
||||||
// new ResourceDispatcher('f/svg/search/st/sub-menu-side/ff0000', true);
|
|
||||||
|
|
||||||
?>
|
?>
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,9 @@
|
||||||
|
[
|
||||||
|
"dashboard",
|
||||||
|
"profile",
|
||||||
|
"machines",
|
||||||
|
"users",
|
||||||
|
"groups",
|
||||||
|
"analytics",
|
||||||
|
"settings"
|
||||||
|
]
|
32
index.php
32
index.php
|
@ -13,6 +13,9 @@
|
||||||
/*******************************************/
|
/*******************************************/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* [0] On initialise le routeur
|
/* [0] On initialise le routeur
|
||||||
===================================================*/
|
===================================================*/
|
||||||
$R = new Router( $_GET['url'] );
|
$R = new Router( $_GET['url'] );
|
||||||
|
@ -23,22 +26,18 @@
|
||||||
// Racine -> page d'accueil
|
// Racine -> page d'accueil
|
||||||
$R->get('/?', function(){ header('Location: /dashboard/'); });
|
$R->get('/?', function(){ header('Location: /dashboard/'); });
|
||||||
|
|
||||||
// Liste des pages du site
|
|
||||||
$page_list = array(
|
/* [2] On recupere la liste des pages du site
|
||||||
'dashboard',
|
=========================================================*/
|
||||||
'profile',
|
$views = json_decode( ResourceDispatcher::getResource( 'f/json/views/conf', true ) );
|
||||||
'machines',
|
|
||||||
'users',
|
|
||||||
'groups',
|
|
||||||
'analytics',
|
|
||||||
'settings'
|
|
||||||
);
|
|
||||||
|
|
||||||
// nomPage/arg1/arg2 -> inclusion de la page
|
// nomPage/arg1/arg2 -> inclusion de la page
|
||||||
$R->get('(?:'.implode('|', $page_list).')(?:/[\w-]+)*/?', function(){ include __ROOT__.'/view.php'; });
|
$R->get('(?:'.implode('|', $views).')(?:/[\w-]+)*/?', function(){ include __ROOT__.'/view.php'; });
|
||||||
|
|
||||||
// Dispatcher
|
// Dispatcher
|
||||||
$R->get('f(?:/([\w-]+))*/?', function(){ new ResourceDispatcher($_GET['url'], true); });
|
$R->get('f(?:/([\w-]+))*/?', function(){ new ResourceDispatcher($_GET['url'], true); });
|
||||||
|
|
||||||
// Api
|
// Api
|
||||||
$R->post('api/?', function(){
|
$R->post('api/?', function(){
|
||||||
|
@ -50,17 +49,10 @@
|
||||||
|
|
||||||
// N'importe -> page d'accueil
|
// N'importe -> page d'accueil
|
||||||
$R->get('.+', function(){ header('Location: /dashboard/'); });
|
$R->get('.+', function(){ header('Location: /dashboard/'); });
|
||||||
|
|
||||||
|
|
||||||
// $R->post('.*', function(){
|
|
||||||
// var_dump( 'Acces POST : '.$_GET['url'] );
|
|
||||||
// var_dump( $_POST );
|
|
||||||
// });
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* [2] On lance le routeur
|
/* [3] On lance le routeur
|
||||||
===================================================*/
|
===================================================*/
|
||||||
$R->run();
|
$R->run();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue