diff --git a/pom.xml b/pom.xml
index f70523c..14303fe 100644
--- a/pom.xml
+++ b/pom.xml
@@ -18,6 +18,13 @@
2023.0.1
+
+
+ org.springdoc
+ springdoc-openapi-starter-webmvc-ui
+ 2.5.0
+
+
org.springframework.boot
spring-boot-starter-data-jpa
diff --git a/src/main/java/tech/buildrun/picpay/PicpayApplication.java b/src/main/java/tech/buildrun/picpay/PicpayApplication.java
index f407133..fe3a433 100644
--- a/src/main/java/tech/buildrun/picpay/PicpayApplication.java
+++ b/src/main/java/tech/buildrun/picpay/PicpayApplication.java
@@ -4,8 +4,12 @@
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
+import io.swagger.v3.oas.annotations.OpenAPIDefinition;
+import io.swagger.v3.oas.annotations.info.Info;
+
@EnableFeignClients
@SpringBootApplication
+@OpenAPIDefinition(info = @Info(title = "Swagger OpenApi", version = "1", description = "API de integração Rest-Client"))
public class PicpayApplication {
public static void main(String[] args) {
diff --git a/src/main/java/tech/buildrun/picpay/controller/TransferController.java b/src/main/java/tech/buildrun/picpay/controller/TransferController.java
index af2d77e..eb82847 100644
--- a/src/main/java/tech/buildrun/picpay/controller/TransferController.java
+++ b/src/main/java/tech/buildrun/picpay/controller/TransferController.java
@@ -1,8 +1,12 @@
package tech.buildrun.picpay.controller;
-import feign.Response;
import jakarta.validation.Valid;
+
+import java.util.List;
+import java.util.UUID;
+
import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@@ -21,9 +25,16 @@ public TransferController(TransferService transferService) {
@PostMapping("/transfer")
public ResponseEntity transfer(@RequestBody @Valid TransferDto dto) {
+ return ResponseEntity.ok(transferService.transfer(dto));
+ }
- var resp = transferService.transfer(dto);
+ @GetMapping("/transfer/{uuid}")
+ public ResponseEntity getTransfer( UUID uuid) {
+ return ResponseEntity.ok(transferService.getTransfer(uuid));
+ }
- return ResponseEntity.ok(resp);
+ @GetMapping("/transfer")
+ public ResponseEntity> getListTransfer() {
+ return ResponseEntity.ok(transferService.getListTransfer());
}
}
diff --git a/src/main/java/tech/buildrun/picpay/exception/InsufficientBalanceException.java b/src/main/java/tech/buildrun/picpay/exception/InsufficientBalanceException.java
index b7e35b7..791e627 100644
--- a/src/main/java/tech/buildrun/picpay/exception/InsufficientBalanceException.java
+++ b/src/main/java/tech/buildrun/picpay/exception/InsufficientBalanceException.java
@@ -7,6 +7,7 @@ public class InsufficientBalanceException extends PicPayException{
@Override
public ProblemDetail toProblemDetail() {
+
var pb = ProblemDetail.forStatus(HttpStatus.UNPROCESSABLE_ENTITY);
pb.setTitle("Insufficient balance.");
diff --git a/src/main/java/tech/buildrun/picpay/exception/TransferNotAllowedForWalletTypeException.java b/src/main/java/tech/buildrun/picpay/exception/TransferNotAllowedForWalletTypeException.java
index 35e3c3c..ea9260a 100644
--- a/src/main/java/tech/buildrun/picpay/exception/TransferNotAllowedForWalletTypeException.java
+++ b/src/main/java/tech/buildrun/picpay/exception/TransferNotAllowedForWalletTypeException.java
@@ -7,8 +7,8 @@ public class TransferNotAllowedForWalletTypeException extends PicPayException {
@Override
public ProblemDetail toProblemDetail() {
+
var pb = ProblemDetail.forStatus(HttpStatus.UNPROCESSABLE_ENTITY);
-
pb.setTitle("This wallet type is not allowed to transfer.");
return pb;
diff --git a/src/main/java/tech/buildrun/picpay/exception/TransferNotAuthorizedException.java b/src/main/java/tech/buildrun/picpay/exception/TransferNotAuthorizedException.java
index d5cc361..cd5a2ae 100644
--- a/src/main/java/tech/buildrun/picpay/exception/TransferNotAuthorizedException.java
+++ b/src/main/java/tech/buildrun/picpay/exception/TransferNotAuthorizedException.java
@@ -7,6 +7,7 @@ public class TransferNotAuthorizedException extends PicPayException{
@Override
public ProblemDetail toProblemDetail() {
+
var pb = ProblemDetail.forStatus(HttpStatus.UNPROCESSABLE_ENTITY);
pb.setTitle("Transfer not authorized.");
diff --git a/src/main/java/tech/buildrun/picpay/exception/TransferNotFoundException.java b/src/main/java/tech/buildrun/picpay/exception/TransferNotFoundException.java
new file mode 100644
index 0000000..bbad9b9
--- /dev/null
+++ b/src/main/java/tech/buildrun/picpay/exception/TransferNotFoundException.java
@@ -0,0 +1,26 @@
+package tech.buildrun.picpay.exception;
+
+import java.util.UUID;
+
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ProblemDetail;
+
+public class TransferNotFoundException extends PicPayException{
+
+ private UUID uuid;
+
+ public TransferNotFoundException(UUID uuid) {
+ this.uuid = uuid;
+ }
+
+ @Override
+ public ProblemDetail toProblemDetail() {
+
+ var pb = ProblemDetail.forStatus(HttpStatus.UNPROCESSABLE_ENTITY);
+
+ pb.setTitle("Transfer not found");
+ pb.setDetail("There is no Transfer with id " + uuid + ".");
+
+ return pb;
+ }
+}
diff --git a/src/main/java/tech/buildrun/picpay/exception/WalletDataAlreadyExistsException.java b/src/main/java/tech/buildrun/picpay/exception/WalletDataAlreadyExistsException.java
index 3bed7eb..a06b83c 100644
--- a/src/main/java/tech/buildrun/picpay/exception/WalletDataAlreadyExistsException.java
+++ b/src/main/java/tech/buildrun/picpay/exception/WalletDataAlreadyExistsException.java
@@ -13,6 +13,7 @@ public WalletDataAlreadyExistsException(String detail) {
@Override
public ProblemDetail toProblemDetail() {
+
var pb = ProblemDetail.forStatus(HttpStatus.UNPROCESSABLE_ENTITY);
pb.setTitle("Wallet data already exists");
diff --git a/src/main/java/tech/buildrun/picpay/exception/WalletNotFoundException.java b/src/main/java/tech/buildrun/picpay/exception/WalletNotFoundException.java
index e7fd1d9..24792f7 100644
--- a/src/main/java/tech/buildrun/picpay/exception/WalletNotFoundException.java
+++ b/src/main/java/tech/buildrun/picpay/exception/WalletNotFoundException.java
@@ -13,6 +13,7 @@ public WalletNotFoundException(Long walletId) {
@Override
public ProblemDetail toProblemDetail() {
+
var pb = ProblemDetail.forStatus(HttpStatus.UNPROCESSABLE_ENTITY);
pb.setTitle("Wallet not found");
diff --git a/src/main/java/tech/buildrun/picpay/repository/TransferRepository.java b/src/main/java/tech/buildrun/picpay/repository/TransferRepository.java
index 02358c3..fe46018 100644
--- a/src/main/java/tech/buildrun/picpay/repository/TransferRepository.java
+++ b/src/main/java/tech/buildrun/picpay/repository/TransferRepository.java
@@ -3,7 +3,12 @@
import org.springframework.data.jpa.repository.JpaRepository;
import tech.buildrun.picpay.entity.Transfer;
+import java.util.Optional;
import java.util.UUID;
public interface TransferRepository extends JpaRepository {
+
+ Transfer findFirstByOrderByIdDesc();
+
+ Optional findById(UUID uuid);
}
diff --git a/src/main/java/tech/buildrun/picpay/service/TransferService.java b/src/main/java/tech/buildrun/picpay/service/TransferService.java
index 9bf6a8f..8a2f73b 100644
--- a/src/main/java/tech/buildrun/picpay/service/TransferService.java
+++ b/src/main/java/tech/buildrun/picpay/service/TransferService.java
@@ -8,10 +8,13 @@
import tech.buildrun.picpay.exception.InsufficientBalanceException;
import tech.buildrun.picpay.exception.TransferNotAllowedForWalletTypeException;
import tech.buildrun.picpay.exception.TransferNotAuthorizedException;
+import tech.buildrun.picpay.exception.TransferNotFoundException;
import tech.buildrun.picpay.exception.WalletNotFoundException;
import tech.buildrun.picpay.repository.TransferRepository;
import tech.buildrun.picpay.repository.WalletRepository;
+import java.util.List;
+import java.util.UUID;
import java.util.concurrent.CompletableFuture;
@Service
@@ -72,4 +75,13 @@ private void validateTransfer(TransferDto transferDto, Wallet sender) {
}
}
+
+ public Transfer getTransfer( UUID uuid) {
+ return transferRepository.findById(uuid)
+ .orElseThrow(() -> new TransferNotFoundException(uuid));
+ }
+
+ public List getListTransfer() {
+ return transferRepository.findAll();
+ }
}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index bfd57e0..c703ddc 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -9,5 +9,3 @@ spring.jpa.show-sql=true
client.authorization-service.url=https://run.mocky.io/v3/94b33905-b531-44b5-900d-0bbff13cbaa0
client.notification-service.url=https://run.mocky.io/v3/0a8ce973-1f03-44f1-bfe3-21544c300ed0
-
-