diff --git a/services/src/main/java/ch/hepia/account/AccountDatabase.java b/services/src/main/java/ch/hepia/account/AccountDatabase.java index 08c9f35e1900bae9b3ef8c05a0e28c54a80f7e2a..dae82496c9dd5530d879b233410f907548b6e3f6 100644 --- a/services/src/main/java/ch/hepia/account/AccountDatabase.java +++ b/services/src/main/java/ch/hepia/account/AccountDatabase.java @@ -29,7 +29,7 @@ public class AccountDatabase { } public void creditAnAccount(int idAccount, double amount){ - this.database.get(this.database.indexOf(getById(idAccount))).addAmount(amount); + this.database.get(this.database.indexOf(getById(idAccount).get())).addAmount(amount); } public boolean hasEnoughMoney(int idAccount, double price){ @@ -37,6 +37,7 @@ public class AccountDatabase { } public void withdrawCreditAccount(int idAccount, double credit){ - this.database.get(this.database.indexOf(getById(idAccount))).withdraw(credit); + System.out.println("ID:" + idAccount); + this.database.get(this.database.indexOf(getById(idAccount).get())).withdraw(credit); } } \ No newline at end of file diff --git a/services/src/main/java/ch/hepia/order/http.java b/services/src/main/java/ch/hepia/order/http.java index ada7dd4329ffce722c99e5bbfe79154ed62f7a2a..844e1186f535f21af735df2107128c7049bc1ce9 100644 --- a/services/src/main/java/ch/hepia/order/http.java +++ b/services/src/main/java/ch/hepia/order/http.java @@ -60,6 +60,15 @@ public class http { return name; } + @RequestMapping("/creditAccount") + public String createAccount( + @RequestParam(value = "idAccount", defaultValue = "1") int idAccount, + @RequestParam(value = "amount", defaultValue = "1") double amount) { + accountService.send(new EventCreditAnAccount(5, "Crediting account", idAccount, amount)); + return null; + } + + @RequestMapping("/createProduct") public Product createProduct(@RequestParam(value = "name", defaultValue = "poire") String name, @RequestParam(value = "price", defaultValue = "1") double price) { diff --git a/services/src/main/java/ch/hepia/stock/StockDatabase.java b/services/src/main/java/ch/hepia/stock/StockDatabase.java index 557016f5ddbf0252f65c292aa45df0832757ba0c..a0c18eab4918d9b7f9a48770c0dc99593cdecdf1 100644 --- a/services/src/main/java/ch/hepia/stock/StockDatabase.java +++ b/services/src/main/java/ch/hepia/stock/StockDatabase.java @@ -26,7 +26,7 @@ public class StockDatabase { private boolean isProductsAvailable(Map<Integer, Integer> productsToVerify){ return productsToVerify.keySet() .stream() - .anyMatch(p -> productsToVerify.get(p) > getQuantity(p)); + .allMatch(idProduct -> this.getQuantity(idProduct) >= productsToVerify.get(idProduct) ); } public double getTotalPrice(Map<Integer, Integer> productsToVerify, ProductDatabase pdb){ diff --git a/services/src/main/resources/static/demo.html b/services/src/main/resources/static/demo.html index cbeb1c2acc0e43517a65da1fc93dbbc78bd1cffe..c5b8611deb9bad317c3d074c06e243884c1f94e1 100644 --- a/services/src/main/resources/static/demo.html +++ b/services/src/main/resources/static/demo.html @@ -18,8 +18,9 @@ <p>Create a product that is an apple that costs 1.3 <a href="/createProduct?name=apple&price=1.3">/createProduct?name=apple&price=1.3</a></p> <h2>Accounts</h2> - <p>Create an account with default values <a href="/createAccount">/createAccount</a></p> + <p>Create an account with default value (name=Orphée) <a href="/createAccount">/createAccount</a></p> <p>Create an account with name Ovide <a href="/createAccount?name=Ovide">/createAccount?name=Ovide</a></p> + <p>Credit 50.- to account with id 1 <a href="/creditAccount?idAccount=1&amount=50">/creditAccount?idAccount=1&amount=50</a></p> <h2>Orders</h2> <!-- <p>Order 2 units of product with id = 1 <a href="/order?idProduct=1&quantity=2">/order?idProduct=1&quantity=2</a></p> -->