diff --git a/manager/module/input.php b/manager/module/input.php index a9589a4..39ce6e5 100644 --- a/manager/module/input.php +++ b/manager/module/input.php @@ -108,15 +108,39 @@ /* (2) Relation de type _SMS_ */ if( in_array('SMS', $relations) ){ - $call_rel_request = new Repo('subject/link', array( $subject_id, $closest_id[$contact], '_SMS_' )); + $sms_rel_request = new Repo('subject/link', array( $subject_id, $closest_id[$contact], '_SMS_' )); - $call_rel_response = $call_rel_request->answer(); + $sms_rel_response = $sms_rel_request->answer(); // Si erreur de création de relation - if( $call_rel_response === false ) + if( $sms_rel_response === false ) return array( 'ModuleError' => ManagerError::ModuleError ); } + + } + + + /* [5] Ajout des relations de la matrice + =========================================================*/ + // Pour chacun des top 10*2 plus proches + foreach($closest as $A=>$rels){ + + // Pour chaque relation avec le contact actuel (s'il y en a) + if( isset($matrice[$A]) && is_array($matrice[$A]) ){ + foreach($matrice[$A] as $B){ + $relation_request = new Repo('subject/link', array( $A, $B, null )); + + $relation_response = $relation_request->answer(); + + // Si erreur de création de relation + return array( 'ModuleError' => $relation_response ); + if( $relation_response === false ) + return array( 'ModuleError' => ManagerError::ModuleError ); + + } + } + } diff --git a/manager/repo/subject.php b/manager/repo/subject.php index a2f69c1..4b67936 100644 --- a/manager/repo/subject.php +++ b/manager/repo/subject.php @@ -192,20 +192,22 @@ =========================================================*/ $checkInput = Database::check('id', $A); $checkInput = $checkInput && Database::check('id', $B); - $checkInput = $checkInput && Database::check('varchar(3,40)', $category); + $checkInput = $checkInput && ( Database::check('varchar(0,40)', $category) || is_null($category) ); // Si erreur de type de paramètre, on retourne FALSE if( !$checkInput ) return false; + $nullCat = is_null($category); /* [1] On vérifie l'existence de la catégorie =========================================================*/ $category_exists_req = Database::getPDO()->prepare("SELECT idCategorie as id FROM categories - WHERE intitule = :category - "); - $cat_ex_status = $category_exists_req->execute( array( ':category' => $category ) ); + WHERE intitule ". + ( $nullCat ? "is NULL" : "= :category" ) + ); + $cat_ex_status = $category_exists_req->execute( ($nullCat) ? null : array( ':category' => $category ) ); // Si erreur de requête -> FALSE if( $cat_ex_status === false ) @@ -220,8 +222,10 @@ if( $category_id === null ){ $create_category_req = Database::getPDO()->prepare("INSERT INTO categories(idCategorie, intitule) - VALUES(DEFAULT, :category)"); - $create_cat_status = $create_category_req->execute( array( ':category' => $category ) ); + VALUES(DEFAULT, ". + ( $nullCat ? "NULL" : ":category" ) + .")"); + $create_cat_status = $create_category_req->execute( ($nullCat) ? null : array( ':category' => $category ) ); // Si erreur de requête -> FALSE if( $create_cat_status === false ) @@ -230,8 +234,10 @@ // On récupère l'id de la catégorie $get_category_id = Database::getPDO()->prepare("SELECT idCategorie as id FROM categories - WHERE intitule = :category"); - $get_cat_status = $get_category_id->execute( array( ':category' => $category ) ); + WHERE intitule ". + ( $nullCat ? "is NULL" : "= :category" ) + ); + $get_cat_status = $get_category_id->execute( ($nullCat) ? null : array( ':category' => $category ) ); // Si erreur de requête -> FALSE if( $get_cat_status === false ) @@ -257,6 +263,8 @@ ':category' => $category_id )); + return $B; + // Si erreur de requête -> FALSE if( $create_rel_status === false ) return false; @@ -285,7 +293,6 @@ if( $check_relation->fetch() === false ) return false; - // Si tout s'est bien passé, on retourne TRUE return true; }