From 2ca1b4122160937e9e1a5af1fe0a851b875937eb Mon Sep 17 00:00:00 2001 From: heikkkk <henrik.teksle.sandok@hotmail.no> Date: Fri, 3 May 2024 17:31:11 +0200 Subject: [PATCH] feat: get balance of bank account by bban --- .../bank/controller/AccountController.java | 20 +++++++++++++++++++ .../stud/savingsapp/bank/dto/BalanceDTO.java | 11 ++++++++++ 2 files changed, 31 insertions(+) create mode 100644 src/main/java/no/ntnu/idi/stud/savingsapp/bank/dto/BalanceDTO.java diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/bank/controller/AccountController.java b/src/main/java/no/ntnu/idi/stud/savingsapp/bank/controller/AccountController.java index 9ffad90..629c34e 100644 --- a/src/main/java/no/ntnu/idi/stud/savingsapp/bank/controller/AccountController.java +++ b/src/main/java/no/ntnu/idi/stud/savingsapp/bank/controller/AccountController.java @@ -7,8 +7,10 @@ import java.util.List; import lombok.extern.slf4j.Slf4j; import no.ntnu.idi.stud.savingsapp.bank.dto.AccountRequestDTO; import no.ntnu.idi.stud.savingsapp.bank.dto.AccountResponseDTO; +import no.ntnu.idi.stud.savingsapp.bank.dto.BalanceDTO; import no.ntnu.idi.stud.savingsapp.bank.model.Account; import no.ntnu.idi.stud.savingsapp.bank.service.AccountService; +import org.modelmapper.ModelMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.http.ResponseEntity; @@ -31,6 +33,9 @@ public class AccountController { @Autowired private AccountService accountService; + @Autowired + private ModelMapper modelMapper; + @Operation(summary = "Get user accounts", description = "Get accounts associated with a user by" + " providing their bank profile id") @ApiResponses(value = { @@ -65,6 +70,21 @@ public class AccountController { return ResponseEntity.ok(accounts); } + @Operation(summary = "Get user accounts", description = "Get accounts associated with a user by" + + " providing their social security number") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Successfully got accounts"), + @ApiResponse(responseCode = "200", description = "No accounts associated with a bank user"), + @ApiResponse(responseCode = "404", description = "Social security number does not exist") + }) + @GetMapping("/balance/{bban}") + public ResponseEntity<BalanceDTO> getAccountsByBBAN(@PathVariable Long bban) { + log.info("[AccountController:getAccountsByBBAN] bban: {}", bban); + Account account = accountService.getAccountByBban(bban); + BalanceDTO balanceDTO = modelMapper.map(account, BalanceDTO.class); + return ResponseEntity.ok(balanceDTO); + } + @Operation(summary = "Create account", description = "Create account with random balance") @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Successfully created account"), diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/bank/dto/BalanceDTO.java b/src/main/java/no/ntnu/idi/stud/savingsapp/bank/dto/BalanceDTO.java new file mode 100644 index 0000000..76f30eb --- /dev/null +++ b/src/main/java/no/ntnu/idi/stud/savingsapp/bank/dto/BalanceDTO.java @@ -0,0 +1,11 @@ +package no.ntnu.idi.stud.savingsapp.bank.dto; + +import java.math.BigDecimal; +import lombok.Data; + +@Data +public final class BalanceDTO { + + private Long bban; + private BigDecimal balance; +} -- GitLab