Commit 6d2147d8 authored by Julien Ait azzouzene's avatar Julien Ait azzouzene
Browse files

♻️ refactor: changements mineurs pour préparer la gestion des recettes modifiées

parent 19acdb65
Loading
Loading
Loading
Loading
+51 −2
Original line number Diff line number Diff line
@@ -78,6 +78,31 @@ class IngredientManager extends Manager{
        return $ingredients;
    }

    /**
     * Renvoie tous les ingredients d'une recette modifiée.
     *
     * @param string $idRecette l'id de la recette
     * @return array
     * @see RecetteModifiee
     */
    public function getParRecetteModifiee(string $idRecette): array{
        $requete =
        "SELECT * FROM CUI_INGREDIENT
        where ING_ID in(
            select ING_ID FROM CUI_COMPOSITION_MOD
            WHERE REC_ID = '$idRecette'
        )";

        $resultat = self::projectionBdd($requete);
        $ingredients = [];

        foreach($resultat as $ligne){
            $ingredients[] = $this->ingredientFromLigne($ligne);
        }

        return $ingredients;
    }
        
    /**
     * Insère l'ingredient donné en paramètre dans la base de données.
     *
@@ -90,7 +115,7 @@ class IngredientManager extends Manager{
        values (?, NULLIF(?, ''))";

        if(! $this->requetePrepare($requete, [$ingredient->getIntitule(), $ingredient->getDescription()])){
            throw new Exception("échec de l'insertion du ingredient en base de données");
            throw new Exception("échec de l'insertion de l'ingredient en base de données");
        }
    }

@@ -100,6 +125,18 @@ class IngredientManager extends Manager{
     * @param string $idRecette l'id de la recette
     */
    public function ajouterIngredientARecette(Ingredient $ingredient, string $idRecette){
        //TODO écrire la méthode
        throw new Exception("not implemented yet");
    }

    /**
     * Ajoute un ingrédient à une recette modifiée.
     * @param Ingredient $ingredient l'ingrédient à ajouter
     * @param string $idRecette l'id de la recette
     * @see RecetteModifiee
     */
    public function ajouterIngredientARecetteModifiee(Ingredient $ingredient, string $idRecette){
        //TODO écrire la méthode
        throw new Exception("not implemented yet");
    }

@@ -109,6 +146,18 @@ class IngredientManager extends Manager{
     * @param string $idRecette l'id de la recette
     */
    public function supprimerIngredientDeRecette(Ingredient $ingredient, string $idRecette){
        //TODO écrire la méthode
        throw new Exception("not implemented yet");
    }

    /**
     * Retire un ingrédient d'une recette modifiée.
     * @param Ingredient $ingredient l'ingrédient à enlever
     * @param string $idRecette l'id de la recette
     * @see RecetteModifiee
     */
    public function supprimerIngredientDeRecetteModifiee(Ingredient $ingredient, string $idRecette){
        //TODO écrire la méthode
        throw new Exception("not implemented yet");
    }
    
@@ -123,7 +172,7 @@ class IngredientManager extends Manager{
        "delete from CUI_INGREDIENT where ING_ID = ?";

        if(! $this->requetePrepare($requete, [$ingredient->getId()])){
            throw new Exception("échec de la suppression du ingredient");
            throw new Exception("échec de la suppression de l'ingredient");
        }
    }
}
 No newline at end of file
