From 92df832b481df4e188cae1365ff353c6dce15a3f Mon Sep 17 00:00:00 2001 From: Alexander Date: Thu, 14 Apr 2022 10:47:19 +0300 Subject: [PATCH] feature: add bank account request dto validation --- .../bankAccount/delivery/BankAccountController.java | 9 +++++---- .../bankAccount/dto/ChangeAddressRequestDTO.java | 5 ++++- .../bankAccount/dto/ChangeEmailRequestDTO.java | 6 +++++- .../bankAccount/dto/CreateBankAccountRequestDTO.java | 10 +++++++--- .../bankAccount/dto/DepositAmountRequestDTO.java | 4 +++- 5 files changed, 24 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/eventsourcing/bankAccount/delivery/BankAccountController.java b/src/main/java/com/eventsourcing/bankAccount/delivery/BankAccountController.java index 152d4e6..8806a54 100644 --- a/src/main/java/com/eventsourcing/bankAccount/delivery/BankAccountController.java +++ b/src/main/java/com/eventsourcing/bankAccount/delivery/BankAccountController.java @@ -11,6 +11,7 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import javax.validation.Valid; import java.util.UUID; @RestController @@ -32,7 +33,7 @@ public class BankAccountController { } @PostMapping - public ResponseEntity createBankAccount(@RequestBody CreateBankAccountRequestDTO dto) { + public ResponseEntity createBankAccount(@Valid @RequestBody CreateBankAccountRequestDTO dto) { final var aggregateID = UUID.randomUUID().toString(); final var command = new CreateBankAccountCommand(aggregateID, dto.email(), dto.userName(), dto.address()); final var id = commandService.handle(command); @@ -41,7 +42,7 @@ public class BankAccountController { } @PostMapping(path = "/deposit/{aggregateId}") - public ResponseEntity depositAmount(@RequestBody DepositAmountRequestDTO dto, @PathVariable String aggregateId) { + public ResponseEntity depositAmount(@Valid @RequestBody DepositAmountRequestDTO dto, @PathVariable String aggregateId) { final var command = new DepositAmountCommand(aggregateId, dto.amount()); commandService.handle(command); log.info("DepositAmountCommand command: {}", command); @@ -49,7 +50,7 @@ public class BankAccountController { } @PostMapping(path = "/email/{aggregateId}") - public ResponseEntity changeEmail(@RequestBody ChangeEmailRequestDTO dto, @PathVariable String aggregateId) { + public ResponseEntity changeEmail(@Valid @RequestBody ChangeEmailRequestDTO dto, @PathVariable String aggregateId) { final var command = new ChangeEmailCommand(aggregateId, dto.newEmail()); commandService.handle(command); log.info("ChangeEmailCommand command: {}", command); @@ -57,7 +58,7 @@ public class BankAccountController { } @PostMapping(path = "/address/{aggregateId}") - public ResponseEntity changeAddress(@RequestBody ChangeAddressRequestDTO dto, @PathVariable String aggregateId) { + public ResponseEntity changeAddress(@Valid @RequestBody ChangeAddressRequestDTO dto, @PathVariable String aggregateId) { final var command = new ChangeAddressCommand(aggregateId, dto.newAddress()); commandService.handle(command); log.info("changeAddress command: {}", command); diff --git a/src/main/java/com/eventsourcing/bankAccount/dto/ChangeAddressRequestDTO.java b/src/main/java/com/eventsourcing/bankAccount/dto/ChangeAddressRequestDTO.java index d017574..49759c7 100644 --- a/src/main/java/com/eventsourcing/bankAccount/dto/ChangeAddressRequestDTO.java +++ b/src/main/java/com/eventsourcing/bankAccount/dto/ChangeAddressRequestDTO.java @@ -1,4 +1,7 @@ package com.eventsourcing.bankAccount.dto; -public record ChangeAddressRequestDTO(String newAddress) { +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; + +public record ChangeAddressRequestDTO(@NotBlank @Size(min = 10, max = 250) String newAddress) { } diff --git a/src/main/java/com/eventsourcing/bankAccount/dto/ChangeEmailRequestDTO.java b/src/main/java/com/eventsourcing/bankAccount/dto/ChangeEmailRequestDTO.java index 4e2be91..bf54a58 100644 --- a/src/main/java/com/eventsourcing/bankAccount/dto/ChangeEmailRequestDTO.java +++ b/src/main/java/com/eventsourcing/bankAccount/dto/ChangeEmailRequestDTO.java @@ -1,4 +1,8 @@ package com.eventsourcing.bankAccount.dto; -public record ChangeEmailRequestDTO(String newEmail) { +import javax.validation.constraints.Email; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; + +public record ChangeEmailRequestDTO(@Email @NotBlank @Size(min = 10, max = 250) String newEmail) { } diff --git a/src/main/java/com/eventsourcing/bankAccount/dto/CreateBankAccountRequestDTO.java b/src/main/java/com/eventsourcing/bankAccount/dto/CreateBankAccountRequestDTO.java index 097c08e..08fdcc7 100644 --- a/src/main/java/com/eventsourcing/bankAccount/dto/CreateBankAccountRequestDTO.java +++ b/src/main/java/com/eventsourcing/bankAccount/dto/CreateBankAccountRequestDTO.java @@ -1,7 +1,11 @@ package com.eventsourcing.bankAccount.dto; +import javax.validation.constraints.Email; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; + public record CreateBankAccountRequestDTO( - String email, - String address, - String userName) { + @Email @NotBlank @Size(min = 10, max = 250) String email, + @NotBlank @Size(min = 10, max = 250) String address, + @NotBlank @Size(min = 10, max = 250) String userName) { } diff --git a/src/main/java/com/eventsourcing/bankAccount/dto/DepositAmountRequestDTO.java b/src/main/java/com/eventsourcing/bankAccount/dto/DepositAmountRequestDTO.java index 499d0b1..1fc73d6 100644 --- a/src/main/java/com/eventsourcing/bankAccount/dto/DepositAmountRequestDTO.java +++ b/src/main/java/com/eventsourcing/bankAccount/dto/DepositAmountRequestDTO.java @@ -1,6 +1,8 @@ package com.eventsourcing.bankAccount.dto; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; import java.math.BigDecimal; -public record DepositAmountRequestDTO(BigDecimal amount) { +public record DepositAmountRequestDTO(@Min(value = 300, message = "minimal amount is 300") @NotNull BigDecimal amount) { } \ No newline at end of file