Description

Maintenant que nous avons des cubes pouvant contenir des clients, ça nous prend du café!

Le café Les 4-Fées contient plusieurs variétés de café avec des prix différents:

Café Prix
Americano 2.25$
Dark Roast 2.10$
Cappuccino 3.29$
Espresso 2.95$
Flat White 3.75$
Latte 2.95$
Macchiato 4.75$
Mocha 4.15$

Chaque client peut commander autant de café que désiré.

Les commandes sont rejetées lorsqu’elles contiennent au moins un aliment non-disponible sur le menu.

Il doit être possible d’afficher les commandes effectuées par un client durant la journée.

Les commandes doivent toutes être archivées (effacées pour l’instant) lorsque le café ferme.

Conditions de succès

# Description
1 Les clients peuvent commander différentes variétés de café en une ou plusieurs commandes.
2 Les commandes contenant des aliments qui ne sont pas sur le menu sont rejetées.
3 Il est possible d’afficher les détails de toutes les commandes d’un client.
4 Les commandes sont archivées lors de la fermeture du café (effacées pour l’instant).

API

:white_check_mark: Commander un café

Requête

PUT /customers/{CUSTOMER_ID}/orders

{
  "orders": ["Latte", "Mocha", "Espresso", "Latte"]
}

:warning: Il est possible de commander plusieurs fois pour le même client. Dans un tel cas, les commandes s’additionnent en respectant l’ordre d’arrivée.

Réponses

:arrow_right: HTTP 200 OK

:arrow_right: HTTP 400 Bad Request - Quand au moins un des aliments commandés n’est pas disponible sur le menu.

{
  "error": "INVALID_MENU_ORDER"::string,
  "description": "An item ordered is not on the menu."::string
}

:arrow_right: HTTP 404 Not Found - Quand le client n’existe pas.

{
  "error": "INVALID_CUSTOMER_ID"::string,
  "description": "The customer does not exist."::string
} 

:white_check_mark: Afficher les commandes d’un client

Requête

GET /customers/{CUSTOMER_ID}/orders

Réponses

:arrow_right: HTTP 200 Ok

{
  "orders": ["Mocha", "Macchiato", "Flat White"]
}

:warning: La liste des commandes d’un client doit être dans l’ordre commandé.

:arrow_right: HTTP 404 Not Found - Quand le client n’existe pas.

{
  "error": "INVALID_CUSTOMER_ID"::string,
  "description": "The customer does not exist."::string
}