UID de l'utilisateur * @id_machine UID la machine * @id_action UID de l'action * @timestamp timestamp de l'action * * @return status Retourne si oui ou non, tout s'est bien passe * */ public function create($params){ extract($params); /* [1] Creation de l'utilisateur =========================================================*/ $create_entry = new Repo('history/create', [ $id_user, $id_machine, $id_action, $timestamp ]); $id_entry = $create_entry->answer(); // Si une erreur est retournee, on retourne une erreur if( $id_entry === false ) return ['error' => new Error(Err::ModuleError)]; /* [2] Gestion du retour =========================================================*/ return [ 'id_history' => $id_entry ]; } /* RENVOIE UN UTILISATEUR EN FONCTION D'UN MOT CLE * * @keywords Element de recherche * * @return users Retourne la liste des utilisateurs trouves * */ public function search($params){ extract($params); // On recupere les donnees $user = new Repo('history/search', [ $_SESSION['WAREHOUSE']['id'], $keywords ]); return [ 'history' => $user->answer() ]; } /* RENVOIE LA LISTE EXHAUSTIVE DES ACCES * * @return history Liste des entrées de l'historique * */ public function getAll(){ // On recupere les donnees $entries = new Repo('history/getAll', [ $_SESSION['WAREHOUSE']['id'] ]); return [ 'history' => $entries->answer() ]; } /* SUPPRIME UNE ENTREE * * @id_history UID de l'entree en question * * @return status Retourne si oui ou non tout s'est bien deroule * */ public function delete($params){ extract($params); /* [1] On supprime l'utilisateur =========================================================*/ $del_entry = new Repo('history/delete', [ $_SESSION['WAREHOUSE']['id'], $id_history ]); $deleted_entry = $del_entry->answer(); return [ 'status' => $deleted_entry ]; } /* ARCHIVE L'HISTORIQUE D'UN ENTREPOT * * @return archive Fichier de l'archive (.csv format) * */ public function archive($params){ extract($params); /* [1] Récupération des logs =========================================================*/ /* (1) Requête */ $logs = new Repo('history/getAll', [$_SESSION['WAREHOUSE']['id']]); /* (2) Gestion erreur */ if( $logs->error->get() != Err::Success ) return [ 'error' => $logs->error ]; /* [2] Création du contenu fichier =========================================================*/ $BODY = "TIMESTAMP,MACHINE,UTILISATEUR,ACTION\n"; foreach($logs->answer() as $log) $BODY .= $log['timestamp'].','.$log['machine_name'].','.$log['user_name'].','.$log['action_name']."\n"; /* [3] Renvoi du fichier =========================================================*/ return [ 'headers' => [ 'Content-Type' => 'text/csv', 'Content-Disposition' => 'attachment; filename=archive-'.date('dmY').'.csv' ], 'body' => $BODY ]; } /* (x) Return the machine history for an history entry * * @id_entry UID of the history entry * * @return timeline Machine timeline data * ---------------------------------------------------------*/ public function get_timeline($params){ extract($params); /* (1) Get history entry data ---------------------------------------------------------*/ /* (1) Request */ $entry = new Repo('history/getById', [$id_entry]); /* (2) Get response */ $entry = $entry->answer(); /* (3) Manage error */ if( !is_array($entry) ) return ['error' => new Error(Err::RepoError)]; /* (2) Get history for machine ---------------------------------------------------------*/ /* (1) Request */ $timeline = new Repo('history/getByIdMachine', [ $_SESSION['WAREHOUSE']['id'], $entry['id_machine'] ]); /* (2) Get response */ $timeline = $timeline->answer(); /* (3) Manage error */ if( $timeline === false ) return ['error' => new Error(Err::RepoError)]; /* (3) Return data ---------------------------------------------------------*/ return [ 'timeline' => $timeline ]; } /* (x) Return the entry data for an history id * * @id_entry UID of the history entry * * @return data Entry data * ---------------------------------------------------------*/ public function getById($params){ extract($params); /* (1) Get history entry data ---------------------------------------------------------*/ /* (1) Request */ $entry = new Repo('history/getById', [$id_entry]); /* (2) Get response */ $entry = $entry->answer(); /* (3) Manage error */ if( !is_array($entry) ) return ['error' => new Error(Err::RepoError)]; /* (2) Return data ---------------------------------------------------------*/ return [ 'entry' => $entry ]; } } ?>