From f1f923cce621b43916b69c5231641f0526bea1d7 Mon Sep 17 00:00:00 2001 From: arielpetit Date: Tue, 4 Feb 2025 10:48:47 +0100 Subject: [PATCH 1/2] chore(): created the balance endpoint in the OBS --- .../webank/obs/resource/BalanceRestApi.java | 24 ++++++++++++++++++ .../webank/obs/resource/BalanceRest.java | 25 +++++++++++++++++++ .../webank/obs/dto/BalanceRequest.java | 16 ++++++++++++ .../webank/obs/service/BalanceServiceApi.java | 5 ++++ .../obs/serviceimpl/BalanceServiceImpl.java | 14 +++++++++++ 5 files changed, 84 insertions(+) create mode 100644 obs/obs-rest-api/src/main/java/com/adorsys/webank/obs/resource/BalanceRestApi.java create mode 100644 obs/obs-rest/src/main/java/com/adorsys/webank/obs/resource/BalanceRest.java create mode 100644 obs/obs-service-api/src/main/java/com/adorsys/webank/obs/dto/BalanceRequest.java create mode 100644 obs/obs-service-api/src/main/java/com/adorsys/webank/obs/service/BalanceServiceApi.java create mode 100644 obs/obs-service-impl/src/main/java/com/adorsys/webank/obs/serviceimpl/BalanceServiceImpl.java 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..93d06f1 --- /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("/obs/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..5b6cae6 --- /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("/obs/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"; + } +} From 5f433015cac942dc00b57c83f4a2b3279381c8e8 Mon Sep 17 00:00:00 2001 From: arielpetit Date: Tue, 4 Feb 2025 12:58:23 +0100 Subject: [PATCH 2/2] chore(): updated endpoint --- .../java/com/adorsys/webank/obs/resource/BalanceRestApi.java | 2 +- .../main/java/com/adorsys/webank/obs/resource/BalanceRest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 index 93d06f1..3400923 100644 --- 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 @@ -10,7 +10,7 @@ import org.springframework.web.bind.annotation.*; @Tag(name = "Balance", description = "Operations related to Balance processing") -@RequestMapping("/obs/accounts/") +@RequestMapping("/api/accounts/") public interface BalanceRestApi { @Operation(summary = "Get Balance", description = "Get the balance for a particular account") 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 index 5b6cae6..3716d6e 100644 --- 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 @@ -8,7 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired; @RestController -@RequestMapping("/obs/balance") +@RequestMapping("/api/accounts/balance") public class BalanceRest implements BalanceRestApi { private final BalanceServiceApi balanceService;