Correction et parent pour tous les repos (pour le getter dynamique)
Correction de l'héritage statique
This commit is contained in:
parent
b68a02d64f
commit
bd7eaf02a5
|
@ -64,7 +64,7 @@
|
||||||
// var_dump($response);
|
// var_dump($response);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var_dump( \manager\repo\user::getByMail('B@gmail.com') );
|
var_dump( \manager\repo\user::getByMail('B@gmail.com') );
|
||||||
|
var_dump( \manager\repo\subject::getByPseudo('jeannot') );
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace manager;
|
namespace manager;
|
||||||
|
|
||||||
|
|
||||||
// FORMAT:
|
|
||||||
//
|
// FORMAT:
|
||||||
|
//
|
||||||
// path: "nomModule/nomMethode"
|
// path: "nomModule/nomMethode"
|
||||||
// data1: {donnee1}
|
// data1: {donnee1}
|
||||||
// data2: {donnee2}
|
// data2: {donnee2}
|
||||||
// ...
|
// ...
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
|
||||||
class Repo{
|
class Repo{
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
// Modules specifies
|
// Modules specifies
|
||||||
$this->repositories = json_decode( ResourceDispatcher::getResource(self::$config_path), true );
|
$this->repositories = json_decode( ResourceDispatcher::getResource(self::$config_path), true );
|
||||||
|
|
||||||
// Gestion de l'erreur de parsage
|
// Gestion de l'erreur de parsage
|
||||||
if( $this->repositories == null ){
|
if( $this->repositories == null ){
|
||||||
$this->error = ManagerError::ParsingFailed;
|
$this->error = ManagerError::ParsingFailed;
|
||||||
|
@ -72,7 +72,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
// Type de @data (optionnel)
|
// Type de @data (optionnel)
|
||||||
$data = (is_array($data)) ? $data : array();
|
$data = (is_array($data)) ? $data : array();
|
||||||
|
|
||||||
|
|
||||||
/* [2] Verification du chemin (existence repo+methode)
|
/* [2] Verification du chemin (existence repo+methode)
|
||||||
|
@ -165,7 +165,7 @@
|
||||||
$this->error = ManagerError::UnknownMethod;
|
$this->error = ManagerError::UnknownMethod;
|
||||||
return false; // On retourne FALSE, si erreur
|
return false; // On retourne FALSE, si erreur
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* [4] Enregistrement du chemin et renvoi de SUCCESS
|
/* [4] Enregistrement du chemin et renvoi de SUCCESS
|
||||||
|
@ -194,4 +194,4 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -1,69 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace manager\repo;
|
|
||||||
use \manager\Database;
|
|
||||||
|
|
||||||
class Personnes{
|
|
||||||
|
|
||||||
/* Gestion de la table Personne et des derivations
|
|
||||||
*
|
|
||||||
* 1. Gestion des access
|
|
||||||
* - getById(id)
|
|
||||||
*
|
|
||||||
* 2. Gestion des matchs
|
|
||||||
* - getMatch(id)
|
|
||||||
* - getMatch(pseudo, nom, prenom, facebook, telephone)
|
|
||||||
*
|
|
||||||
* 3. Gestion de la fusion de 2 Personnes (car sont en fait la meme -> portage des donnees)
|
|
||||||
* - merge(idA, idB)
|
|
||||||
*
|
|
||||||
* 4. Gestion de creation
|
|
||||||
* - create(pseudo, nom, prenom, facebook, telephone)
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/* RENVOIE LES DONNEES D'UN UTILISATEUR D'UID DONNE
|
|
||||||
*
|
|
||||||
* @id_personne<int> UID de la personne en question
|
|
||||||
*
|
|
||||||
* @return personne<Array> Tableau associatif contenant les informations utiles de la personne
|
|
||||||
* @return FALSE<boolean> Si une erreur occure ou qu'aucune personne n'est trouvee, retourne FALSE
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function getById($id_personne=null){
|
|
||||||
/* [0] Verification des INPUT
|
|
||||||
=========================================================*/
|
|
||||||
if( !Database::check('id', $id_personne) ) return false;
|
|
||||||
|
|
||||||
/* [1] On prepare et execute la requete
|
|
||||||
=========================================================*/
|
|
||||||
$request = Database::getPDO()->prepare("SELECT idPersonne as id, pseudo, nom, prenom, id_facebook, telephone
|
|
||||||
FROM Personnes
|
|
||||||
WHERE idPersonne = :uid");
|
|
||||||
$request->execute(array(
|
|
||||||
':uid' => $id_personne
|
|
||||||
));
|
|
||||||
|
|
||||||
|
|
||||||
/* [2] On recupere le resultat
|
|
||||||
=========================================================*/
|
|
||||||
// si aucun resultat, on retourne FALSE
|
|
||||||
if( ($personne=$request->fetch()) === false ) return false;
|
|
||||||
|
|
||||||
|
|
||||||
/* [3] On retourne les donnees
|
|
||||||
=========================================================*/
|
|
||||||
return Database::delNumeric( $personne, true );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
?>
|
|
|
@ -1,337 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace manager\repo;
|
|
||||||
use \manager\Database;
|
|
||||||
use \manager\repo\cluster as clusterRepo;
|
|
||||||
|
|
||||||
class machine{
|
|
||||||
|
|
||||||
/* CREATION D'UNE MACHINE
|
|
||||||
*
|
|
||||||
* @code<String> Code de la machine
|
|
||||||
* @name<String> Nom de la machine
|
|
||||||
*
|
|
||||||
* @return id_machine<int> Renvoie l'UID de la machine cree
|
|
||||||
* Renvoie FALSE si une erreur occure
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function create($code, $name){
|
|
||||||
/* [1] Verification de l'unicite de code+name
|
|
||||||
=========================================================*/
|
|
||||||
$check_unique = ( self::getByCode($code) === false );
|
|
||||||
$check_unique = $check_unique && ( self::getByName($name) === false );
|
|
||||||
|
|
||||||
// Si une machine a deja ce code/nom, on renvoie une erreur
|
|
||||||
if( !$check_unique )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
|
|
||||||
/* [2] Creation de la machine
|
|
||||||
=========================================================*/
|
|
||||||
$insert_machine = Database::getPDO()->prepare("INSERT INTO machine(id_machine, code, name)
|
|
||||||
VALUES(DEFAULT, :code, :name)");
|
|
||||||
$insert_machine->execute(array(
|
|
||||||
':code' => $code,
|
|
||||||
':name' => $name
|
|
||||||
));
|
|
||||||
|
|
||||||
/* [3] On retourne l'id_machine ou FALSE si erreur
|
|
||||||
=========================================================*/
|
|
||||||
$check_machine = self::getByCode($code);
|
|
||||||
|
|
||||||
// Si n'existe pas on retourne FALSE
|
|
||||||
if( $check_machine === false )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// Sinon, on retourne son id
|
|
||||||
return $check_machine['id_machine'];
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* RENVOIE UNE LISTE DE MACHINE EN FONCTION D'UN MOT CLE
|
|
||||||
*
|
|
||||||
* @keyword<String> Element de recherche
|
|
||||||
*
|
|
||||||
* @return machines<Array> Retourne les machines trouvees
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function search($keyword){
|
|
||||||
// On recupere les donnees
|
|
||||||
$searchmachines = Database::getPDO()->query("SELECT * FROM machine
|
|
||||||
WHERE code LIKE '%".$keyword."%'
|
|
||||||
OR name LIKE '%".$keyword."%'
|
|
||||||
");
|
|
||||||
|
|
||||||
return Database::delNumeric( $searchmachines->fetchAll() );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* RENVOIE LA LISTE DE TOUTES LES MACHINES
|
|
||||||
*
|
|
||||||
* @return machine<Array> Liste des machines de la BDD
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function getAll(){
|
|
||||||
// On ecrit la requete
|
|
||||||
$request = Database::getPDO()->query("SELECT * FROM machine ORDER BY name");
|
|
||||||
|
|
||||||
// On recupere le resultat
|
|
||||||
$answer = $request->fetchAll();
|
|
||||||
|
|
||||||
// On retourne en supprimant les indices numeriques
|
|
||||||
return Database::delNumeric( $answer );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* RENVOIE LA MACHINE D'ID DONNE
|
|
||||||
*
|
|
||||||
* @id<int> Id de la machine en question
|
|
||||||
*
|
|
||||||
* @return machine<Array> Renvoie la machine d'id donne si existe
|
|
||||||
* @return error<Boolean> Retourne FALSE si aucun resultat
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function getById($id){
|
|
||||||
// On ecrit la requete
|
|
||||||
$request = Database::getPDO()->prepare("SELECT * FROM machine
|
|
||||||
WHERE id_machine = :id");
|
|
||||||
|
|
||||||
// On execute la requete
|
|
||||||
$request->execute(array(
|
|
||||||
':id' => $id
|
|
||||||
));
|
|
||||||
|
|
||||||
// On recupere 1 seule machine
|
|
||||||
$answer = $request->fetch();
|
|
||||||
|
|
||||||
// Gestion d'erreur -> aucun resultat
|
|
||||||
if( $answer === false )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// On retourne en supprimant les indices numeriques
|
|
||||||
return Database::delNumeric( $answer, true );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* RENVOIE LA MACHINE DE CODE DONNE
|
|
||||||
*
|
|
||||||
* @code<String> Code de la machine en question
|
|
||||||
*
|
|
||||||
* @return machine<Array> Renvoie la machine de code donne si existe
|
|
||||||
* @return error<Boolean> Retourne FALSE si aucun resultat
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function getByCode($code){
|
|
||||||
// On ecrit la requete
|
|
||||||
$request = Database::getPDO()->prepare("SELECT * FROM machine
|
|
||||||
WHERE code = :code");
|
|
||||||
|
|
||||||
|
|
||||||
// On execute la requete
|
|
||||||
$request->execute(array(
|
|
||||||
':code' => $code
|
|
||||||
));
|
|
||||||
|
|
||||||
// On recupere 1 seule machine
|
|
||||||
$answer = $request->fetch();
|
|
||||||
|
|
||||||
// Gestion d'erreur -> aucun resultat
|
|
||||||
if( $answer === false )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// On retourne en supprimant les indices numeriques
|
|
||||||
return Database::delNumeric( $answer, true );
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* RENVOIE LA MACHINE DE NOM DONNE
|
|
||||||
*
|
|
||||||
* @name<String> Nom de la machine en question
|
|
||||||
*
|
|
||||||
* @return machine<Array> Renvoie la machine de nom donne si existe
|
|
||||||
* @return error<Boolean> Retourne FALSE si aucun resultat
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function getByName($name){
|
|
||||||
// On ecrit la requete
|
|
||||||
$request = Database::getPDO()->prepare("SELECT * FROM machine
|
|
||||||
WHERE name = :name");
|
|
||||||
|
|
||||||
|
|
||||||
// On execute la requete
|
|
||||||
$request->execute(array(
|
|
||||||
':name' => $name
|
|
||||||
));
|
|
||||||
|
|
||||||
// On recupere 1 seule machine
|
|
||||||
$answer = $request->fetch();
|
|
||||||
|
|
||||||
// Gestion d'erreur -> aucun resultat
|
|
||||||
if( $answer === false )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// On retourne en supprimant les indices numeriques
|
|
||||||
return Database::delNumeric( $answer, true );
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* RENVOIE LES GROUPES AUQUEL APPARTIENT UNE MACHINE DONNEE
|
|
||||||
*
|
|
||||||
* @id_machine<int> UID de la machine en question
|
|
||||||
*
|
|
||||||
* @return clusters<Array> Retourne la liste des groupes auquel appartient la machine
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function getClusters($id_machine){
|
|
||||||
/* [1] On redige/execute la requete
|
|
||||||
=========================================================*/
|
|
||||||
$get_clusters = Database::getPDO()->prepare("SELECT c.* FROM cluster as c, cluster_merge as cm
|
|
||||||
WHERE cm.id_cluster = c.id_cluster
|
|
||||||
AND cm.id_entity = :id_machine
|
|
||||||
AND cm.class = :class
|
|
||||||
ORDER BY c.id_cluster");
|
|
||||||
$get_clusters->execute(array(
|
|
||||||
':id_machine' => $id_machine,
|
|
||||||
':class' => clusterRepo::MACHINE_CLASS
|
|
||||||
));
|
|
||||||
|
|
||||||
/* [2] On retourne la liste des groupes
|
|
||||||
=========================================================*/
|
|
||||||
return Database::delNumeric( $get_clusters->fetchAll() );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* MODIFICATION D'UNE MACHINE DONNEE
|
|
||||||
*
|
|
||||||
* @id_machine<int> UID de la machine
|
|
||||||
* @code<String> Code RFID de la machine
|
|
||||||
* @name<String> Identifiant l'utilisateur
|
|
||||||
*
|
|
||||||
* @return status<Boolean> Renvoie si oui ou non tout s'est bien passe
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function edit($id_machine=null, $code=null, $name=null){
|
|
||||||
/* [1] Verification de l'unicite de code+name (si differents)
|
|
||||||
=========================================================*/
|
|
||||||
// On recupere les machine ayant le meme code ou name (si existent)
|
|
||||||
$getbycode = self::getByCode($code);
|
|
||||||
$getbyname = self::getByName($name);
|
|
||||||
|
|
||||||
$check_unique = is_array($getbycode) && $getbycode['id_machine'] == $id_machine || !is_array($getbycode);
|
|
||||||
$check_unique = $check_unique && is_array($getbyname) && $getbyname['id_machine'] == $id_machine || !is_array($getbyname);
|
|
||||||
|
|
||||||
// Si un utilisateur a deja ce code ou ce name (sauf lui), on renvoie une erreur
|
|
||||||
if( !$check_unique )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
/* [2] Modification de la machine
|
|
||||||
=========================================================*/
|
|
||||||
$edit_machine = Database::getPDO()->prepare("UPDATE machine
|
|
||||||
SET code = :code,
|
|
||||||
name = :name
|
|
||||||
WHERE id_machine = :id_machine");
|
|
||||||
$edit_machine->execute(array(
|
|
||||||
':code' => $code,
|
|
||||||
':name' => $name,
|
|
||||||
':id_machine' => $id_machine
|
|
||||||
));
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* [3] On retourne si tout a ete modifie, si erreur
|
|
||||||
=========================================================*/
|
|
||||||
$check_machine = self::getById($id_machine);
|
|
||||||
|
|
||||||
$checker = $check_machine['id_machine'] == $id_machine;
|
|
||||||
$checker = $checker && $check_machine['code'] == $code;
|
|
||||||
$checker = $checker && $check_machine['name'] == $name;
|
|
||||||
|
|
||||||
// On retourne l'etat de la modification
|
|
||||||
return $checker;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* SUPPRIME UNE MACHINE DONNE
|
|
||||||
*
|
|
||||||
* @id_machine<int> UID de la machine en question
|
|
||||||
*
|
|
||||||
* @return status<Boolean> Retourne si oui ou non la machine a bien ete supprime
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function delete($id_machine){
|
|
||||||
/* [1] On redige/execute la requete
|
|
||||||
=========================================================*/
|
|
||||||
$delete_machine = Database::getPDO()->prepare("DELETE FROM machine WHERE id_machine = :id_machine");
|
|
||||||
$delete_machine->execute(array(
|
|
||||||
':id_machine' => $id_machine
|
|
||||||
));
|
|
||||||
|
|
||||||
|
|
||||||
/* [2] On verifie que la machine n'existe plus
|
|
||||||
=========================================================*/
|
|
||||||
return ( self::getById($id_machine) === false );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
?>
|
|
|
@ -0,0 +1,76 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace manager\repo;
|
||||||
|
use \manager\Database;
|
||||||
|
|
||||||
|
class parentRepo{
|
||||||
|
|
||||||
|
// mise à jour du nom de la table (pour les enfants)
|
||||||
|
protected static function table_name(){ static $table_name = null; return $table_name; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* GESTION DES GETTERS dynamiques
|
||||||
|
*
|
||||||
|
* @method<String> Nom du getter du type 'getAll' ou 'getX' avec 'X' une colonne de la table en question
|
||||||
|
* @args<Array> Liste des arguments, $args[0] est la valeur du getter (sauf pour 'getAll')
|
||||||
|
*
|
||||||
|
* @return lines<Array> Retourne le résultat du fetchAll()
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function __callStatic($method, $args){
|
||||||
|
// Si static::table_name() NULL
|
||||||
|
if( is_null(static::table_name()) ) return false;
|
||||||
|
|
||||||
|
/* [0] On charge la liste des colonnes de la table
|
||||||
|
=========================================================*/
|
||||||
|
$getColumns = Database::getPDO()->query('SHOW COLUMNS FROM '.static::table_name());
|
||||||
|
$cols = $getColumns->fetchAll();
|
||||||
|
|
||||||
|
$table_columns = array();
|
||||||
|
|
||||||
|
// On ajoute la liste des colonnes
|
||||||
|
foreach($cols as $column)
|
||||||
|
array_push($table_columns, $column['Field']);
|
||||||
|
|
||||||
|
|
||||||
|
/* [1] On vérifie que la méthode est 'getX', avec X une chaine
|
||||||
|
=========================================================*/
|
||||||
|
// Si c'est pas le bon format, on retourne une erreur
|
||||||
|
if( !preg_match('/^getBy(\w+)$/', $method, $matches) ) return false;
|
||||||
|
|
||||||
|
/* [2] On vérifie que la valeur après 'get' est dans $table_columns
|
||||||
|
=========================================================*/
|
||||||
|
$columnName = strtolower($matches[1]);
|
||||||
|
|
||||||
|
$getAll = $columnName == 'all'; // Si 'getAll'
|
||||||
|
$getSomething = count($args) > 0 && in_array($columnName, $table_columns); // Si 'getX', et 'X' dans la liste des colonnes
|
||||||
|
|
||||||
|
// Si ni 'getAll' ni 'getSomething' -> erreur
|
||||||
|
if( !$getAll && !$getSomething ) return false;
|
||||||
|
|
||||||
|
/* [3] On rédige la requête
|
||||||
|
=========================================================*/
|
||||||
|
$getRequestString = 'SELECT * FROM '.static::table_name();
|
||||||
|
// Si c'est 'getSomething', on ajoute une condition
|
||||||
|
if( $getSomething ) $getRequestString .= ' WHERE '.$columnName.' = :value';
|
||||||
|
|
||||||
|
$getRequest = Database::getPDO()->prepare($getRequestString);
|
||||||
|
|
||||||
|
/* [4] On exécute la requête
|
||||||
|
=========================================================*/
|
||||||
|
// Si 'getSomething', on ajoute le champ
|
||||||
|
$getRequest->execute(array(
|
||||||
|
':value' => $getSomething ? $args[0] : null
|
||||||
|
));
|
||||||
|
|
||||||
|
/* [5] On récupère le résultat
|
||||||
|
=========================================================*/
|
||||||
|
return Database::delNumeric( $getRequest->fetchAll() );
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
?>
|
|
@ -4,7 +4,9 @@
|
||||||
use \manager\Database;
|
use \manager\Database;
|
||||||
use \manager\sessionManager;
|
use \manager\sessionManager;
|
||||||
|
|
||||||
class subject{
|
class subject extends parentRepo{
|
||||||
|
|
||||||
|
protected static function table_name(){ static $table_name = 'Personnes'; return $table_name; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,8 +4,10 @@
|
||||||
use \manager\sessionManager;
|
use \manager\sessionManager;
|
||||||
use \manager\Database;
|
use \manager\Database;
|
||||||
|
|
||||||
class token{
|
class token extends parentRepo{
|
||||||
|
|
||||||
|
protected static $table_name = 'api_token';
|
||||||
|
|
||||||
/* Gestion de la table Token (pour secu) et des derivations
|
/* Gestion de la table Token (pour secu) et des derivations
|
||||||
*
|
*
|
||||||
* 1. Gestion des access
|
* 1. Gestion des access
|
||||||
|
@ -37,7 +39,7 @@
|
||||||
FROM api_token
|
FROM api_token
|
||||||
ORDER BY expires DESC");
|
ORDER BY expires DESC");
|
||||||
|
|
||||||
|
|
||||||
/* [3] On retourne les donnees
|
/* [3] On retourne les donnees
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
return Database::delNumeric( $request->fetchAll() );
|
return Database::delNumeric( $request->fetchAll() );
|
||||||
|
@ -121,7 +123,7 @@
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
if( !Database::check('varchar(3, 50)', $name) || !Database::check('id', $duration) ) return false;
|
if( !Database::check('varchar(3, 50)', $name) || !Database::check('id', $duration) ) return false;
|
||||||
|
|
||||||
|
|
||||||
// On definit la date d'expiration du token
|
// On definit la date d'expiration du token
|
||||||
$expiration = date('Y-m-d', time()+$duration*3600*24);
|
$expiration = date('Y-m-d', time()+$duration*3600*24);
|
||||||
|
|
||||||
|
@ -209,4 +211,4 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -3,61 +3,12 @@
|
||||||
namespace manager\repo;
|
namespace manager\repo;
|
||||||
use \manager\Database;
|
use \manager\Database;
|
||||||
use \manager\sessionManager;
|
use \manager\sessionManager;
|
||||||
|
use \manager\repo\parentRepo;
|
||||||
|
|
||||||
class user{
|
class user extends parentRepo{
|
||||||
|
|
||||||
private static $table_name = 'users';
|
protected static function table_name(){ static $table_name = 'users'; return $table_name; }
|
||||||
private static $columns = null;
|
|
||||||
|
|
||||||
// Getters dynamiques
|
|
||||||
public static function __callStatic($method, $args){
|
|
||||||
/* [0] Si les colonnes valides ne sont pas chargées, on les charges
|
|
||||||
=========================================================*/
|
|
||||||
if( is_null(self::$columns) ){
|
|
||||||
$getColumns = Database::getPDO()->query('SHOW COLUMNS FROM '.self::$table_name);
|
|
||||||
$cols = $getColumns->fetchAll();
|
|
||||||
|
|
||||||
self::$columns = array();
|
|
||||||
|
|
||||||
// On ajoute la liste des colonnes
|
|
||||||
foreach($cols as $column)
|
|
||||||
array_push(self::$columns, $column['Field']);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* [1] On vérifie que la méthode est 'getX', avec X une chaine
|
|
||||||
=========================================================*/
|
|
||||||
// Si c'est pas le bon format, on retourne une erreur
|
|
||||||
if( !preg_match('/^getBy(\w+)$/', $method, $matches) ) return false;
|
|
||||||
|
|
||||||
/* [2] On vérifie que la valeur après 'get' est dans self::$columns
|
|
||||||
=========================================================*/
|
|
||||||
$columnName = strtolower($matches[1]);
|
|
||||||
|
|
||||||
$getAll = $columnName == 'all'; // Si 'getAll'
|
|
||||||
$getSomething = count($args) > 0 && in_array($columnName, self::$columns); // Si 'getX', et 'X' dans la liste des colonnes
|
|
||||||
|
|
||||||
// Si ni 'getAll' ni 'getSomething' -> erreur
|
|
||||||
if( !$getAll && !$getSomething ) return false;
|
|
||||||
|
|
||||||
/* [3] On rédige la requête
|
|
||||||
=========================================================*/
|
|
||||||
$getRequestString = 'SELECT * FROM '.self::$table_name;
|
|
||||||
// Si c'est 'getSomething', on ajoute une condition
|
|
||||||
if( $getSomething ) $getRequestString .= ' WHERE '.$columnName.' = :value';
|
|
||||||
|
|
||||||
$getRequest = Database::getPDO()->prepare($getRequestString);
|
|
||||||
|
|
||||||
/* [4] On exécute la requête
|
|
||||||
=========================================================*/
|
|
||||||
// Si 'getSomething', on ajoute le champ
|
|
||||||
$getRequest->execute(array(
|
|
||||||
':value' => $getSomething ? $args[0] : null
|
|
||||||
));
|
|
||||||
|
|
||||||
/* [5] On récupère le résultat
|
|
||||||
=========================================================*/
|
|
||||||
return Database::delNumeric( $getRequest->fetchAll() );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* VERIFICATION DU LOGIN/PASSWORD D'UN UTILISATEUR
|
/* VERIFICATION DU LOGIN/PASSWORD D'UN UTILISATEUR
|
||||||
|
|
Loading…
Reference in New Issue