diff --git a/Controllers/RecipeController.php b/Controllers/RecipeController.php
index 0627c81..788b025 100644
--- a/Controllers/RecipeController.php
+++ b/Controllers/RecipeController.php
@@ -40,7 +40,7 @@ final class RecipeController
throw new HTTPSpecialCaseException(400, "You are not the owner of this recipe");
}
}
- //TODO MAKE THE VIEW USE THE NEW DATA FORMAT
+
View::show("recipe/edit", array("POST_URI" => "/recipe/update", "RECIPE" => $O_recipe));
}
@@ -48,25 +48,49 @@ final class RecipeController
{
Session::login_or_die();
- View::show("recipe/edit", array("POST_URI" => "/recipe/create", "RECIPE" => array()));
+ View::show("recipe/edit", array("POST_URI" => "/recipe/create", "RECIPE" => null));
+ }
+
+ private static function fillRecipeFromPostParams($O_recipe, Array $A_postParams)
+ {
+ $O_difficulty = DifficultyModel::getByName(Utils::getOrDie($A_postParams, "recipeDifficulty"));
+ if($O_difficulty === null){
+ throw new HTTPSpecialCaseException(400, "Invalid difficulty");
+ }
+
+ $O_recipe->S_NAME = Utils::getOrDie($A_postParams, "recipeName");
+ $O_recipe->I_TIME = Utils::intOrDie(Utils::getOrDie($A_postParams, "recipeTime"));
+ $O_recipe->S_DESCR = Utils::getOrDie($A_postParams, "recipeDescription");
+ $O_recipe->S_RECIPE = null; // TODO
+ $O_recipe->I_DIFFICULTY_ID = $O_difficulty->I_ID;
+ $O_recipe->I_AUTHOR_ID = $_SESSION["ID"];
}
public function createAction(Array $A_urlParams = null, Array $A_postParams = null)
{
Session::login_or_die();
- $O_difficulty = DifficultyModel::getByName(Utils::getOrDie($A_postParams, "recipeDifficulty"));
- if($O_difficulty === null){
- throw new HTTPSpecialCaseException(400, "Invalid difficulty");
+ $O_recipe = RecipeModel::createEmpty();
+ self::fillRecipeFromPostParams($O_recipe, $A_postParams);
+ $O_recipe->insert();
+
+ header("Location: /recipe/view/".$O_recipe->I_ID);
+ }
+
+ public function updateAction(Array $A_urlParams = null, Array $A_postParams = null)
+ {
+ Session::login_or_die();
+
+ $O_recipe = RecipeModel::getByID(Utils::getOrDie($A_postParams, "recipeID"));
+
+ if ($O_recipe->I_AUTHOR_ID !== $_SESSION["ID"]) {
+ if(!Session::is_admin()){
+ throw new HTTPSpecialCaseException(400, "You are not the owner of this recipe");
+ }
}
- $O_recipe = new RecipeModel(
- Utils::getOrDie($A_postParams, "recipeName"),
- Utils::getOrDie($A_postParams, "recipeTime"),
- Utils::getOrDie($A_postParams, "recipeDescription"),
- null, $O_difficulty->I_ID, $_SESSION["ID"]
- );
- $O_recipe->insert();
+ self::fillRecipeFromPostParams($O_recipe, $A_postParams);
+ $O_recipe->update();
header("Location: /recipe/view/".$O_recipe->I_ID);
}
diff --git a/Views/recipe/edit.php b/Views/recipe/edit.php
index db3bcb4..f9a3833 100644
--- a/Views/recipe/edit.php
+++ b/Views/recipe/edit.php
@@ -1,15 +1,22 @@
S_NAME;
+ $I_time = $O_recipe->I_TIME;
+ $S_descr = $O_recipe->S_DESCR;
+ $S_recipe = $O_recipe->S_RECIPE;
+ $S_difficultyName = $O_recipe->getDifficulty()->S_NAME;
+ $A_parts = array(); // TODO
+ $A_ingredients = $O_recipe->getIngredients();
}
?>
@@ -21,36 +28,36 @@ function getOrEmpty($A_Dict, $S_keyName) {
- " required>
+
-
+
Informations alimentaires
- >
+ >
- >
+ >
- >
+ >
- " required>
+