diff options
author | sowgro <tpoke.ferrari@gmail.com> | 2025-03-30 14:34:10 -0400 |
---|---|---|
committer | sowgro <tpoke.ferrari@gmail.com> | 2025-03-30 14:34:10 -0400 |
commit | 9fba1c4af3c9b5aad206ec76469c1625125ea799 (patch) | |
tree | b31f52745944cfd6159b6fcef60b19fe4c80a3dc /ufund-api/src/main/java/com/ufund/api/ufundapi/service/CupboardService.java | |
parent | f23afc7f3b0b62384b3b54a0864b02abc3b48b01 (diff) | |
parent | 0c793d302c5065085ff7982a68f7ed449d84d6dc (diff) | |
download | JellySolutions-9fba1c4af3c9b5aad206ec76469c1625125ea799.tar.gz JellySolutions-9fba1c4af3c9b5aad206ec76469c1625125ea799.tar.bz2 JellySolutions-9fba1c4af3c9b5aad206ec76469c1625125ea799.zip |
Merge remote-tracking branch 'origin/main' into list-and-cupboard-component-refactor
# Conflicts:
# ufund-api/src/main/java/com/ufund/api/ufundapi/controller/CupboardController.java
# ufund-api/src/main/java/com/ufund/api/ufundapi/model/Need.java
# ufund-ui/src/app/components/cupboard/cupboard.component.ts
# ufund-ui/src/app/components/need-list/need-list.component.ts
# ufund-ui/src/app/models/Need.ts
Diffstat (limited to 'ufund-api/src/main/java/com/ufund/api/ufundapi/service/CupboardService.java')
-rw-r--r-- | ufund-api/src/main/java/com/ufund/api/ufundapi/service/CupboardService.java | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/ufund-api/src/main/java/com/ufund/api/ufundapi/service/CupboardService.java b/ufund-api/src/main/java/com/ufund/api/ufundapi/service/CupboardService.java index d09afb4..15d1fad 100644 --- a/ufund-api/src/main/java/com/ufund/api/ufundapi/service/CupboardService.java +++ b/ufund-api/src/main/java/com/ufund/api/ufundapi/service/CupboardService.java @@ -3,6 +3,7 @@ package com.ufund.api.ufundapi.service; import java.io.IOException; import java.util.Arrays; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import com.ufund.api.ufundapi.DuplicateKeyException; @@ -13,8 +14,10 @@ import com.ufund.api.ufundapi.persistence.CupboardDAO; public class CupboardService { private final CupboardDAO cupboardDAO; + final AuthService authService; - public CupboardService(CupboardDAO cupboardDAO) { + public CupboardService(@Lazy AuthService authService, CupboardDAO cupboardDAO) { + this.authService = authService; this.cupboardDAO = cupboardDAO; } @@ -97,6 +100,23 @@ public class CupboardService { } /** + * Checks out a need with the desired amount + * + * @param id The ID of the need to update + * @param checkoutAmount The amount to update the need by + * @throws IOException If there is an error reading the file + * @throws IllegalAccessException If the user has insufficient permission + */ + public void checkoutNeed(int id, double checkoutAmount, String key) throws IOException, IllegalAccessException { + if (checkoutAmount <= 0) { + throw new IllegalArgumentException("Amount must be greater than 0"); + } + authService.keyIsValid(key); + Need need = cupboardDAO.getNeed(id); + need.incrementCurrent(checkoutAmount); + } + + /** * Delete a need from the cupboard * * @param id the ID of the need @@ -104,6 +124,7 @@ public class CupboardService { * @throws IOException Thrown on any problem removing the need */ public boolean deleteNeed(int id) throws IOException { + return cupboardDAO.deleteNeed(id); } } |