NxTIC/manager/repo/relation.php

81 lines
2.1 KiB
PHP

<?php
namespace manager\repo;
use \manager\Database;
use \manager\sessionManager;
class relation extends parentRepo{
protected static function table_name(){ static $table_name = 'relations'; return $table_name; }
/* CREATION D'UNE RELATION ENTRE @A ET @B DE TYPE @category
*
* @A<int> UID du sujet A
* @B<int> UID du sujet B
* @category<int> UID de la categorie en question
*
* @return status<Boolean> On retourne TRUE si tout s'est bien passé, sinon FALSE si erreur
*
*/
public static function create($A, $B, $category){
/* [0] Vérification des INPUT
=========================================================*/
$checkInput = Database::check('id', $A);
$checkInput = $checkInput && Database::check('id', $B);
$checkInput = $checkInput && Database::check('id', $category);
// Si erreur de type de paramètre, on retourne FALSE
if( !$checkInput )
return false;
/* [1] On vérifie que la relation n'existe pas déja
=========================================================*/
$exists = self::getById($A, $B, $category);
// Si la relation existe, on retourne TRUE
if( is_array($exists) && count($exists) > 0 )
return true;
/* [2] Création de la relation
=========================================================*/
$create_relation = Database::getPDO()->prepare("INSERT INTO relations(idPersonneA, idPersonneB, idCategorie)
VALUES(:A, :B, :category)");
$create_rel_status = $create_relation->execute( array(
':A' => $A,
':B' => $B,
':category' => $category
));
// Si erreur de requête -> FALSE
if( $create_rel_status === false )
return false;
/* [3] On vérifie que la relation est crée
=========================================================*/
$get_relation = self::getById($A, $B, $category);
// Si la relation n'existe pas, on renvoie une erreur
if( !is_array($get_relation) || is_array($get_relation) && count($get_relation) == 0 )
return false;
// Si tout s'est bien passé, on retourne TRUE
return true;
}
public static function remove(){
}
}
?>