diff --git a/obs/obs-rest-api/src/main/java/com/adorsys/webank/obs/resource/BalanceRestApi.java b/obs/obs-rest-api/src/main/java/com/adorsys/webank/obs/resource/BalanceRestApi.java new file mode 100644 index 0000000..3400923 --- /dev/null +++ b/obs/obs-rest-api/src/main/java/com/adorsys/webank/obs/resource/BalanceRestApi.java @@ -0,0 +1,24 @@ +package com.adorsys.webank.obs.resource; + + +import com.adorsys.webank.obs.dto.BalanceRequest; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.http.HttpHeaders; +import org.springframework.web.bind.annotation.*; + +@Tag(name = "Balance", description = "Operations related to Balance processing") +@RequestMapping("/api/accounts/") +public interface BalanceRestApi { + + @Operation(summary = "Get Balance", description = "Get the balance for a particular account") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Balance successfully retrieved"), + @ApiResponse(responseCode = "400", description = "Invalid request to get Balance") + }) + @PostMapping(value = "/balance", consumes = "application/json", produces = "application/json") + String getBalance(@RequestHeader(HttpHeaders.AUTHORIZATION) String authorizationHeader, @RequestBody BalanceRequest request); + +} diff --git a/obs/obs-rest/src/main/java/com/adorsys/webank/obs/resource/BalanceRest.java b/obs/obs-rest/src/main/java/com/adorsys/webank/obs/resource/BalanceRest.java new file mode 100644 index 0000000..3716d6e --- /dev/null +++ b/obs/obs-rest/src/main/java/com/adorsys/webank/obs/resource/BalanceRest.java @@ -0,0 +1,25 @@ +package com.adorsys.webank.obs.resource; + +import com.adorsys.webank.obs.dto.BalanceRequest; +import com.adorsys.webank.obs.service.BalanceServiceApi; +import org.springframework.http.HttpHeaders; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; + +@RestController +@RequestMapping("/api/accounts/balance") +public class BalanceRest implements BalanceRestApi { + + private final BalanceServiceApi balanceService; + + @Autowired + public BalanceRest(BalanceServiceApi balanceService) { + this.balanceService = balanceService; + } + + @Override + public String getBalance( String authorizationHeader, BalanceRequest request) { + return balanceService.getBalance(request.getAccountID()); + } +} diff --git a/obs/obs-service-api/src/main/java/com/adorsys/webank/obs/dto/BalanceRequest.java b/obs/obs-service-api/src/main/java/com/adorsys/webank/obs/dto/BalanceRequest.java new file mode 100644 index 0000000..a7fa915 --- /dev/null +++ b/obs/obs-service-api/src/main/java/com/adorsys/webank/obs/dto/BalanceRequest.java @@ -0,0 +1,16 @@ +package com.adorsys.webank.obs.dto; + +public class BalanceRequest { + private String accountID; + + + // Getters and Setters + public String getAccountID() { + return accountID; + } + + public void setAccountID(String accountID) { + this.accountID = accountID; + } + +} diff --git a/obs/obs-service-api/src/main/java/com/adorsys/webank/obs/service/BalanceServiceApi.java b/obs/obs-service-api/src/main/java/com/adorsys/webank/obs/service/BalanceServiceApi.java new file mode 100644 index 0000000..a9df166 --- /dev/null +++ b/obs/obs-service-api/src/main/java/com/adorsys/webank/obs/service/BalanceServiceApi.java @@ -0,0 +1,5 @@ +package com.adorsys.webank.obs.service; + +public interface BalanceServiceApi { + String getBalance(String accountID); +} diff --git a/obs/obs-service-impl/src/main/java/com/adorsys/webank/obs/serviceimpl/BalanceServiceImpl.java b/obs/obs-service-impl/src/main/java/com/adorsys/webank/obs/serviceimpl/BalanceServiceImpl.java new file mode 100644 index 0000000..a64fe87 --- /dev/null +++ b/obs/obs-service-impl/src/main/java/com/adorsys/webank/obs/serviceimpl/BalanceServiceImpl.java @@ -0,0 +1,14 @@ +package com.adorsys.webank.obs.serviceimpl; + +import com.adorsys.webank.obs.service.BalanceServiceApi; +import org.springframework.stereotype.Service; + +@Service +public class BalanceServiceImpl implements BalanceServiceApi { + + @Override + public String getBalance(String accountID) { + // Mock implementation: Replace with actual logic to retrieve balance + return "1000.00"; + } +}