From 162c0979bfb456b19736d24a3bd9328386dcbe24 Mon Sep 17 00:00:00 2001
From: antoine <antoine.gaienier.etu@univ-lille.fr>
Date: Mon, 18 Mar 2024 13:27:32 +0100
Subject: [PATCH] doc

---
 README.md                                     | 743 ++++++++++++++++--
 .../IngrediantPatch price.bru                 |   0
 .../Ingredient Delete.bru                     |   4 +-
 .../Ingredient FindByID.bru                   |   0
 .../Ingredient Findall.bru                    |   0
 .../Ingredient Patch name.bru                 |   0
 .../Ingredient Post.bru                       |   0
 .../Ingredient Put.bru                        |   0
 .../Ingretiant FindByID Name.bru              |   0
 .../Ingredient  Delete Faill.bru              |   0
 .../Ingredient FindByID Faill.bru             |   0
 .../Ingredient FindByID Name Faill.bru        |   0
 .../Ingredient Patch Faill (name colonne).bru |   0
 ...ient Patch Faill (not foud ingredient).bru |   0
 .../Ingredient Post Faill.bru                 |   0
 .../ingredient Put Faill.bru                  |   0
 .../Pizza ByName (chorizo 2).bru              |   0
 .../Pizza ByName (chorizo 3).bru              |   0
 .../Pizza ByName (chorizo).bru                |   0
 .../{3_Pizza => 3_Pizzas}/Pizza ByName.bru    |   0
 .../Pizza Delete (une pizza).bru              |   0
 .../{3_Pizza => 3_Pizzas}/Pizza FindALL.bru   |   0
 .../Pizza FindByName Prixtotal.bru            |   0
 .../Pizza Patch (liste ingrediant).bru        |   0
 .../Pizza Patch (pate et prixbase).bru        |   0
 .../Pizza Patch (prixbase).bru                |   0
 .../3_Pizzas/Pizza Patch (p\303\242te).bru"   |   0
 .../{3_Pizza => 3_Pizzas}/Pizza Post.bru      |   0
 ...Ingredient (un ingredient d'une pizza).bru |   0
 .../{3_Pizza => 3_Pizzas}/Pizzaa Put.bru      |   0
 .../Pizza Delete  (une pizza) Faill.bru       |   0
 .../Pizza FindByName Faill.bru                |   0
 .../Pizza Patch Faill (sur une colonne).bru   |   0
 .../Pizza Patch Faill.bru                     |   0
 .../Pizza Post Faill.bru                      |   0
 ...elete (un ingredient d'une pizza)Faill.bru |   0
 .../Commandes Delete (une commande).bru       |   0
 .../Commandes Delete (une pizza  ).bru        |   0
 .../Commandes Pach (pizzas).bru               |   0
 .../Commandes Patch (nom et date).bru         |   0
 .../Commandes Post.bru                        |   0
 .../Commandes Put.bru                         |   0
 .../Commandes fidAll.bru                      |   0
 .../Commandes findById (commande 4 Patch).bru |   0
 .../Commandes findById (commandes 4 Put).bru  |   0
 .../Commandes findById.bru                    |   0
 .../Commandes totalPrice.bru                  |   0
 .../Commandes Delete (une commande) Faill.bru |   0
 .../Commandes Delete (une pizza) Faill.bru    |   0
 .../Commandes Patch Faill(nom colonne).bru    |   0
 .../Commandes Patch Faill.bru                 |   0
 .../Commandes Post Faill.bru                  |   0
 .../Commandes Put Faill.bru                   |   0
 .../Commandes findById Faill.bru              |   0
 .../Commandes totalPrice Faill.bru            |   0
 .../classes/controleurs/CommandeRestAPI.class | Bin 4660 -> 5574 bytes
 .../controleurs/IngredientRestAPI.class       | Bin 4616 -> 5078 bytes
 .../classes/controleurs/PizzasRestAPI.class   | Bin 4991 -> 5290 bytes
 WEB-INF/src/controleurs/CommandeRestAPI.java  |  10 +-
 .../src/controleurs/IngredientRestAPI.java    |  11 +-
 WEB-INF/src/controleurs/PizzasRestAPI.java    |   9 +-
 pizzeria Antoine GAIENIER.zip                 | Bin 0 -> 53552 bytes
 WEB-INF/pizzeria.sql => pizzeria.sql          |  24 +-
 63 files changed, 707 insertions(+), 94 deletions(-)
 rename WEB-INF/bruno/pizzeria/{1_Ingredient => 1_Ingredients}/IngrediantPatch price.bru (100%)
 rename WEB-INF/bruno/pizzeria/{1_Ingredient => 1_Ingredients}/Ingredient Delete.bru (64%)
 rename WEB-INF/bruno/pizzeria/{1_Ingredient => 1_Ingredients}/Ingredient FindByID.bru (100%)
 rename WEB-INF/bruno/pizzeria/{1_Ingredient => 1_Ingredients}/Ingredient Findall.bru (100%)
 rename WEB-INF/bruno/pizzeria/{1_Ingredient => 1_Ingredients}/Ingredient Patch name.bru (100%)
 rename WEB-INF/bruno/pizzeria/{1_Ingredient => 1_Ingredients}/Ingredient Post.bru (100%)
 rename WEB-INF/bruno/pizzeria/{1_Ingredient => 1_Ingredients}/Ingredient Put.bru (100%)
 rename WEB-INF/bruno/pizzeria/{1_Ingredient => 1_Ingredients}/Ingretiant FindByID Name.bru (100%)
 rename WEB-INF/bruno/pizzeria/{2_IngrediantFaill => 2_IngrediantsFaill}/Ingredient  Delete Faill.bru (100%)
 rename WEB-INF/bruno/pizzeria/{2_IngrediantFaill => 2_IngrediantsFaill}/Ingredient FindByID Faill.bru (100%)
 rename WEB-INF/bruno/pizzeria/{2_IngrediantFaill => 2_IngrediantsFaill}/Ingredient FindByID Name Faill.bru (100%)
 rename WEB-INF/bruno/pizzeria/{2_IngrediantFaill => 2_IngrediantsFaill}/Ingredient Patch Faill (name colonne).bru (100%)
 rename WEB-INF/bruno/pizzeria/{2_IngrediantFaill => 2_IngrediantsFaill}/Ingredient Patch Faill (not foud ingredient).bru (100%)
 rename WEB-INF/bruno/pizzeria/{2_IngrediantFaill => 2_IngrediantsFaill}/Ingredient Post Faill.bru (100%)
 rename WEB-INF/bruno/pizzeria/{2_IngrediantFaill => 2_IngrediantsFaill}/ingredient Put Faill.bru (100%)
 rename WEB-INF/bruno/pizzeria/{3_Pizza => 3_Pizzas}/Pizza ByName (chorizo 2).bru (100%)
 rename WEB-INF/bruno/pizzeria/{3_Pizza => 3_Pizzas}/Pizza ByName (chorizo 3).bru (100%)
 rename WEB-INF/bruno/pizzeria/{3_Pizza => 3_Pizzas}/Pizza ByName (chorizo).bru (100%)
 rename WEB-INF/bruno/pizzeria/{3_Pizza => 3_Pizzas}/Pizza ByName.bru (100%)
 rename WEB-INF/bruno/pizzeria/{3_Pizza => 3_Pizzas}/Pizza Delete (une pizza).bru (100%)
 rename WEB-INF/bruno/pizzeria/{3_Pizza => 3_Pizzas}/Pizza FindALL.bru (100%)
 rename WEB-INF/bruno/pizzeria/{3_Pizza => 3_Pizzas}/Pizza FindByName Prixtotal.bru (100%)
 rename WEB-INF/bruno/pizzeria/{3_Pizza => 3_Pizzas}/Pizza Patch (liste ingrediant).bru (100%)
 rename WEB-INF/bruno/pizzeria/{3_Pizza => 3_Pizzas}/Pizza Patch (pate et prixbase).bru (100%)
 rename WEB-INF/bruno/pizzeria/{3_Pizza => 3_Pizzas}/Pizza Patch (prixbase).bru (100%)
 rename "WEB-INF/bruno/pizzeria/3_Pizza/Pizza Patch (p\303\242te).bru" => "WEB-INF/bruno/pizzeria/3_Pizzas/Pizza Patch (p\303\242te).bru" (100%)
 rename WEB-INF/bruno/pizzeria/{3_Pizza => 3_Pizzas}/Pizza Post.bru (100%)
 rename WEB-INF/bruno/pizzeria/{3_Pizza => 3_Pizzas}/PizzaDelete Ingredient (un ingredient d'une pizza).bru (100%)
 rename WEB-INF/bruno/pizzeria/{3_Pizza => 3_Pizzas}/Pizzaa Put.bru (100%)
 rename WEB-INF/bruno/pizzeria/{4_PizzaFaill => 4_PizzasFaill}/Pizza Delete  (une pizza) Faill.bru (100%)
 rename WEB-INF/bruno/pizzeria/{4_PizzaFaill => 4_PizzasFaill}/Pizza FindByName Faill.bru (100%)
 rename WEB-INF/bruno/pizzeria/{4_PizzaFaill => 4_PizzasFaill}/Pizza Patch Faill (sur une colonne).bru (100%)
 rename WEB-INF/bruno/pizzeria/{4_PizzaFaill => 4_PizzasFaill}/Pizza Patch Faill.bru (100%)
 rename WEB-INF/bruno/pizzeria/{4_PizzaFaill => 4_PizzasFaill}/Pizza Post Faill.bru (100%)
 rename WEB-INF/bruno/pizzeria/{4_PizzaFaill => 4_PizzasFaill}/PizzaDelete (un ingredient d'une pizza)Faill.bru (100%)
 rename WEB-INF/bruno/pizzeria/{5_Commande => 5_Commandes}/Commandes Delete (une commande).bru (100%)
 rename WEB-INF/bruno/pizzeria/{5_Commande => 5_Commandes}/Commandes Delete (une pizza  ).bru (100%)
 rename WEB-INF/bruno/pizzeria/{5_Commande => 5_Commandes}/Commandes Pach (pizzas).bru (100%)
 rename WEB-INF/bruno/pizzeria/{5_Commande => 5_Commandes}/Commandes Patch (nom et date).bru (100%)
 rename WEB-INF/bruno/pizzeria/{5_Commande => 5_Commandes}/Commandes Post.bru (100%)
 rename WEB-INF/bruno/pizzeria/{5_Commande => 5_Commandes}/Commandes Put.bru (100%)
 rename WEB-INF/bruno/pizzeria/{5_Commande => 5_Commandes}/Commandes fidAll.bru (100%)
 rename WEB-INF/bruno/pizzeria/{5_Commande => 5_Commandes}/Commandes findById (commande 4 Patch).bru (100%)
 rename WEB-INF/bruno/pizzeria/{5_Commande => 5_Commandes}/Commandes findById (commandes 4 Put).bru (100%)
 rename WEB-INF/bruno/pizzeria/{5_Commande => 5_Commandes}/Commandes findById.bru (100%)
 rename WEB-INF/bruno/pizzeria/{5_Commande => 5_Commandes}/Commandes totalPrice.bru (100%)
 rename WEB-INF/bruno/pizzeria/{6_CommandeFaill => 6_CommandesFaill}/Commandes Delete (une commande) Faill.bru (100%)
 rename WEB-INF/bruno/pizzeria/{6_CommandeFaill => 6_CommandesFaill}/Commandes Delete (une pizza) Faill.bru (100%)
 rename WEB-INF/bruno/pizzeria/{6_CommandeFaill => 6_CommandesFaill}/Commandes Patch Faill(nom colonne).bru (100%)
 rename WEB-INF/bruno/pizzeria/{6_CommandeFaill => 6_CommandesFaill}/Commandes Patch Faill.bru (100%)
 rename WEB-INF/bruno/pizzeria/{6_CommandeFaill => 6_CommandesFaill}/Commandes Post Faill.bru (100%)
 rename WEB-INF/bruno/pizzeria/{6_CommandeFaill => 6_CommandesFaill}/Commandes Put Faill.bru (100%)
 rename WEB-INF/bruno/pizzeria/{6_CommandeFaill => 6_CommandesFaill}/Commandes findById Faill.bru (100%)
 rename WEB-INF/bruno/pizzeria/{6_CommandeFaill => 6_CommandesFaill}/Commandes totalPrice Faill.bru (100%)
 create mode 100644 pizzeria Antoine GAIENIER.zip
 rename WEB-INF/pizzeria.sql => pizzeria.sql (95%)

diff --git a/README.md b/README.md
index 2fe96ca..0c01c6a 100644
--- a/README.md
+++ b/README.md
@@ -1,93 +1,722 @@
-# SAÉ_REST_API
+# SAÉ S4.A02. : Web Backend
 
+### Objectif:
 
+Savoir réaliser et mettre en place une architecture REST.
+Cette SAÉ ne met en oeuvre que les compétences REST.
 
-## Getting started
 
-To make it easy for you to get started with GitLab, here's a list of recommended next steps.
+## Base de données
 
-Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!
+La base de données est une base de données relationnelle. Elle est composée de 5 tables:
+- **`ingredients`** : contient tout les ingrédients qui commposent les pizzas (id, name, price)
+- **`pizzas`** : contient les pizzas (nom, pate, prixbase)
+- **`pizzas_ingredients`** : contient les ingrédients qui composent les pizzas (nom, id) nom est le nom de la pizza et id est l'id de l'ingrédient 
 
-## Add your files
+- **`commandes`** : contient les commandes (id, nom, date)
+- **`commande_detail`** : contient les pizzas commandées (id,  nom) id est l'id de la commande et nom est le nom de la pizza commandée 
 
-- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files
-- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command:
+## API Ingredients
 
+### GET /ingredients
+
+Renvoie la liste des ingrédients présents dans la base de données
+
+```json
+[
+    {
+        "id": 1,
+        "name": "pomme de terre",
+        "price": 1
+    },
+    {
+        "id": 2,
+        "name": "crème",
+        "price": 2
+    }
+]
+```
+Status | Description
+------------ | -------------
+200 OK | La requête s'est effectuée correctement
+
+
+### GET /ingredients/{id}
+
+Renvoie l'ingrédient correspondant à l'id passé en paramètre
+
+```json
+{
+    "id": 1,
+    "name": "pomme de terre",
+    "price": 1
+}
+```
+
+Status | Description
+------------ | -------------
+302 FOUND | La requête s'est effectuée correctement
+404 NOT FOUND | L'ingrédient n'existe pas
+
+### GET /ingredients/{id}/name
+
+Renvoie le nom de l'ingrédient correspondant à l'id passé en paramètre
+
+```json
+{
+    "name": "pomme de terre"
+}
+```
+Status | Description
+------------ | -------------
+302 FOUND | La requête s'est effectuée correctement
+404 NOT FOUND | L'ingrédient n'existe pas
+
+### POST /ingredients
+
+Ajoute un ingrédient à la base de données avec les informations passées en paramètre au format JSON.
+
+Body:
+```json
+{   
+    "id": 1,
+    "name": "pomme de terre",
+    "price": 1
+}
 ```
-cd existing_repo
-git remote add origin https://gitlab.univ-lille.fr/antoine.gaienier.etu/sae_rest_api.git
-git branch -M main
-git push -uf origin main
+et renvoie l'ingrédient ajouté
+
+```json
+{   
+    "id": 1,
+    "name": "pomme de terre",
+    "price": 1
+}
 ```
+Status | Description
+------------ | -------------
+201 CREATED | La requête s'est effectuée correctement
+409 CONFLICT | L'ingrédient existe déjà
 
-## Integrate with your tools
+### DELETE /ingredients/{id}
 
-- [ ] [Set up project integrations](https://gitlab.univ-lille.fr/antoine.gaienier.etu/sae_rest_api/-/settings/integrations)
+Supprime l'ingrédient correspondant à l'id passé en paramètre et ne renvoie rien
 
-## Collaborate with your team
 
-- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)
-- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
-- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)
-- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)
-- [ ] [Set auto-merge](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html)
+Status | Description
+------------ | -------------
+200 OK | La requête s'est effectuée correctement
+404 NOT FOUND| L'ingrédient n'existe pas
 
-## Test and Deploy
+### PUT /ingredients
 
-Use the built-in continuous integration in GitLab.
+Modifie l'ingrédient avec les informations passées en paramètre au format JSON.
 
-- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html)
-- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing (SAST)](https://docs.gitlab.com/ee/user/application_security/sast/)
-- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html)
-- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/)
-- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html)
+Body:
+```json
+{   
+    "id": 1,
+    "name": "truffe",
+    "price": 10
+}
+```
+et renvoie l'ingrédient modifié
+
+```json
+{   
+    "id": 1,
+    "name": "truffe",
+    "price": 10
+}
+```
+Status | Description
+------------ | -------------
+ 200 OK | La requête s'est effectuée correctement
+ 404 NOT FOUND |L'ingrédient n'existe pas
 
