Description

Il est possible d’ajouter des ingrédients à l’inventaire du café.

Toutes les quantités d’ingrédients sont calculées en millilitres (ml).

Les recettes de café, qu’un client peut commander, nécessitent une liste d’ingrédients.

Lorsqu’un client effectue une commande, les ingrédients requis pour préparer les cafés de la commande sont retirés de l’inventaire.

Lorsque l’inventaire du café n’a pas assez d’ingrédients pour répondre à une commande, elle est rejetée sans qu’aucun ingrédient ne soit consommé.

L’inventaire est vidé de tous ses ingrédients lors de la fermeture du café.

Ingrédients

Ingredients
Chocolate
Espresso
Milk
Water

Recettes

Café Ingrédients
Americano 50 espresso + 50 water.
Dark Roast 40 espresso + 40 water + 10 chocolate + 10 milk.
Cappuccino 50 espresso + 40 water + 10 milk.
Espresso 60 espresso.
Flat White 50 espresso + 50 milk.
Latte 50 espresso + 50 milk.
Macchiato 80 espresso + 20 milk.
Mocha 50 espresso + 40 milk + 10 chocolate.

Notes: Toutes les quantités d’ingrédients sont mesurées en millilitres (ml).

Conditions de succès

# Description
1 Il est possible d’ajouter des ingrédients de plus à l’inventaire courant.
2 Les quantités d’ingrédients sont en millilitres (ml).
3 Lorsqu’un client effectue une commande, les ingrédients nécessaires à la recette sont retirés de l’inventaire du café.
4 Les commandes sont rejetées lorsque le café n’a pas tous les ingrédients nécessaires pour l’entièreté de la commande.
5 Les commandes rejetées ne sont pas facturées.
6 Les commandes rejetées ne modifient pas l’inventaire.
7 La fermeture du café retire tous les ingrédients de son inventaire.
8 Une quantité dans l’inventaire courant ne doit jamais être plus petite que zéro.

API

:white_check_mark: Ajout d’ingrédients à l’inventaire.

Requête

PUT /inventory

{
  "Chocolate": 0:int,
  "Espresso": 0:int,
  "Milk": 0:int,
  "Water": 0:int
}

Note: Tous les ingrédients doivent être présents dans le JSON à chaque ajout à l’inventaire (0 pour aucun ajout).

Réponses

:arrow_right: HTTP 200 Ok

:white_check_mark: Afficher les ingrédients de l’inventaire.

Requête

GET /inventory

{
  "Chocolate": 0:int,
  "Espresso": 0:int,
  "Milk": 0:int,
  "Water": 10:int
}

Réponses

:arrow_right: HTTP 200 Ok

:white_check_mark: MISE-À-JOUR - Commander un café

Requête

PUT /customers/{CUSTOMER_ID}/orders

{
  "orders": ["Latte"]
}

Réponses

:arrow_right: NOUVEAU: HTTP 400 Bad Request - Lorsque le café n’a pas tous les ingrédients nécessaires pour compléter la commande.

{
  "error": "INSUFFICIENT_INGREDIENTS"::string,
  "description": "We lack the necessary number of ingredients to fulfill your order."::string
}