+1 −1
Original line number Diff line number Diff line
@@ -120,7 +120,7 @@ class Recette {
     * @return bool
     */
    public function estValide(): bool{
        return $this->statut === "V";
        return $this->statut === "V" || $this->statut === "M";
    }

	/**
+15 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ declare(strict_types=1);

require_once 'src/model/manager.php';
require_once 'src/model/recette.php';
require_once 'src/model/recetteModifiee.php';
require_once 'src/model/tag.php';
require_once 'src/model/ingredient.php';
require_once 'src/model/categorieManager.php';
@@ -60,6 +61,16 @@ class RecetteManager extends Manager {
        return self::recetteFromLigne($ligne);
    }

    /**
     * Renvoie la version modifiée d'une recette si elle existe
     * @param string $id l'id de la recette
     * @return ?RecetteModifiee
     */
    public function getRecetteModifiee(string $id) : ?RecetteModifiee{
        //TODO écrire la méthode
        throw new Exception('not implemented yet');
    }

    /**
     * Renvoie toutes les recettes.
     * @return array un tableau d'objets Recette
@@ -232,6 +243,7 @@ class RecetteManager extends Manager {
     * @return void
     */
    public function majRecette(Recette $recette): void{
        //TODO écrire la méthode
        throw new Exception('not implemented yet');
    }

@@ -255,6 +267,7 @@ class RecetteManager extends Manager {
     * @return void
     */
    public function soumettreModification(Recette $recette): void{
        //TODO écrire la méthode
        throw new Exception('not implemented yet');
    }

@@ -265,6 +278,7 @@ class RecetteManager extends Manager {
     * @return void
     */
    public function validerRecette(Recette $recette): void{
        //TODO écrire la méthode
        throw new Exception('not implemented yet');
    }

@@ -273,6 +287,7 @@ class RecetteManager extends Manager {
     * @param Recette $recette la recette à valider
     */
    public function validerModification(Recette $recette): void{
        //TODO écrire la méthode
        throw new Exception('not implemented yet');
    }
}
 No newline at end of file
+40 −0
Original line number Diff line number Diff line
<?php

declare(strict_types=1);

require_once 'src/model/tag.php';
require_once 'src/model/tagManager.php';
require_once 'src/model/ingredient.php';
require_once 'src/model/ingredientManager.php';
require_once 'src/model/recette.php';

class RecetteModifiee extends Recette {
    /**
	 * Renvoie tous les tags de la recette.
	 * @return array un tableau d'objets Tag
	 * @see Tag
	 */
	public function getTags(): array{
		return (new TagManager)->getParRecetteModifiee($this->id);
	}

	public function ajouterTag(Tag $tag){
		(new TagManager)->ajouterTagARecetteModifiee($tag, $this->id);
	}

	public function supprimerTag(Tag $tag){
		(new TagManager)->supprimerTagDeRecetteModifiee($tag, $this->id);
	}

	public function getIngredients(): array{
		return (new IngredientManager)->getParRecetteModifiee($this->id);
	}

	public function ajouterIngredient(Ingredient $ingredient){
		(new IngredientManager)->ajouterIngredientARecetteModifiee($ingredient, $this->id);
	}

	public function supprimerIngredient(Ingredient $ingredient){
		(new IngredientManager)->supprimerIngredientDeRecetteModifiee($ingredient, $this->id);
	}
}
 No newline at end of file
+51 −1
Original line number Diff line number Diff line
@@ -79,9 +79,33 @@ class TagManager extends Manager{
        return $tags;
    }

    /**
     * Renvoie tous les tags d'une recette modifiée.
     *
     * @param string $idRecette id de la recette
     * @return array
     * @see RecetteModifiee
     */
    public function getParRecetteModifiee(string $idRecette): array{
        $requete =
        "SELECT * FROM CUI_TAG
        where TAG_ID in(
            select TAG_ID FROM CUI_ETIQUETTAGE_MOD
            WHERE REC_ID = '$idRecette'
        )";

        $resultat = self::projectionBdd($requete);
        $tags = [];

        foreach($resultat as $ligne){
            $tags[] = $this->tagFromLigne($ligne);
        }

        return $tags;
    }
        
    /**
     * Insert le tag donné en paramètre dans la base de données.
     * Insère le tag donné en paramètre dans la base de données.
     *
     * @param Tag $tag
     * @return void
@@ -98,10 +122,24 @@ class TagManager extends Manager{

    /**
     * Ajoute un tag à une recette.
     * Si le tag, n'est pas présent dans la base, l'insère.
     * @param Tag $tag le tag à ajouter
     * @param string $idRecette l'id de la recette
     */
    public function ajouterTagARecette(Tag $tag, string $idRecette){
        //TODO écrire la méthode
        throw new Exception("not implemented yet");
    }

    /**
     * Ajoute un tag à une recette modifiée.
     * Si le tag, n'est pas présent dans la base, l'insère.
     * @param Tag $tag le tag à ajouter
     * @param string $idRecette l'id de la recette
     * @see RecetteModifiee
     */
    public function ajouterTagARecetteModifiee(Tag $tag, string $idRecette){
        //TODO écrire la méthode
        throw new Exception("not implemented yet");
    }

@@ -111,6 +149,18 @@ class TagManager extends Manager{
     * @param string $idRecette l'id de la recette
     */
    public function supprimerTagDeRecette(Tag $tag, string $idRecette){
        //TODO écrire la méthode
        throw new Exception("not implemented yet");
    }

    /**
     * Retire un tag d'une recette modifiée.
     * @param Tag $tag le tag à enlever
     * @param string $idRecette l'id de la recette
     * @see RecetteModifiee
     */
    public function supprimerTagDeRecetteModifiee(Tag $tag, string $idRecette){
        //TODO écrire la méthode
        throw new Exception("not implemented yet");
    }