-***
+### PATCH /ingredients/{id}
 
-# Editing this README
+Modifie l'ingrédient correspondant à l'id passé en paramètre avec les informations passées en paramètre au format JSON.
 
-When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thanks to [makeareadme.com](https://www.makeareadme.com/) for this template.
+Body:
+```json
+{   
+    "price": 5.5
+}
+```
+et renvoie l'ingrédient modifié
+
+```json
+{   
+    "id": 1,
+    "name": "pomme de terre",
+    "price": 5.5
+}
+```
+Status | Description
+------------ | -------------
+200 OK | La requête s'est effectuée correctement
+404  NOT FOUND |L'ingrédient n'existe pas
+
+## API Pizzas
+
+### GET /pizzas
+
+Renvoie la liste des pizzas présentes dans la base de données
+
+```json
+[
+    {
+        "nom": "4 fromages",
+        "pate": "fine",
+        "prixbase": 10
+    },
+    {
+        "nom": "reine",
+        "pate": "fine",
+        "prixbase": 12
+    }
+]
+```
+Status | Description
+------------ | -------------
+200 OK | La requête s'est effectuée correctement
+
+### GET /pizzas/{nom}
+
+Renvoie la pizza correspondant au nom passé en paramètre et les ingrédients qui la composent
+
+```json
+{
+    "nom": "4 fromages",
+    "pate": "fine",
+    "prixbase": 10,
+    "ingredients": [
+        {
+            "id": 1,
+            "name": "pomme de terre",
+            "price": 1
+        },
+        {
+            "id": 2,
+            "name": "crème",
+            "price": 2
+        }
+    ]
+}
+```
+Status | Description
+------------ | -------------
+302 FOUND | La requête s'est effectuée correctement
+404 NOT FOUND | La pizza n'existe pas
 
-## Suggestions for a good README
+### GET /pizzas/{nom}/prixfinal
 
-Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.
+Renvoie le prix final de la pizza correspondant au nom passé en paramètre
 
-## Name
-Choose a self-explaining name for your project.
+```json
+{
+    13
+}
+```
 
-## Description
-Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors.
+Status | Description
+------------ | -------------
+302 FOUND | La requête s'est effectuée correctement
+404 NOT FOUND | La pizza n'existe pas
+
+### POST /pizzas
+
+Ajoute une pizza à la base de données avec les informations passées en paramètre au format JSON
+
+Body:
+```json
+{   
+    "nom": "4 fromages",
+    "pate": "fine",
+    "prixbase": 10
+    "ingredients": [
+        {
+            "id": 1,
+        },
+        {
+            "id": 2,
+            "name": "crème",
+        }
+    ]
+}
+```
+
+et renvoie la pizza ajoutée
+
+```json
+{   
+    "nom": "4 fromages",
+    "pate": "fine",
+    "prixbase": 10
+    "ingredients": [
+        {
+            "id": 1,
+            "name": "pomme de terre",
+            "price": 1
+        },
+        {
+            "id": 2,
+            "name": "crème",
+            "price": 2
+        }
+    ]
+}
+```
+Status | Description
+------------ | -------------
+201 CREATED | La requête s'est effectuée correctement
+409 CONFLICT | La pizza existe déjà
+
+### DELETE /pizzas/{nom}
+
+Supprime la pizza correspondant au nom passé en paramètre et ne renvoie rien
+
+Status | Description
+------------ | -------------
+200 OK | La requête s'est effectuée correctement
+404 NOT FOUND | La pizza n'existe pas
+
+### DELETE /pizzas/{nom}/{id}
+
+Supprime la relation entre la pizza correspondant au nom passé en paramètre et l'ingrédient correspondant à l'id passé en paramètre et ne renvoie rien
+
+Status | Description
+------------ | -------------
+200 OK | La requête s'est effectuée correctement
+404 NOT FOUND | La pizza ou l'ingrédient n'existe pas
+
+### PUT /pizzas/{nom}
+
+Modifie la pizza correspondant au nom passé en paramètre avec les informations passées en paramètre au format JSON
+
+Body:
+```json
+{   
+    "nom": "hawaienne",
+    "pate": "fine",
+    "prixbase": 10
+    "ingredients": [
+        {
+            "id": 1,
+        },
+        {
+            "id": 10,
+            "name": "ananas",
+        },
+        {
+            "id": 5,
+            "name":" sauce tomate"
+        }
+    ]
+}
+```
 
-## Badges
-On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge.
 
-## Visuals
-Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method.
+Status | Description
+------------ | -------------
+200 OK | La requête s'est effectuée correctement
+404 NOT FOUND | La pizza n'existe pas
+
+### PATCH /pizzas/{nom}
+
+Modifie la pizza correspondant au nom passé en paramètre avec les informations passées en paramètre au format JSON. 
+
+Body:
+```json
+{   
+    "prixbase": 15
+}
+
+qui modifie le prix de la pizza correspondant au nom passé en paramètre et renvoie la pizza modifiée  et renvoie la pizza modifiée
+
+```json
+{   
+    "nom": "4 fromages",
+    "pate": "fine",
+    "prixbase": 15
+    "ingredients": [
+        {
+            "id": 1,
+            "name": "pomme de terre",
+            "price": 1
+        },
+        {
+            "id": 2,
+            "name": "crème",
+            "price": 2
+        }
+    ]
+}
+```
+ou 
+
+Body:
+
+```json
+{   
+    "ingredients": [
+        {
+            "id": 1,
+        },
+        {
+            "id": 10,
+
+        }
+    ]
+}
+```
+qui modifie les ingrédients de la pizza correspondant au nom passé en paramètre et renvoie la pizza modifiée
+
+```json
+{   
+    "nom": "4 fromages",
+    "pate": "fine",
+    "prixbase": 10
+    "ingredients": [
+        {
+            "id": 1,
+            "name": "pomme de terre",
+            "price": 1
+        },
+        {
+            "id": 10,
+            "name": "ananas",
+            "price": 3
+        }
+    ]
+}
+```
+
+Status | Description
+------------ | -------------
+200 OK | La requête s'est effectuée correctement
+404 NOT FOUND | La pizza n'existe pas
+
+## API Commandes
+
+### GET /commandes
+
+Renvoie la liste des commandes présentes dans la base de données
+
+```json
+[
+    {
+        "id": 1,
+        "nom": "commande1",
+        "date": "2021-03-01"
+    },
+    {
+        "id": 2,
+        "nom": "commande2",
+        "date": "2021-03-02"
+    }
+]
+```
+
+Status | Description
+------------ | -------------
+200 OK | La requête s'est effectuée correctement
+
+### GET /commandes/{id}
+
+Renvoie la commande correspondant à l'id passé en paramètre et les pizzas commandées
+
+```json
+{
+    "id": 1,
+    "nom": "commande1",
+    "date": "2024-03-01",
+    "pizzas": [
+        {
+            "nom": "4 fromages",
+            "pate": "fine",
+            "prixbase": 10
+            "ingredients": [
+                {
+                    "id": 1,
+                    "name": "pomme de terre",
+                    "price": 1
+                },
+                {
+                    "id": 2,
+                    "name": "crème",
+                    "price": 2
+                }
+            ]
+        },
+        {
+            "nom": "reine",
+            "pate": "fine",
+            "prixbase": 12
+            "ingredients": [
+                {
+                    "id": 1,
+                    "name": "pomme de terre",
+                    "price": 1
+                },
+                {
+                    "id": 2,
+                    "name": "crème",
+                    "price": 2
+                }
+            ]
+        }
+    ]
+}
+```
+
+Status | Description
+------------ | -------------
+302 FOUND | La requête s'est effectuée correctement
+404 NOT FOUND | La commande n'existe pas
+
+### GET /commandes/{id}/prixfinal
+
+Renvoie le prix final de la commande correspondant à l'id passé en paramètre
+
+```json
+{
+    25
+}
+``` 
+
+Status | Description
+------------ | -------------
+302 FOUND | La requête s'est effectuée correctement
+404 NOT FOUND | La commande n'existe pas
+
+### POST /commandes
+
+Ajoute une commande à la base de données avec les informations passées en paramètre au format JSON
+
+Body:
+```json
+{   
+    "id": 1,
+    "nom": "commande1",
+    "date": "2024-03-01",
+    "pizzas": [
+        {
+            "nom": "4 fromages",
+        },
+        {
+            "nom": "reine",
+        }
+    ]
+}
+```
+
+et renvoie la commande ajoutée
+
+```json
+{   
+    "id": 1,
+    "nom": "commande1",
+    "date": "2024-03-01",
+    "pizzas": [
+        {
+            "nom": "4 fromages",
+            "pate": "fine",
+            "prixbase": 10
+            "ingredients": [
+                {
+                    "id": 1,
+                    "name": "pomme de terre",
+                    "price": 1
+                },
+                {
+                    "id": 2,
+                    "name": "crème",
+                    "price": 2
+                }
+            ]
+        },
+        {
+            "nom": "reine",
+            "pate": "fine",
+            "prixbase": 12
+            "ingredients": [
+                {
+                    "id": 1,
+                    "name": "pomme de terre",
+                    "price": 1
+                },
+                {
+                    "id": 2,
+                    "name": "crème",
+                    "price": 2
+                }
+            ]
+        }
+    ]
+}
+```
+
+Status | Description
+------------ | -------------
+201 CREATED | La requête s'est effectuée correctement
+409 CONFLICT | La commande existe déjà
+
+### DELETE /commandes/{id}
+
+Supprime la commande correspondant à l'id passé en paramètre et ne renvoie rien
+
+Status | Description
+------------ | -------------
+200 OK | La requête s'est effectuée correctement
+404 NOT FOUND | La commande n'existe pas
+
+### DELETE /commandes/{id}/{nom}
+
+Supprime la relation entre la commande correspondant à l'id passé en paramètre et la pizza correspondant au nom passé en paramètre et ne renvoie rien
+
+Status | Description
+------------ | -------------
+200 OK | La requête s'est effectuée correctement
+404 NOT FOUND | La commande ou la pizza n'existe pas
+
+### PUT /commandes/{id}
+
+Modifie la commande correspondant à l'id passé en paramètre avec les informations passées en paramètre au format JSON
+
+Body:
+```json
+{   
+    "id": 1,
+    "nom": "commande1",
+    "date": "2024-03-01",
+    "pizzas": [
+        {
+            "nom": "4 fromages",
+        },
+        {
+            "nom": "reine",
+        }
+    ]
+}
+```
+et renvoie la commande modifiée
+
+```json
+{   
+    "id": 1,
+    "nom": "commande1",
+    "date": "2024-03-01",
+    "pizzas": [
+        {
+            "nom": "4 fromages",
+            "pate": "fine",
+            "prixbase": 10
+            "ingredients": [
+                {
+                    "id": 1,
+                    "name": "pomme de terre",
+                    "price": 1
+                },
+                {
+                    "id": 2,
+                    "name": "crème",
+                    "price": 2
+                }
+            ]
+        },
+        {
+            "nom": "reine",
+            "pate": "fine",
+            "prixbase": 12
+            "ingredients": [
+                {
+                    "id": 1,
+                    "name": "pomme de terre",
+                    "price": 1
+                },
+                {
+                    "id": 2,
+                    "name": "crème",
+                    "price": 2
+                }
+            ]
+        }
+    ]
+}
+```
+
+Status | Description
+------------ | -------------
+200 OK | La requête s'est effectuée correctement
+404 NOT FOUND | La commande n'existe pas
+
+### PATCH /commandes/{id}
+
+Modifie la commande correspondant à l'id passé en paramètre avec les informations passées en paramètre au format JSON
+
+Body:
+```json
+{   
+    "date": "2024-03-02"
+    "pizzas": [
+        {
+            "nom": "4 fromages",
+        }
+    ]
+}
+```
+
+et renvoie la commande modifiée
+
+```json
+{   
+    "id": 1,
+    "nom": "commande1",
+    "date": "2024-03-02",
+    "pizzas": [
+        {
+            "nom": "4 fromages",
+            "pate": "fine",
+            "prixbase": 10
+            "ingredients": [
+                {
+                    "id": 1,
+                    "name": "pomme de terre",
+                    "price": 1
+                },
+                {
+                    "id": 2,
+                    "name": "crème",
+                    "price": 2
+                }
+            ]
+        }
+    ]
+}
+```
 
-## Installation
-Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection.
+Status | Description
+------------ | -------------
+200 OK | La requête s'est effectuée correctement
+404 NOT FOUND | La commande n'existe pas
 
-## Usage
-Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.
 
-## Support
-Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc.
+## Restrictions d'accès
 
-## Roadmap
-If you have ideas for releases in the future, it is a good idea to list them in the README.
+La partie restriction d'accès n'est pas implémentée par manque de temps.
 
-## Contributing
-State if you are open to contributions and what your requirements are for accepting them.
 
-For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self.
+## Bruno
 
-You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser.
+Bruno est organisé de façon à pouvoir lancer le runnner de l'application sans avoir d'erreur.
 
-## Authors and acknowledgment
-Show your appreciation to those who have contributed to the project.
+- Ingredients
+- ingredientsFail
+- Pizzas
+- PizzasFail
+- Commandes
+- CommandesFail
 
-## License
-For open source projects, say how it is licensed.
 
-## Project status
-If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.
diff --git a/WEB-INF/bruno/pizzeria/1_Ingredient/IngrediantPatch price.bru b/WEB-INF/bruno/pizzeria/1_Ingredients/IngrediantPatch price.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/1_Ingredient/IngrediantPatch price.bru
rename to WEB-INF/bruno/pizzeria/1_Ingredients/IngrediantPatch price.bru
diff --git a/WEB-INF/bruno/pizzeria/1_Ingredient/Ingredient Delete.bru b/WEB-INF/bruno/pizzeria/1_Ingredients/Ingredient Delete.bru
similarity index 64%
rename from WEB-INF/bruno/pizzeria/1_Ingredient/Ingredient Delete.bru
rename to WEB-INF/bruno/pizzeria/1_Ingredients/Ingredient Delete.bru
index ad8bf75..0771640 100644
--- a/WEB-INF/bruno/pizzeria/1_Ingredient/Ingredient Delete.bru	
+++ b/WEB-INF/bruno/pizzeria/1_Ingredients/Ingredient Delete.bru	
@@ -10,6 +10,4 @@ delete {
   auth: none
 }
 
-docs {
-  Avant de faire ce DELETE vou de vais faire la requête "IngrediantPost"
-}
+
diff --git a/WEB-INF/bruno/pizzeria/1_Ingredient/Ingredient FindByID.bru b/WEB-INF/bruno/pizzeria/1_Ingredients/Ingredient FindByID.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/1_Ingredient/Ingredient FindByID.bru
rename to WEB-INF/bruno/pizzeria/1_Ingredients/Ingredient FindByID.bru
diff --git a/WEB-INF/bruno/pizzeria/1_Ingredient/Ingredient Findall.bru b/WEB-INF/bruno/pizzeria/1_Ingredients/Ingredient Findall.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/1_Ingredient/Ingredient Findall.bru
rename to WEB-INF/bruno/pizzeria/1_Ingredients/Ingredient Findall.bru
diff --git a/WEB-INF/bruno/pizzeria/1_Ingredient/Ingredient Patch name.bru b/WEB-INF/bruno/pizzeria/1_Ingredients/Ingredient Patch name.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/1_Ingredient/Ingredient Patch name.bru
rename to WEB-INF/bruno/pizzeria/1_Ingredients/Ingredient Patch name.bru
diff --git a/WEB-INF/bruno/pizzeria/1_Ingredient/Ingredient Post.bru b/WEB-INF/bruno/pizzeria/1_Ingredients/Ingredient Post.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/1_Ingredient/Ingredient Post.bru
rename to WEB-INF/bruno/pizzeria/1_Ingredients/Ingredient Post.bru
diff --git a/WEB-INF/bruno/pizzeria/1_Ingredient/Ingredient Put.bru b/WEB-INF/bruno/pizzeria/1_Ingredients/Ingredient Put.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/1_Ingredient/Ingredient Put.bru
rename to WEB-INF/bruno/pizzeria/1_Ingredients/Ingredient Put.bru
diff --git a/WEB-INF/bruno/pizzeria/1_Ingredient/Ingretiant FindByID Name.bru b/WEB-INF/bruno/pizzeria/1_Ingredients/Ingretiant FindByID Name.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/1_Ingredient/Ingretiant FindByID Name.bru
rename to WEB-INF/bruno/pizzeria/1_Ingredients/Ingretiant FindByID Name.bru
diff --git a/WEB-INF/bruno/pizzeria/2_IngrediantFaill/Ingredient  Delete Faill.bru b/WEB-INF/bruno/pizzeria/2_IngrediantsFaill/Ingredient  Delete Faill.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/2_IngrediantFaill/Ingredient  Delete Faill.bru
rename to WEB-INF/bruno/pizzeria/2_IngrediantsFaill/Ingredient  Delete Faill.bru
diff --git a/WEB-INF/bruno/pizzeria/2_IngrediantFaill/Ingredient FindByID Faill.bru b/WEB-INF/bruno/pizzeria/2_IngrediantsFaill/Ingredient FindByID Faill.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/2_IngrediantFaill/Ingredient FindByID Faill.bru
rename to WEB-INF/bruno/pizzeria/2_IngrediantsFaill/Ingredient FindByID Faill.bru
diff --git a/WEB-INF/bruno/pizzeria/2_IngrediantFaill/Ingredient FindByID Name Faill.bru b/WEB-INF/bruno/pizzeria/2_IngrediantsFaill/Ingredient FindByID Name Faill.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/2_IngrediantFaill/Ingredient FindByID Name Faill.bru
rename to WEB-INF/bruno/pizzeria/2_IngrediantsFaill/Ingredient FindByID Name Faill.bru
diff --git a/WEB-INF/bruno/pizzeria/2_IngrediantFaill/Ingredient Patch Faill (name colonne).bru b/WEB-INF/bruno/pizzeria/2_IngrediantsFaill/Ingredient Patch Faill (name colonne).bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/2_IngrediantFaill/Ingredient Patch Faill (name colonne).bru
rename to WEB-INF/bruno/pizzeria/2_IngrediantsFaill/Ingredient Patch Faill (name colonne).bru
diff --git a/WEB-INF/bruno/pizzeria/2_IngrediantFaill/Ingredient Patch Faill (not foud ingredient).bru b/WEB-INF/bruno/pizzeria/2_IngrediantsFaill/Ingredient Patch Faill (not foud ingredient).bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/2_IngrediantFaill/Ingredient Patch Faill (not foud ingredient).bru
rename to WEB-INF/bruno/pizzeria/2_IngrediantsFaill/Ingredient Patch Faill (not foud ingredient).bru
diff --git a/WEB-INF/bruno/pizzeria/2_IngrediantFaill/Ingredient Post Faill.bru b/WEB-INF/bruno/pizzeria/2_IngrediantsFaill/Ingredient Post Faill.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/2_IngrediantFaill/Ingredient Post Faill.bru
rename to WEB-INF/bruno/pizzeria/2_IngrediantsFaill/Ingredient Post Faill.bru
diff --git a/WEB-INF/bruno/pizzeria/2_IngrediantFaill/ingredient Put Faill.bru b/WEB-INF/bruno/pizzeria/2_IngrediantsFaill/ingredient Put Faill.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/2_IngrediantFaill/ingredient Put Faill.bru
rename to WEB-INF/bruno/pizzeria/2_IngrediantsFaill/ingredient Put Faill.bru
diff --git a/WEB-INF/bruno/pizzeria/3_Pizza/Pizza ByName (chorizo 2).bru b/WEB-INF/bruno/pizzeria/3_Pizzas/Pizza ByName (chorizo 2).bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/3_Pizza/Pizza ByName (chorizo 2).bru
rename to WEB-INF/bruno/pizzeria/3_Pizzas/Pizza ByName (chorizo 2).bru
diff --git a/WEB-INF/bruno/pizzeria/3_Pizza/Pizza ByName (chorizo 3).bru b/WEB-INF/bruno/pizzeria/3_Pizzas/Pizza ByName (chorizo 3).bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/3_Pizza/Pizza ByName (chorizo 3).bru
rename to WEB-INF/bruno/pizzeria/3_Pizzas/Pizza ByName (chorizo 3).bru
diff --git a/WEB-INF/bruno/pizzeria/3_Pizza/Pizza ByName (chorizo).bru b/WEB-INF/bruno/pizzeria/3_Pizzas/Pizza ByName (chorizo).bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/3_Pizza/Pizza ByName (chorizo).bru
rename to WEB-INF/bruno/pizzeria/3_Pizzas/Pizza ByName (chorizo).bru
diff --git a/WEB-INF/bruno/pizzeria/3_Pizza/Pizza ByName.bru b/WEB-INF/bruno/pizzeria/3_Pizzas/Pizza ByName.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/3_Pizza/Pizza ByName.bru
rename to WEB-INF/bruno/pizzeria/3_Pizzas/Pizza ByName.bru
diff --git a/WEB-INF/bruno/pizzeria/3_Pizza/Pizza Delete (une pizza).bru b/WEB-INF/bruno/pizzeria/3_Pizzas/Pizza Delete (une pizza).bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/3_Pizza/Pizza Delete (une pizza).bru
rename to WEB-INF/bruno/pizzeria/3_Pizzas/Pizza Delete (une pizza).bru
diff --git a/WEB-INF/bruno/pizzeria/3_Pizza/Pizza FindALL.bru b/WEB-INF/bruno/pizzeria/3_Pizzas/Pizza FindALL.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/3_Pizza/Pizza FindALL.bru
rename to WEB-INF/bruno/pizzeria/3_Pizzas/Pizza FindALL.bru
diff --git a/WEB-INF/bruno/pizzeria/3_Pizza/Pizza FindByName Prixtotal.bru b/WEB-INF/bruno/pizzeria/3_Pizzas/Pizza FindByName Prixtotal.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/3_Pizza/Pizza FindByName Prixtotal.bru
rename to WEB-INF/bruno/pizzeria/3_Pizzas/Pizza FindByName Prixtotal.bru
diff --git a/WEB-INF/bruno/pizzeria/3_Pizza/Pizza Patch (liste ingrediant).bru b/WEB-INF/bruno/pizzeria/3_Pizzas/Pizza Patch (liste ingrediant).bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/3_Pizza/Pizza Patch (liste ingrediant).bru
rename to WEB-INF/bruno/pizzeria/3_Pizzas/Pizza Patch (liste ingrediant).bru
diff --git a/WEB-INF/bruno/pizzeria/3_Pizza/Pizza Patch (pate et prixbase).bru b/WEB-INF/bruno/pizzeria/3_Pizzas/Pizza Patch (pate et prixbase).bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/3_Pizza/Pizza Patch (pate et prixbase).bru
rename to WEB-INF/bruno/pizzeria/3_Pizzas/Pizza Patch (pate et prixbase).bru
diff --git a/WEB-INF/bruno/pizzeria/3_Pizza/Pizza Patch (prixbase).bru b/WEB-INF/bruno/pizzeria/3_Pizzas/Pizza Patch (prixbase).bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/3_Pizza/Pizza Patch (prixbase).bru
rename to WEB-INF/bruno/pizzeria/3_Pizzas/Pizza Patch (prixbase).bru
diff --git "a/WEB-INF/bruno/pizzeria/3_Pizza/Pizza Patch (p\303\242te).bru" "b/WEB-INF/bruno/pizzeria/3_Pizzas/Pizza Patch (p\303\242te).bru"
similarity index 100%
rename from "WEB-INF/bruno/pizzeria/3_Pizza/Pizza Patch (p\303\242te).bru"
rename to "WEB-INF/bruno/pizzeria/3_Pizzas/Pizza Patch (p\303\242te).bru"
diff --git a/WEB-INF/bruno/pizzeria/3_Pizza/Pizza Post.bru b/WEB-INF/bruno/pizzeria/3_Pizzas/Pizza Post.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/3_Pizza/Pizza Post.bru
rename to WEB-INF/bruno/pizzeria/3_Pizzas/Pizza Post.bru
diff --git a/WEB-INF/bruno/pizzeria/3_Pizza/PizzaDelete Ingredient (un ingredient d'une pizza).bru b/WEB-INF/bruno/pizzeria/3_Pizzas/PizzaDelete Ingredient (un ingredient d'une pizza).bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/3_Pizza/PizzaDelete Ingredient (un ingredient d'une pizza).bru
rename to WEB-INF/bruno/pizzeria/3_Pizzas/PizzaDelete Ingredient (un ingredient d'une pizza).bru
diff --git a/WEB-INF/bruno/pizzeria/3_Pizza/Pizzaa Put.bru b/WEB-INF/bruno/pizzeria/3_Pizzas/Pizzaa Put.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/3_Pizza/Pizzaa Put.bru
rename to WEB-INF/bruno/pizzeria/3_Pizzas/Pizzaa Put.bru
diff --git a/WEB-INF/bruno/pizzeria/4_PizzaFaill/Pizza Delete  (une pizza) Faill.bru b/WEB-INF/bruno/pizzeria/4_PizzasFaill/Pizza Delete  (une pizza) Faill.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/4_PizzaFaill/Pizza Delete  (une pizza) Faill.bru
rename to WEB-INF/bruno/pizzeria/4_PizzasFaill/Pizza Delete  (une pizza) Faill.bru
diff --git a/WEB-INF/bruno/pizzeria/4_PizzaFaill/Pizza FindByName Faill.bru b/WEB-INF/bruno/pizzeria/4_PizzasFaill/Pizza FindByName Faill.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/4_PizzaFaill/Pizza FindByName Faill.bru
rename to WEB-INF/bruno/pizzeria/4_PizzasFaill/Pizza FindByName Faill.bru
diff --git a/WEB-INF/bruno/pizzeria/4_PizzaFaill/Pizza Patch Faill (sur une colonne).bru b/WEB-INF/bruno/pizzeria/4_PizzasFaill/Pizza Patch Faill (sur une colonne).bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/4_PizzaFaill/Pizza Patch Faill (sur une colonne).bru
rename to WEB-INF/bruno/pizzeria/4_PizzasFaill/Pizza Patch Faill (sur une colonne).bru
diff --git a/WEB-INF/bruno/pizzeria/4_PizzaFaill/Pizza Patch Faill.bru b/WEB-INF/bruno/pizzeria/4_PizzasFaill/Pizza Patch Faill.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/4_PizzaFaill/Pizza Patch Faill.bru
rename to WEB-INF/bruno/pizzeria/4_PizzasFaill/Pizza Patch Faill.bru
diff --git a/WEB-INF/bruno/pizzeria/4_PizzaFaill/Pizza Post Faill.bru b/WEB-INF/bruno/pizzeria/4_PizzasFaill/Pizza Post Faill.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/4_PizzaFaill/Pizza Post Faill.bru
rename to WEB-INF/bruno/pizzeria/4_PizzasFaill/Pizza Post Faill.bru
diff --git a/WEB-INF/bruno/pizzeria/4_PizzaFaill/PizzaDelete (un ingredient d'une pizza)Faill.bru b/WEB-INF/bruno/pizzeria/4_PizzasFaill/PizzaDelete (un ingredient d'une pizza)Faill.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/4_PizzaFaill/PizzaDelete (un ingredient d'une pizza)Faill.bru
rename to WEB-INF/bruno/pizzeria/4_PizzasFaill/PizzaDelete (un ingredient d'une pizza)Faill.bru
diff --git a/WEB-INF/bruno/pizzeria/5_Commande/Commandes Delete (une commande).bru b/WEB-INF/bruno/pizzeria/5_Commandes/Commandes Delete (une commande).bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/5_Commande/Commandes Delete (une commande).bru
rename to WEB-INF/bruno/pizzeria/5_Commandes/Commandes Delete (une commande).bru
diff --git a/WEB-INF/bruno/pizzeria/5_Commande/Commandes Delete (une pizza  ).bru b/WEB-INF/bruno/pizzeria/5_Commandes/Commandes Delete (une pizza  ).bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/5_Commande/Commandes Delete (une pizza  ).bru
rename to WEB-INF/bruno/pizzeria/5_Commandes/Commandes Delete (une pizza  ).bru
diff --git a/WEB-INF/bruno/pizzeria/5_Commande/Commandes Pach (pizzas).bru b/WEB-INF/bruno/pizzeria/5_Commandes/Commandes Pach (pizzas).bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/5_Commande/Commandes Pach (pizzas).bru
rename to WEB-INF/bruno/pizzeria/5_Commandes/Commandes Pach (pizzas).bru
diff --git a/WEB-INF/bruno/pizzeria/5_Commande/Commandes Patch (nom et date).bru b/WEB-INF/bruno/pizzeria/5_Commandes/Commandes Patch (nom et date).bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/5_Commande/Commandes Patch (nom et date).bru
rename to WEB-INF/bruno/pizzeria/5_Commandes/Commandes Patch (nom et date).bru
diff --git a/WEB-INF/bruno/pizzeria/5_Commande/Commandes Post.bru b/WEB-INF/bruno/pizzeria/5_Commandes/Commandes Post.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/5_Commande/Commandes Post.bru
rename to WEB-INF/bruno/pizzeria/5_Commandes/Commandes Post.bru
diff --git a/WEB-INF/bruno/pizzeria/5_Commande/Commandes Put.bru b/WEB-INF/bruno/pizzeria/5_Commandes/Commandes Put.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/5_Commande/Commandes Put.bru
rename to WEB-INF/bruno/pizzeria/5_Commandes/Commandes Put.bru
diff --git a/WEB-INF/bruno/pizzeria/5_Commande/Commandes fidAll.bru b/WEB-INF/bruno/pizzeria/5_Commandes/Commandes fidAll.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/5_Commande/Commandes fidAll.bru
rename to WEB-INF/bruno/pizzeria/5_Commandes/Commandes fidAll.bru
diff --git a/WEB-INF/bruno/pizzeria/5_Commande/Commandes findById (commande 4 Patch).bru b/WEB-INF/bruno/pizzeria/5_Commandes/Commandes findById (commande 4 Patch).bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/5_Commande/Commandes findById (commande 4 Patch).bru
rename to WEB-INF/bruno/pizzeria/5_Commandes/Commandes findById (commande 4 Patch).bru
diff --git a/WEB-INF/bruno/pizzeria/5_Commande/Commandes findById (commandes 4 Put).bru b/WEB-INF/bruno/pizzeria/5_Commandes/Commandes findById (commandes 4 Put).bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/5_Commande/Commandes findById (commandes 4 Put).bru
rename to WEB-INF/bruno/pizzeria/5_Commandes/Commandes findById (commandes 4 Put).bru
diff --git a/WEB-INF/bruno/pizzeria/5_Commande/Commandes findById.bru b/WEB-INF/bruno/pizzeria/5_Commandes/Commandes findById.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/5_Commande/Commandes findById.bru
rename to WEB-INF/bruno/pizzeria/5_Commandes/Commandes findById.bru
diff --git a/WEB-INF/bruno/pizzeria/5_Commande/Commandes totalPrice.bru b/WEB-INF/bruno/pizzeria/5_Commandes/Commandes totalPrice.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/5_Commande/Commandes totalPrice.bru
rename to WEB-INF/bruno/pizzeria/5_Commandes/Commandes totalPrice.bru
diff --git a/WEB-INF/bruno/pizzeria/6_CommandeFaill/Commandes Delete (une commande) Faill.bru b/WEB-INF/bruno/pizzeria/6_CommandesFaill/Commandes Delete (une commande) Faill.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/6_CommandeFaill/Commandes Delete (une commande) Faill.bru
rename to WEB-INF/bruno/pizzeria/6_CommandesFaill/Commandes Delete (une commande) Faill.bru
diff --git a/WEB-INF/bruno/pizzeria/6_CommandeFaill/Commandes Delete (une pizza) Faill.bru b/WEB-INF/bruno/pizzeria/6_CommandesFaill/Commandes Delete (une pizza) Faill.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/6_CommandeFaill/Commandes Delete (une pizza) Faill.bru
rename to WEB-INF/bruno/pizzeria/6_CommandesFaill/Commandes Delete (une pizza) Faill.bru
diff --git a/WEB-INF/bruno/pizzeria/6_CommandeFaill/Commandes Patch Faill(nom colonne).bru b/WEB-INF/bruno/pizzeria/6_CommandesFaill/Commandes Patch Faill(nom colonne).bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/6_CommandeFaill/Commandes Patch Faill(nom colonne).bru
rename to WEB-INF/bruno/pizzeria/6_CommandesFaill/Commandes Patch Faill(nom colonne).bru
diff --git a/WEB-INF/bruno/pizzeria/6_CommandeFaill/Commandes Patch Faill.bru b/WEB-INF/bruno/pizzeria/6_CommandesFaill/Commandes Patch Faill.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/6_CommandeFaill/Commandes Patch Faill.bru
rename to WEB-INF/bruno/pizzeria/6_CommandesFaill/Commandes Patch Faill.bru
diff --git a/WEB-INF/bruno/pizzeria/6_CommandeFaill/Commandes Post Faill.bru b/WEB-INF/bruno/pizzeria/6_CommandesFaill/Commandes Post Faill.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/6_CommandeFaill/Commandes Post Faill.bru
rename to WEB-INF/bruno/pizzeria/6_CommandesFaill/Commandes Post Faill.bru
diff --git a/WEB-INF/bruno/pizzeria/6_CommandeFaill/Commandes Put Faill.bru b/WEB-INF/bruno/pizzeria/6_CommandesFaill/Commandes Put Faill.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/6_CommandeFaill/Commandes Put Faill.bru
rename to WEB-INF/bruno/pizzeria/6_CommandesFaill/Commandes Put Faill.bru
diff --git a/WEB-INF/bruno/pizzeria/6_CommandeFaill/Commandes findById Faill.bru b/WEB-INF/bruno/pizzeria/6_CommandesFaill/Commandes findById Faill.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/6_CommandeFaill/Commandes findById Faill.bru
rename to WEB-INF/bruno/pizzeria/6_CommandesFaill/Commandes findById Faill.bru
diff --git a/WEB-INF/bruno/pizzeria/6_CommandeFaill/Commandes totalPrice Faill.bru b/WEB-INF/bruno/pizzeria/6_CommandesFaill/Commandes totalPrice Faill.bru
similarity index 100%
rename from WEB-INF/bruno/pizzeria/6_CommandeFaill/Commandes totalPrice Faill.bru
rename to WEB-INF/bruno/pizzeria/6_CommandesFaill/Commandes totalPrice Faill.bru
diff --git a/WEB-INF/classes/controleurs/CommandeRestAPI.class b/WEB-INF/classes/controleurs/CommandeRestAPI.class
index c98b6f66a7b70781ab826741e6f0617d08f57a87..cfc0b45c1ea7adde2722ae48d867e8cc7f1d09c6 100644
GIT binary patch
literal 5574
zcmX^0Z`VEs1_oOO3w8!3Mh5BR{JfH){G8O%qGEmL{M_8cyp+_S)Z!Ay08e%X7Dfhv
zti-ZJ{hY+SbbbG%tkmQZMh5O=s5%!%e?|sDpOnOWxK<ZOe``htHk-`6%o00B24)S-
zFh&Lz=lqmZb_Q-n27ZKTu0=)pMH~#gjGWP-c}1zk`8j2&DGJH?xdoXyi6xo&c?tzZ
z`AIpcxy4orT$~{psS2671^GoKASHTfiNz(UMHRU@3dxCidHE#@NvR4jGf)&~C1xiU
zl_b(ZS$JwvaB5LmPHG7j%M?oT6%rLnDhpD%I6X>A3P@HNlv-GtT1<k`L8-+B`FX{u
z1RMi(h-*c1Y5_RVF~bvw+X-4wmROXTn3RL+W18!NBvRkRf`Zf{0)8h!DN>w~-~$pY
zAVDd4Zb8vCDAE!MUM4{)ia!Zt0jj3ZK@p|{=6iaEG<kLniufTRA(Nn#3b8&KI^Y_5
z*p&!e3|tKSJPhm%0*nlz8a{~TS8z#DW?s5AsCmZklbM(5SDKrYS`-4Ruo)SIeDaeM
zbHbn%I8>0OBqOt!kwMl6Pm|G_k%2WO-#xX2kwHhp2PIvCQ<ycX7$hfy9l-@}f)uke
zNHQ`Aptnre8KfB*gux!j%-8qyhpXpckY!}bBcct7=^O$L1QZPrw-V5S?q~waNwI*c
zNt1wQ5O$GJ3X!0cJb#m50SQXUatk8^TS|UFesKv0g90OC*^o?pB!m$OO34aN<USGc
z?Q2E`j+A_t)ST3kR1OAZM#e)!G8*U@VB`feJ#~SrkATt=4hA(wMu#C8pCsfJ5|oma
zN*Ec~Q}P26OOi7f8Q6<ci^?*SQ#ly47#X$<#gJuW;0n$!ElN&x%gjk-WDr3ct<nQE
z4Hy}ugG%#CGILWs^U5-dGm~;s9YNzm-~pv#Mg|@q#4ru0tx}elQ<}=iAnKWyoS#>m
zSzMBuSK^VGT9jCnoKeZnV8qD4jTG|i3?_^WLP!G8Q5kjyGe!ns6mdue%gDgvn^|0(
znU@|?S&&-Hpvb_;z|6qFz{tSFz{<eJz`(%Hz{tSPz`?-Cz{$YCV8X!6z{tSBz_pu!
zD^iGOI|JW-1_lNu20;b}1~#w^D}xXN0|O73&BY+hAObc`ltGMvi9sB!iitsjK?-gf
z$To;+GFVI##cG-y5vIvwG0hsQX^KRcri8^bAFQUS5Mi1s7SoEbnx;;KY1n+)fYme&
mB23f7;<l++Ok-xy2FJV(g8>5wn1fOU0}F#8gE50Cg9HF<q!7FS

literal 4660
zcmX^0Z`VEs1_oP(!|V)9j11Dr`FSNp`8lbjMaBBg`MJ4?c`2zusl_FZ0iNs(EQ|~a
zS&7++MJ0*)#i>PQIjJT386_nJ`W_`E1;G#jMh5O=s6H1*e?|sDpOnOWxKS>S{??2P
zY&MyBnI(3N49psuVT=qc&iN^+Tnx+%+&m2I3>@qXyo?O|Xu7x<co?`j85kJ^co<k2
z*cci3eKPY>{YrC_Qj0<olX6lS8H9ZDlM{2o5{oiHe5fExNk(QdBZI6D9*<cwGO(uP
zyQh{gGK6XP5b|J9YGG+=afvk%3X2Q!^NLfgL4M?Ntw>HSD9OyvD`sbq#1f9s;Dak;
zXOL!O5Y9?0OVrQI*Z1^?OK>pAGBU^~78K-UCMSXn)Xyr;&$CuY&PXgOPA#zw4RO=8
z;AW6#P-JINU}VrB>>r3Tc^H%!lo=WLic?FR^Ycnl^GZT03sM;wL_tAPmZ+bTn3t{}
zTvC*omu{^Y#?7G0pw7;q#>k*f*aC2X@i1sGXfiTzr>B+#B$i}&=B4E`GKgqs`hfk2
zY&yvC+B^(847!XAoaw10;YFDxsYQ$o;xNUT`T7AxnR!qNYYql|Mg~TGE(SveV|E53
zMg{?NBY7B17)%)%Sc?mCGD{d4)UkOf8q*;h4CagsoCQUh6=|7yi8&w(EO{8L7(hul
zwXifXrx-1G{FAa$lS`~MqqrDs8SL2^>=+pY5pMC!D@jdHE#hHtU~pt);3xpamuFrH
zni;Sl_5>w)XC4L@23JM~j<n3Y6sJnh6i_I5YWk#<AmypllElm$Yfz}U^DuZYcrr3@
z7N_Q=xE2-V7cnxhXn1Odfz0yeVenz_Wn|zg$uCLF2`I`;PKC(2a54BZ1hO*(ASF1Y
z@a16$VhCnrU@ZUzIY@^KDEj3YLU|a%pq7;cmn4>y7PB)%FfwQ-=jZCDB^H;Y7FFct
z=w~G+XBX$^>8B)?Bqn9%rRYP#$TzW|Ahn2#A)J95L`3s2#4yA%G6<D};yNrbr!>{E
z7!neU3~I>H1<`JeCE0*{5f5^#GRU`yJPb(;$&3u_ppbLS$zfy=f+e5QlFS@^pUmPC
zYmk;y9)>hf!e<BjFDH+YfxQTl#Tgkuw%{-BV5I>g14mIRBqK30Xc1pFfYSjiHwa-S
zK}H7V{8CU7fk>gHd{F94EXfE+EGj8xWDv%Zgc%u_GE*2C7(E#o*mA*P&d8waLqZf;
zGcxc7mn0@<`z98E%T#uT0!9Y5l>C7F;u26PP|3qk#ZV2&sX?iUDWIGx1q<rTe0`_V
zw6xTs)D(!EH9JEsBZClT`URzedLD)bhDJsP&Z5-B6mTM7WH5zBerCQt)C5RKfC~)g
zoW$Z{l(Ya%9$XAH49z?YEex%U46Ny?C7_JMtf2|cQ|&wq9Sog}3@pWoWvQV2ge^CL
z%4`l;MaIY=f=vx014l}}OKMJPNh&DC_3<$DGfZG)5QJ%S%gjp&$gHYLWMmN2@I-Pp
zBw>S#2_A+?JPeZ=rZ6&yq<~F=Rk|+VT#ZX7I73h4VVDlefPAPrL0J`ID{D%AKxqlc
zZL@h8=79XnR$7pfSdz-fz@CyHkXVwO0Sc)3JPZp!=CBrn0t%#j5f8&+h9!&)yfCkT
z)iN?jXn0}^2vA_LgBk>x$*G_uv7Cot1*ohC72dw7B^miC91N=%8JOK&L%0|i8P@PH
zh%$(AFsx%_U<vRK28(UrVJHWQZDM3#b8+=?4RHmj+`_}q0}|cF$iN&B3Rbv-hhZj2
zXcr>`Yk*^jvj<4s9v+6d3}TE7T*3LJMaijdnV|N72rMX}?H4^zNzBL~8C05Al9`(t
zmRX#cl#}Y1mzQ4xu1AX*8PqW{ZX#S-KRh)FT1kT%3}v7)ijjdw9~MN#`dSQ%42%rS
z3=9m63{0R_3IhWJI|C!AO~b&*z{$YC;Kabpz{tSBAfUCKflF&Q15f032EMHf{2Lh<
z7?>CY85kJ&!1@IlSQvyE_!$HlgcukYcp!Qhgc(G@W{Wb2F)%TRGcYi)F)%SmFi3&S
zW_-)Q!ob16z;H)LNM<L4920}~P6ic520xvh3|fo~RxG;57*^^E>1|^$uws>D-N(9w
z!Ap{r)kw%}8-vA620KYs7NZ>uHfC&ETNwC7*|sq_9cSRz5oDaQlfjLNVL3y)BnwQ&
zYa4@~jv%AnPKFSWOs*vBK9(g6X@pF0-OUglxt$@>id~XLk{xE4(>8{vZ47Zp=E=g;
zu}ZQ?vVzoYV@Lq2N&$rvGdP^m7$g}O7{nMj7{nR)86+6Q8KfAb8KfDM8DtsE7~~l2
z859`2859{p7?c>o8I&1P8B`eZ7}OXF88jFw7&I9g8MGLB8MGOuG3YSNWYA?;#GuEp
zl|i3jAA=FYK?YNXQw(Mdw;3$J;h)C91qxSa_%krvVMu4l0LRH4hD?Sm1||l6hO-RW
z3^@$U4B`w&8FCr&7+4sT8D=x&GZZkeGT1ZdGZZouF|aW-GT1^{ix^}WiWy26*cnbS
z2!dIx45bVV4C)N5{~5v=*x4Bv*%?&X8RXd+4A~j{*%`_h85n*sNd93^XZ*>aF3G?M
z$}gD7fZ-1VGXom~14A+_89?IS4;H8_k}TRg87deVgle`i)E!``u>uFNB<nVYrfm#P
z$H0+36B_9XpwI_NwdsQ50ul*2f($3YQICiXJqB(D1_o;e4h9<reg<0x2?jd`Ed~b$
zO9n><CkAH*R|Z!GKL$63NCtO?BnD4#sM<lC2@lm|c&H}BLp1~(mdp$i4Bp@{Vqwr?
zuw>|B=w^U~7C!^iKL%HD_=K}F)W|R}g31fbP+?rpzzohDt6`ynnK>q*W{x02$vFv>
zd#s@8Sdx7kL+?xmK~Q*!vVnLLmoqpZWginrCebBiDi6ejZ46Tpp&JLz>plz|489Ef
z41Nsa3;_(%41o;F48aUq3?U503}FoR4B-qO3=s_843P|h4ABhn3^5E@46zKk3~>x)
z42cYt49N@)45<vA3~3Bg8PXZ%F=Q|-WXNP##gGe*jTlfF!mt`18>`{5u^Jv5bKq%w
z3OHUsX}lep#*G=Ap(#6%L6u<!Lk<HwLnnhGR1B1|bwDZG8%N6i1M009{$${Wq;C!e
zMo=k_8IcU{p~*W67LlYSZ`3kP92D4~<UI>1c_YGI3!Lu@7&sUT8Tc8B7$g{q8MGKm
z7%Uk|8Jrl(7+e|38T=S37$O;}!C?qV(NXX)jDm+@6g&*Q!664q(N6FbZGbyP3o|f+
zYBtP(V2op621i*l@c{uz^Hyw<Y>;YzU6LJA=5v6;L6ifd%-57;1&PjsNP_}uAyPo;
z2r`^ND+lZt_!$@&>KQl~8W{K)8W|)Qni#YgS{RHNS{bYv+8A6I+8F{EIv64uIvHXZ
zx)_ofx*75qdKfAhdKsD+`oW<HNr}zyP;7>WVlzAxOW>iH4G+agXeb&n1cK8k8-q22
z2RL=IGq^C=gHs|0xQtb1VEWGx!@!AD#`?1}fC><BVGAm0RT&r=mSU@B8J;jOgRAI5
z?VSwE7#W0Cf~!v+Ep44`46Bzj#6X4DA_=cw&fp3a-iRc;c{zg~RCp_r@b={l;!xq8
zU|~+M*}D<x5>nbuV&G$#%pk%rg+Y~JD!3-IVVKU~#4v*)m|-SEB*QF*EQZ+(1q^e+
zp{f9JG(1!b;h|ax4OLJcWoKX&7ZVc`W?*923vQC^W7rRFlrS<JU|?i87|p;~%y0+*
D%u^(%

diff --git a/WEB-INF/classes/controleurs/IngredientRestAPI.class b/WEB-INF/classes/controleurs/IngredientRestAPI.class
index 988dddf397f43b80c8c0477201f253a125d97c54..e3333149754052bc583ac81864a5dc229e05885a 100644
GIT binary patch
literal 5078
zcmX^0Z`VEs1_oOOGj;|hMh4mB{JfH){G8O%qGEl|y!4{fl+4t;lAzS$62|~fb_Nzk
z27#=^vPAuy#JqHU|D>$c<Pt^(!A!VH7e{}e%;FM825Fy^#C#+pTpayf5=#=35{px<
z85!7YGV?M^>=+rCH8jH*8Cab2Q&QO(xEUGv5vIEq73CLkFz_;R+J@#8r55Msl%=L9
zB<JTAWacE6Waj576cptr<)r2oTPbjHhGe8FWabv+7nOjN=%pnVm!uX|<mM<OC+6kl
zmnbBqD!|M@QJj^Somf<oIOLRtrzQob7M10smSAzZLP@?tqC!b!K`IxgM@dNm$tr_V
z3rkarNiaGnwYVTZuQ-)}W1tRktw>HS07oHa?BH-aK?}+fi!u|Fa!`Ftb6t=u;G0-b
zkXl5*?<6QiiZc>?K!OD%C?(G=D7pqkS|Y*ABq&AkCxI+L)f74?!gOT&o`hsVg3{42
zO)eQ6<tY_nVld=VE(R_JejWyP1_4F}Q4JqN11q?sC^IkJ8q@&e_sPsl^()OyN-YWj
zRicaxLO%J)i8*1=N);-|Qj(Eb%*Y_`gSVMz&B(x-lJA~c!pNYb;e!&2;P9|U6@!$T
zU}tc_8wSPf43dlt0_g1pb_Qui24S!lGV}F4{o(347-Sil@`z|BVmgOFwT+?y;#LAW
z&>c-cIVl!UwF)8N8H8OVlwKq#CC}d^SU`eOvfRSRz?PC9kY8NF!Jxp%ST-aR9|>VZ
zf>N@A6S=2Ce5;p{fg>f~B{e6tB$b0fnUPUpNJax)1B^8#KcKXPk%2uWKOnIrIfIdb
zy*Ra~EHgQkgF%ClVareqK}H6y;QZ2}<W#rJoK!{zF^sVbJy4~=$RHh5npcvUo9dZY
zmRX#cl#}WR8XW)+CloU>@c1CQ)u39eEHS4vm61WzGcP$muQ;=~BsH(ZBQv!qu_!sC
zlAXbTk%1d2=GYmG7#W0+1facWb_Nqh24NI&NYTs4z~h@)T%4Jg9#UD5TFjuxz{tSN
zz`(%Bz{J4Hz{bG9z|O$Pz|O$Iz{tSKz`$U_z|6qNz`($@n}I7*h-W(k-+l%L1||kU
z1_lN;una4M5Ca1P517rxAj}{FHcga4jDd+k9IT3oL4rXFZW_ooh-ordOq0ZFnj8_P
z$zw6i5vys6M3|<8#k4T2rl}BN8aB5TU^PvZOw-!2nx;mCY3f*fx(JJD%nX{~nAc*^
VV*mkDP^w^HVbEtVWH4rs003?eT)Y4P

literal 4616
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
I#$tv&0MZ}^o&W#<

diff --git a/WEB-INF/classes/controleurs/PizzasRestAPI.class b/WEB-INF/classes/controleurs/PizzasRestAPI.class
index 890114179c6965f2838a5e6611cb3e5e4f18b844..b878c9bdba7b26ef96250bc0eda5b8039e151687 100644
GIT binary patch
literal 5290
zcmX^0Z`VEs1_oOO3w8!3Mh3~`{JfH){G8O%qGJ7k%&Mxy;-J*x62|~fb_Nzk27#=^
zvPAuy#JqHU|D>$c<Pt^(&H}J17e{|a27aHE#C)hW7e{|<Mg}&U%)HDJJ4Oa(4b3n{
z1{UZ1lvH*GZbk-vgh{SNMfpV>47`jSe?s$$Qj7C*%2HDllJj#5GIJ73GV}8k3X1ZR
za#C}PtrWO8Lo!koGII;^i%Jx-60;MFN)i>46Z7)&OB9k)6=1r_QI?#atCyBoT#{N;
zk()y$GpXRh@YJN>)S|MS)DkRiQYgt+NK`1PEJ)?z^e8DQAX#NlYGG+=F$qQor4|?D
z=M|?Ca111M_$C$<q!v+6DUufnx}z+yC^IoB2Q^@ZuddN(gq9oN9DyV9X%k4JsWMT4
zt^p1$<y<S0QwzZL17-z)Trdu^vWPZ`cr;9@UkQ>Hrd$kM4E#I{><j{o45Au7i1tx%
zNl|8Ax;3c%#P5@tm+DuVo0M7<0;=2?8H9ZDlM{2opp_j|kfkIevzU=V+6QNA&YF>d
zH6`CYwS<vDN5coD1OulpYg92voey>b7d+b)volCCG6;hmnwhWf=?|CTV31~Hd`U!O
z4%1=+jRh195LXe<G0bv50YBp?hiR*ek%28GKOn!jgo8njk<ooL-XXOQg>k{iz>$*g
zlA4oRlFGrL$jCT(aD*!<Igr8-K<?5E&Xzm46b&dXVP{ZbWDr0v?>QLM7#Yh3N3@~4
zZMc`3j1254`2mR~$r+3c?8T`?WtqvT91L2F3|od`d@wR_1?QI*C8xS&=A<$*2%(J3
z=z(frMh5Ai(!7$)+*HrJvdrSlq?}Yo(5MJ_0Hv6bfyW0ikN~Ru%Mx=+QyCdVJ@b<D
z^NKTzOH%VnJTg;@5{r^ED%lx~7#X;caymPM2_u6Lk^pqvfStjNkwF+m98%RVGVu6j
z78hscrH51&q!u$MGB7eQGcYhPGB7c)GO#f)Ft9T)GO#mnFfcN3GB7ZhFfcPPGB7Z3
z?PlPL6yn*=z_*`)fq{uZkb!}L4J^aVAjH7HzyoG;F$gn=fK3x+5My9s5NBXuU}0cn
zkbs*7vI}CC6c)3@v6>}A&@5RjX4zmhOP-)v3RukY!)lfi+$=T*CI)4!zEs6xS}9i3
w)X6lh1&e7c3>rk3risOEGqIS)%%Ba9a~%c)1`sd@r3VHU215p822%!Q012|LNdN!<

literal 4991
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

diff --git a/WEB-INF/src/controleurs/CommandeRestAPI.java b/WEB-INF/src/controleurs/CommandeRestAPI.java
index 3876a07..7f6c54c 100644
--- a/WEB-INF/src/controleurs/CommandeRestAPI.java
+++ b/WEB-INF/src/controleurs/CommandeRestAPI.java
@@ -52,6 +52,7 @@ public class CommandeRestAPI extends HttpServlet{
         else {
             ObjectMapper mapper = new ObjectMapper();
             out.println(mapper.writeValueAsString(commandeDAO.findAll()));
+            response.setStatus(HttpServletResponse.SC_OK);
         }
     }
 
@@ -67,8 +68,8 @@ public class CommandeRestAPI extends HttpServlet{
         }else{
             // sinon on l'ajoute à la base de données
             commandeDAO.save(commande);
-            out.println(mapper.writeValueAsString(commande));
             response.setStatus(HttpServletResponse.SC_CREATED);
+            out.println(mapper.writeValueAsString(commande));
         }
     }
 
@@ -90,6 +91,7 @@ public class CommandeRestAPI extends HttpServlet{
                     // si la pizza {pizza} n'existe pas dans la commande {id}, on renvoie une erreur 404
                     if (commandeDAO.commandeFindPizza(id, pizza)) {
                         commandeDAO.deleteCommandeDetail(id, pizza);
+                        response.setStatus(HttpServletResponse.SC_OK);
                     } else {
                         response.sendError(HttpServletResponse.SC_NOT_FOUND);
                     }
@@ -103,6 +105,7 @@ public class CommandeRestAPI extends HttpServlet{
                     response.sendError(HttpServletResponse.SC_NOT_FOUND);
                 } else {
                 commandeDAO.deleteCommande(id);
+                response.setStatus(HttpServletResponse.SC_OK);
                 }
             }
         }        
@@ -117,7 +120,7 @@ public class CommandeRestAPI extends HttpServlet{
             response.sendError(HttpServletResponse.SC_NOT_FOUND);
         } else {
             commandeDAO.update(commande);
-            out.println(mapper.writeValueAsString(commande));
+            doGet(request, response);
         }
 
     }
@@ -137,8 +140,9 @@ public class CommandeRestAPI extends HttpServlet{
         } else {
             commande.setId(id);
             commandeDAO.commandePatch(id, commande);
-            out.println(mapper.writeValueAsString(commande));
+            
             response.setStatus(HttpServletResponse.SC_OK);
+            doGet(request, response);
         }
     }
     @Override
diff --git a/WEB-INF/src/controleurs/IngredientRestAPI.java b/WEB-INF/src/controleurs/IngredientRestAPI.java
index 99c991e..fc4f27a 100644
--- a/WEB-INF/src/controleurs/IngredientRestAPI.java
+++ b/WEB-INF/src/controleurs/IngredientRestAPI.java
@@ -57,6 +57,7 @@ public class IngredientRestAPI extends HttpServlet{
         // si /ingrédients alors on renvoie la liste des ingrédients en JSON 
         else {
             ObjectMapper mapper = new ObjectMapper();
+            response.setStatus(HttpServletResponse.SC_OK);
             out.println(mapper.writeValueAsString(ingredientDAOList.findAll()));
         }
     }
@@ -102,9 +103,7 @@ public class IngredientRestAPI extends HttpServlet{
                     ingredientDAOList.delete(id);
                     //et renvoi un message  is le json de l'ingrédient supprimé
                     response.setStatus(HttpServletResponse.SC_OK);
-                    
-                    out.println("{}");
-                                      
+                                                          
                 }
             }
         }
@@ -125,14 +124,14 @@ public class IngredientRestAPI extends HttpServlet{
         } else {
             //sinon on le met à jour
             ingredientDAOList.update(ingredient);
-            //et renvoi un message  is updated
+
             response.setStatus(HttpServletResponse.SC_OK);
             out.println(mapper.writeValueAsString(ingredient));
+          
         }
     }
 
 
-    // fait un update sur un ingrédient existant en modifiant la colonne fournie dans le body de la requête au format JSON
     public void doPatch(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         response.setContentType("application/json; charset=UTF-8");
         //récupère le corps de la requête
@@ -151,7 +150,7 @@ public class IngredientRestAPI extends HttpServlet{
         } else {
             //sinon on le met à jour
             ingredientDAOList.patch(id,ingredient);
-            //et renvoi un message  is updated
+
             response.setStatus(HttpServletResponse.SC_OK);
             doGet(request, response);
         }
diff --git a/WEB-INF/src/controleurs/PizzasRestAPI.java b/WEB-INF/src/controleurs/PizzasRestAPI.java
index cb5c37f..e353e12 100644
--- a/WEB-INF/src/controleurs/PizzasRestAPI.java
+++ b/WEB-INF/src/controleurs/PizzasRestAPI.java
@@ -51,6 +51,7 @@ public class PizzasRestAPI extends HttpServlet{
             }
         } else {
             List<Pizza> pizzas = pizzasDAO.findAll();
+            response.setStatus(HttpServletResponse.SC_OK);
             out.println(mapper.writeValueAsString(pizzas));
         }            
     }
@@ -64,6 +65,7 @@ public class PizzasRestAPI extends HttpServlet{
         if (pizzasDAO.findByName(pizza.getNom()) != null){
             response.sendError(HttpServletResponse.SC_CONFLICT);
             
+            
         }else {
             pizzasDAO.save(pizza);
             out.println(mapper.writeValueAsString(pizza));
@@ -90,7 +92,6 @@ public class PizzasRestAPI extends HttpServlet{
                     }
                     else{                    
                     pizzasDAO.deletePizzaIngredient(nom, id);
-                    out.println("La relation entre la pizza et l'ingrédient a été supprimée");
                     response.setStatus(HttpServletResponse.SC_OK);
                     }
                 } else {
@@ -102,7 +103,7 @@ public class PizzasRestAPI extends HttpServlet{
                 String nom = pathInfo.substring(1);
                 if (pizzasDAO.findByName(nom) != null){
                     pizzasDAO.delete(nom);
-                    out.println("La pizza a été supprimée");
+                    response.setStatus(HttpServletResponse.SC_OK);
                 } else {
                     response.sendError(HttpServletResponse.SC_NOT_FOUND);
                 }
@@ -120,8 +121,8 @@ public class PizzasRestAPI extends HttpServlet{
         PizzaCompo pizza = mapper.readValue(request.getReader(), PizzaCompo.class);
         if (pizzasDAO.findByName(pizza.getNom()) != null){
             pizzasDAO.update(pizza);
-            out.println(mapper.writeValueAsString(pizza));
             response.setStatus(HttpServletResponse.SC_OK);
+            doGet(request, response);
         } else {
             response.sendError(HttpServletResponse.SC_NOT_FOUND);
         }
@@ -140,8 +141,8 @@ public class PizzasRestAPI extends HttpServlet{
         
         if( pizzasDAO.findByName(nom) != null){
             pizzasDAO.patchPizza(nom, pizza);
-            out.println(mapper.writeValueAsString(pizza));
             response.setStatus(HttpServletResponse.SC_OK);
+            doGet(request, response);
         } else {
             response.sendError(HttpServletResponse.SC_NOT_FOUND);
         }
diff --git a/pizzeria Antoine GAIENIER.zip b/pizzeria Antoine GAIENIER.zip
new file mode 100644
index 0000000000000000000000000000000000000000..d200e54deadd790c84a2f17acf7e40fd565cf355
GIT binary patch
literal 53552
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
HfQ|tG@;$}N

literal 0
HcmV?d00001

diff --git a/WEB-INF/pizzeria.sql b/pizzeria.sql
similarity index 95%
rename from WEB-INF/pizzeria.sql
rename to pizzeria.sql
index 5a7a403..6e30f86 100644
--- a/WEB-INF/pizzeria.sql
+++ b/pizzeria.sql
@@ -1,17 +1,17 @@
+/* Suppression des tables si elles existent*/
 Drop table if exists commande_detail cascade;
 Drop table if exists commandes cascade;
 Drop table if exists pizzas_ingredients cascade;
-
 Drop table if exists pizzas cascade;
 Drop table if exists ingredients cascade;
 
+/* Création des tables */
 CREATE TABLE ingredients(
     id int primary key,
     name text,
     price double precision 
     );
 
-
 CREATE TABLE pizzas(
     nom text primary key,
     pate text,
@@ -26,16 +26,12 @@ CREATE TABLE pizzas_ingredients(
     primary key (nom,id)   
     );
 
-
-
 CREATE TABLE commandes(
     id int primary key,
     nom text,
     date date 
     );
 
-
-
 CREATE table commande_detail(
     id int,
     nom text,
@@ -45,7 +41,6 @@ CREATE table commande_detail(
     );
 
 /* Insertion des données */
-
 insert into ingredients values (1,'pomme de terre',1);
 insert into ingredients values (3,'chorizo',2);
 insert into ingredients values (4,'lardons',2);
@@ -57,13 +52,11 @@ insert into ingredients values (8,'chevre',1.25);
 insert into ingredients values (9,'mozzarella',0.75);
 insert into ingredients values (2,'crème',2);
 
-
 insert into pizzas values ('3fromages','classique',3.25);
 insert into pizzas values ('4fromages','classique',3.75);
 insert into pizzas values ('5fromages','fine',10);
 insert into pizzas values ('6fromages','fine',10);
 
-
 insert into pizzas_ingredients values ('3fromages',10);
 insert into pizzas_ingredients values ('3fromages',7);
 insert into pizzas_ingredients values ('3fromages',8);
@@ -77,24 +70,13 @@ insert into pizzas_ingredients values ('4fromages',8);
 insert into pizzas_ingredients values ('4fromages',7);
 insert into pizzas_ingredients values ('4fromages',10);
 
-
 insert into commandes values (1,'jean machin','2024-04-01');
 insert into commandes values (2,'jean truc','2024-04-01');
 insert into commandes values (3,'jean bidule','2024-04-01');
 
-
 insert into commande_detail values (1,'3fromages');
 insert into commande_detail values (1,'4fromages');
 insert into commande_detail values (2,'3fromages');
 insert into commande_detail values (2,'4fromages');
 insert into commande_detail values (2,'6fromages');
-insert into commande_detail values (3,'3fromages');
-
-
-
-
-
-
-
-
-
+insert into commande_detail values (3,'3fromages');
\ No newline at end of file
-- 
GitLab