[OPT] UID de l'administrateur * * @return data Administrateurs correspondants * ---------------------------------------------------------*/ public static function get($args){ $id_admin = 0; extract($args); /* (1) If @id_admin is set -> get by id ---------------------------------------------------------*/ if( is_numeric($id_admin) ){ /* (1) Search admin by id */ $fetch_admin = Repo::request('admin', 'getById', $id_admin); /* (2) If not found -> return empty data */ if( !$fetch_admin ) return [ 'data' => [] ]; /* (3) Return fetched admin */ return [ 'data' => [$fetch_admin] ]; /* (2) Else -> get all ---------------------------------------------------------*/ }else return [ 'data' => Repo::request('admin', 'getAll') ]; } /* (2) Creates a new administrator * * @username Identifiant de l'administrateur * @mail Adresse mail de l'administrateur * @password Mot de passe de l'administrateur * * @return admin Données de l'administrateur crée * ---------------------------------------------------------*/ public static function post($args){ $username = ""; $mail = ""; $password = ""; extract($args); /* (1) Création admin */ $id_created = Repo::request('admin', 'create', $username, $mail, $password); /* (2) Gestion erreur */ if( $id_created === false ) return [ 'error' => new Error(Err::RepoError) ]; /* (3) Renvoi @id_admin */ return [ 'id_admin' => Repo::request('admin', 'getById', $id_created) ]; } /* (3) Updates an existing administrator * * @id_admin UID de l'administrateur * @mail [OPT] Adresse mail de l'administrateur * @password [OPT] Mot de passe de l'administrateur * * @return admin The new administrator data * ---------------------------------------------------------*/ public static function put($args){ //helps the static analysis $mail = null; $password = null; $id_admin = 0; extract($args); /* (1) If @mail given ---------------------------------------------------------*/ if( !is_null($mail) ){ /* (1) Update mail address */ $updated = Repo::request('admin', 'setMail', $id_admin, $mail); /* (2) Gestion erreur */ if( $updated === false ) return [ 'error' => new Error(Err::RepoError) ]; } /* (2) If @password given ---------------------------------------------------------*/ if( !is_null($password) ){ /* (1) Update password */ $updated = Repo::request('admin', 'setPassword', $id_admin, $password); /* (2) Gestion erreur */ if( $updated === false ) return [ 'error' => new Error(Err::RepoError) ]; } /* (3) Renvoi @id_admin */ return [ 'id_admin' => Repo::request('admin', 'getById', $id_admin) ]; } /* (4) Deletes an existing administrator * * @id_admin UID de l'administrateur * * @return removed Whether the admin has been removed * ---------------------------------------------------------*/ public static function delete($args){ $id_admin = 0; extract($args); /* (1) Dispatch du status */ return [ 'removed' => Repo::request('admin', 'delete', $id_admin) ]; } }