diff --git a/src/main/java/com/socialmedia/controller/BalanceController.java b/src/main/java/com/socialmedia/controller/BalanceController.java index c54ee45..af3bcd2 100644 --- a/src/main/java/com/socialmedia/controller/BalanceController.java +++ b/src/main/java/com/socialmedia/controller/BalanceController.java @@ -1,8 +1,8 @@ package com.socialmedia.controller; import java.util.List; - import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import com.socialmedia.model.Balance; import com.socialmedia.service.BalanceService; @@ -22,5 +22,17 @@ public Balance createBalance(@RequestBody Balance balanceRequest) { public List getAllBalances() { return balanceService.findAllBalances(); } + + //@PathVariable long id extracts id from URL and pass it to method. + @GetMapping("/{id}") + public Balance getBalance(@PathVariable("id")Long id) { + return balanceService.findBalanceById(id); + } + + + @PutMapping("/{id}") + public Balance updateBalance(@PathVariable("id") Long id, @RequestBody Balance balanceRequest) { + return balanceService.updateBalance(id, balanceRequest); + } } diff --git a/src/main/java/com/socialmedia/repository/BalanceRepository.java b/src/main/java/com/socialmedia/repository/BalanceRepository.java index 43cab16..b252451 100644 --- a/src/main/java/com/socialmedia/repository/BalanceRepository.java +++ b/src/main/java/com/socialmedia/repository/BalanceRepository.java @@ -24,7 +24,23 @@ public Balance save(Balance balance) { public List findAll() { return new ArrayList<>(balanceMap.values()); } - + + //fetch the balance with that id + public Balance findById(Long id) { + return balanceMap.get(id); + } + + public Balance update(Long id, Balance balance) { + Balance existing = balanceMap.get(id); + if (existing != null) { + existing.setAccountHolder(balance.getAccountHolder()); + existing.setAmount(balance.getAmount()); + balanceMap.put(id, existing); + return existing; + } + return null; + } + } diff --git a/src/main/java/com/socialmedia/service/BalanceService.java b/src/main/java/com/socialmedia/service/BalanceService.java index 73fbbc8..5153e76 100644 --- a/src/main/java/com/socialmedia/service/BalanceService.java +++ b/src/main/java/com/socialmedia/service/BalanceService.java @@ -19,8 +19,14 @@ public Balance create(Balance balance) { public List findAllBalances() { return balanceRepository.findAll(); - } + public Balance findBalanceById(Long id) { + return balanceRepository.findById(id); + } + public Balance updateBalance(Long id, Balance balance) { + return balanceRepository.update(id, balance); + } + }