From 4b9e41e4fa5a713d946cc03c21ed5de9bfba96c6 Mon Sep 17 00:00:00 2001 From: Fernando Ferreira de Lima Filho <fferreiralf@ufrn.edu.br> Date: Sun, 29 May 2022 18:47:25 -0300 Subject: [PATCH] fix: exception flux --- .../controller/AuthenticatorController.java | 3 +- .../exception/BadRequestException.java | 12 ++ .../exception/BadRequestExceptionDetails.java | 16 +++ .../exception/RestExceptionHandler.java | 24 ++++ .../service/AuthenticatorService.java | 7 +- .../exception/BadRequestException.java | 12 ++ .../exception/BadRequestExceptionDetails.java | 16 +++ .../exception/RestExceptionHandler.java | 24 ++++ .../imd/balance/service/BalanceService.java | 11 +- .../imd/balance/service/BalanceService.class | Bin 2588 -> 2591 bytes .../target/maven-archiver/pom.properties | 2 +- .../compile/default-compile/createdFiles.lst | 16 ++- .../compile/default-compile/inputFiles.lst | 15 +- .../default-testCompile/createdFiles.lst | 2 +- .../default-testCompile/inputFiles.lst | 2 +- .../client/exception/BadRequestException.java | 12 ++ .../exception/BadRequestExceptionDetails.java | 16 +++ .../exception/RestExceptionHandler.java | 24 ++++ .../ufrn/imd/client/utils/MachineState.java | 130 ++++++++++-------- .../target/maven-archiver/pom.properties | 2 +- .../compile/default-compile/createdFiles.lst | 12 +- .../compile/default-compile/inputFiles.lst | 12 +- .../default-testCompile/createdFiles.lst | 2 +- .../default-testCompile/inputFiles.lst | 2 +- .../target/maven-archiver/pom.properties | 2 +- .../compile/default-compile/createdFiles.lst | 12 +- .../compile/default-compile/inputFiles.lst | 12 +- .../default-testCompile/createdFiles.lst | 2 +- .../default-testCompile/inputFiles.lst | 2 +- .../target/maven-archiver/pom.properties | 2 +- .../compile/default-compile/createdFiles.lst | 12 +- .../compile/default-compile/inputFiles.lst | 12 +- .../default-testCompile/createdFiles.lst | 2 +- .../default-testCompile/inputFiles.lst | 2 +- 34 files changed, 310 insertions(+), 124 deletions(-) create mode 100644 WebServices/authenticator/src/main/java/br/ufrn/imd/authenticator/exception/BadRequestException.java create mode 100644 WebServices/authenticator/src/main/java/br/ufrn/imd/authenticator/exception/BadRequestExceptionDetails.java create mode 100644 WebServices/authenticator/src/main/java/br/ufrn/imd/authenticator/exception/RestExceptionHandler.java create mode 100644 WebServices/balance/src/main/java/br/ufrn/imd/balance/exception/BadRequestException.java create mode 100644 WebServices/balance/src/main/java/br/ufrn/imd/balance/exception/BadRequestExceptionDetails.java create mode 100644 WebServices/balance/src/main/java/br/ufrn/imd/balance/exception/RestExceptionHandler.java create mode 100644 WebServices/client/src/main/java/br/ufrn/imd/client/exception/BadRequestException.java create mode 100644 WebServices/client/src/main/java/br/ufrn/imd/client/exception/BadRequestExceptionDetails.java create mode 100644 WebServices/client/src/main/java/br/ufrn/imd/client/exception/RestExceptionHandler.java diff --git a/WebServices/authenticator/src/main/java/br/ufrn/imd/authenticator/controller/AuthenticatorController.java b/WebServices/authenticator/src/main/java/br/ufrn/imd/authenticator/controller/AuthenticatorController.java index a2eb5d5..230fefe 100644 --- a/WebServices/authenticator/src/main/java/br/ufrn/imd/authenticator/controller/AuthenticatorController.java +++ b/WebServices/authenticator/src/main/java/br/ufrn/imd/authenticator/controller/AuthenticatorController.java @@ -16,8 +16,7 @@ public class AuthenticatorController { private final AuthenticatorService service; @PostMapping - @ResponseStatus(HttpStatus.OK) - public Client authenticate(@RequestBody CredentialsMessage credentials) throws AuthException { + public Client authenticate(@RequestBody CredentialsMessage credentials) { return service.authenticate(credentials.getNumber(), credentials.getPassword()); } } diff --git a/WebServices/authenticator/src/main/java/br/ufrn/imd/authenticator/exception/BadRequestException.java b/WebServices/authenticator/src/main/java/br/ufrn/imd/authenticator/exception/BadRequestException.java new file mode 100644 index 0000000..09b5277 --- /dev/null +++ b/WebServices/authenticator/src/main/java/br/ufrn/imd/authenticator/exception/BadRequestException.java @@ -0,0 +1,12 @@ +package br.ufrn.imd.authenticator.exception; + +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ResponseStatus; + +@ResponseStatus(HttpStatus.BAD_REQUEST) +public class BadRequestException extends RuntimeException{ + + public BadRequestException(String message) { + super(message); + } +} diff --git a/WebServices/authenticator/src/main/java/br/ufrn/imd/authenticator/exception/BadRequestExceptionDetails.java b/WebServices/authenticator/src/main/java/br/ufrn/imd/authenticator/exception/BadRequestExceptionDetails.java new file mode 100644 index 0000000..99b5002 --- /dev/null +++ b/WebServices/authenticator/src/main/java/br/ufrn/imd/authenticator/exception/BadRequestExceptionDetails.java @@ -0,0 +1,16 @@ +package br.ufrn.imd.authenticator.exception; + +import lombok.Builder; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +@Builder +public class BadRequestExceptionDetails { + private String title; + private int status; + private String details; + private String developerMessage; + private LocalDateTime timestamp; +} diff --git a/WebServices/authenticator/src/main/java/br/ufrn/imd/authenticator/exception/RestExceptionHandler.java b/WebServices/authenticator/src/main/java/br/ufrn/imd/authenticator/exception/RestExceptionHandler.java new file mode 100644 index 0000000..e714d99 --- /dev/null +++ b/WebServices/authenticator/src/main/java/br/ufrn/imd/authenticator/exception/RestExceptionHandler.java @@ -0,0 +1,24 @@ +package br.ufrn.imd.authenticator.exception; + +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; + +import java.time.LocalDateTime; + +@ControllerAdvice +public class RestExceptionHandler { + @ExceptionHandler(BadRequestException.class) + public ResponseEntity<BadRequestExceptionDetails> handlerBadRequestException(BadRequestException bre) { + return new ResponseEntity<>( + BadRequestExceptionDetails.builder() + .timestamp(LocalDateTime.now()) + .status(HttpStatus.BAD_REQUEST.value()) + .title("Bad Request Exception") + .details(bre.getMessage()) + .developerMessage(bre.getClass().getName()) + .build(), HttpStatus.BAD_REQUEST + ); + } +} diff --git a/WebServices/authenticator/src/main/java/br/ufrn/imd/authenticator/service/AuthenticatorService.java b/WebServices/authenticator/src/main/java/br/ufrn/imd/authenticator/service/AuthenticatorService.java index e5e1336..12d2df8 100644 --- a/WebServices/authenticator/src/main/java/br/ufrn/imd/authenticator/service/AuthenticatorService.java +++ b/WebServices/authenticator/src/main/java/br/ufrn/imd/authenticator/service/AuthenticatorService.java @@ -1,6 +1,7 @@ package br.ufrn.imd.authenticator.service; import br.ufrn.imd.authenticator.domain.Client; +import br.ufrn.imd.authenticator.exception.BadRequestException; import br.ufrn.imd.authenticator.repository.ClientRepository; import lombok.RequiredArgsConstructor; import lombok.extern.java.Log; @@ -15,13 +16,13 @@ import javax.security.auth.message.AuthException; public class AuthenticatorService { private final ClientRepository clientRepository; - public Client authenticate(String accountNumber, String password) throws AuthException { + public Client authenticate(String accountNumber, String password) { Client client = clientRepository.findByAccountNumber(accountNumber) - .orElseThrow(() -> new RuntimeException( + .orElseThrow(() -> new BadRequestException( String.format("Customer not found with account number %s", accountNumber))); if(!new BCryptPasswordEncoder().matches(password, client.getAccount().getPassword())) { - throw new AuthException("Bad credentials"); + throw new BadRequestException("Bad credentials"); } log.info(client.getName() + " logged in (account number: " + client.getAccount().getNumber() + ")"); diff --git a/WebServices/balance/src/main/java/br/ufrn/imd/balance/exception/BadRequestException.java b/WebServices/balance/src/main/java/br/ufrn/imd/balance/exception/BadRequestException.java new file mode 100644 index 0000000..e5045a3 --- /dev/null +++ b/WebServices/balance/src/main/java/br/ufrn/imd/balance/exception/BadRequestException.java @@ -0,0 +1,12 @@ +package br.ufrn.imd.balance.exception; + +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ResponseStatus; + +@ResponseStatus(HttpStatus.BAD_REQUEST) +public class BadRequestException extends RuntimeException{ + + public BadRequestException(String message) { + super(message); + } +} diff --git a/WebServices/balance/src/main/java/br/ufrn/imd/balance/exception/BadRequestExceptionDetails.java b/WebServices/balance/src/main/java/br/ufrn/imd/balance/exception/BadRequestExceptionDetails.java new file mode 100644 index 0000000..da6cf5c --- /dev/null +++ b/WebServices/balance/src/main/java/br/ufrn/imd/balance/exception/BadRequestExceptionDetails.java @@ -0,0 +1,16 @@ +package br.ufrn.imd.balance.exception; + +import lombok.Builder; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +@Builder +public class BadRequestExceptionDetails { + private String title; + private int status; + private String details; + private String developerMessage; + private LocalDateTime timestamp; +} diff --git a/WebServices/balance/src/main/java/br/ufrn/imd/balance/exception/RestExceptionHandler.java b/WebServices/balance/src/main/java/br/ufrn/imd/balance/exception/RestExceptionHandler.java new file mode 100644 index 0000000..706ae7d --- /dev/null +++ b/WebServices/balance/src/main/java/br/ufrn/imd/balance/exception/RestExceptionHandler.java @@ -0,0 +1,24 @@ +package br.ufrn.imd.balance.exception; + +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; + +import java.time.LocalDateTime; + +@ControllerAdvice +public class RestExceptionHandler { + @ExceptionHandler(BadRequestException.class) + public ResponseEntity<BadRequestExceptionDetails> handlerBadRequestException(BadRequestException bre) { + return new ResponseEntity<>( + BadRequestExceptionDetails.builder() + .timestamp(LocalDateTime.now()) + .status(HttpStatus.BAD_REQUEST.value()) + .title("Bad Request Exception") + .details(bre.getMessage()) + .developerMessage(bre.getClass().getName()) + .build(), HttpStatus.BAD_REQUEST + ); + } +} diff --git a/WebServices/balance/src/main/java/br/ufrn/imd/balance/service/BalanceService.java b/WebServices/balance/src/main/java/br/ufrn/imd/balance/service/BalanceService.java index f4ccd07..483dcde 100644 --- a/WebServices/balance/src/main/java/br/ufrn/imd/balance/service/BalanceService.java +++ b/WebServices/balance/src/main/java/br/ufrn/imd/balance/service/BalanceService.java @@ -2,25 +2,26 @@ package br.ufrn.imd.balance.service; import br.ufrn.imd.balance.domain.Account; import br.ufrn.imd.balance.domain.Client; +import br.ufrn.imd.balance.exception.BadRequestException; import br.ufrn.imd.balance.repository.ClientRepository; import lombok.AllArgsConstructor; +import lombok.RequiredArgsConstructor; import lombok.extern.java.Log; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Log -@AllArgsConstructor @Service +@RequiredArgsConstructor public class BalanceService { - @Autowired private final ClientRepository clientRepository; public Client balance(Client client) { - client = clientRepository.findById(client.getId()) - .orElseThrow(() -> new RuntimeException("Invalid user!")); + Client persistedClient = clientRepository.findById(client.getId()) + .orElseThrow(() -> new BadRequestException("Invalid user!")); Account account = client.getAccount(); log.info(String.format("Account Balance: R$ %.2f", account.getBalance())); - return client; + return persistedClient; } } diff --git a/WebServices/balance/target/classes/br/ufrn/imd/balance/service/BalanceService.class b/WebServices/balance/target/classes/br/ufrn/imd/balance/service/BalanceService.class index 024f7cfd65e02a5b76b37a900ac69cee13c4af8a..c37642519138f67e0c38cc3734d64b48c577bff3 100644 GIT binary patch delta 442 zcmZusO-lk%6g}_FI5}gc$c$Q}eQP?Sg-|V8MAW(#MT>A1I)M;oIYGOiwh_f!1ws9U zOtON4eu2NEU2R(gT}P=+n|tp&=e&E)z1DB^i?&Fy_i(7@9Mmgy*D0^;R-CFU0{lvv z%Vb4?8M<>+a%yg6uR625U0!$g51qOzp83*cJ0ZS!k!8iEbgHCbGZaLF>HmNDkWA9- zFj%CqnhWw9momsUzm*ea05TW`F$4}1z&RAi;?|!yUbS23Tf2upqROw(wxoOufsH5h zw-C(Tk(47rH3}b99T6C`CW>LiFiTUCP>YrW^Ms91?@Xf@^X!rsr->62#{?!JAw|58 zkpLt}W2)E-v`C#3s9BE~u<Qr02EDr83Q2*G=N0X$e!Vox5huR4H->On1D#EfDb7^W f=!EYsFyN=Cw#U4v$=DwgqyuuET^`foQ_cMV+@nVF delta 482 zcmZWlOD_Xq6g}Tes}HR-^r8BoUVSnPB3%g)3rQ`o5~~l>X3&{tI&E1=u(LpBArgtd z;1Ojbwvs0PhJ}TNKj60YSlHZi?>RT;-0!>cUV2Yo&4v)pW^<Zekjf=pQ44vU7v-9! zZ%gYkSIbhKZy1`sCvjEP3~nfzD$Q05t)}Sm=2_$2d|~IlXd;>0;#Dr~aJ3*US5!kO z%I2{!W4;M%EM?A#hZAvR82bKg&F^l=rKT%`dqJ)89c6Q%QkM0Y3-LRT<wFpYNZkpx z0~TWl0_XtQ5LyUB2tz=GrX%7-^THn9&!y|IE#AW3?XWz-xhiJr=v;Y(s}6VinpOow zsrq51+JkO*$<{}lACu@sKd}Q4sZJ5b2%Fs?hA1vd`Y=YwVU$=aBN{}<k@&u18p0B_ zfHU=gu2lLS?1rXxV)Jmo)k^TUw|*0x2#`1X@eRP^ae^LBRKz@SgnZ4D+Xi0Pkw&Ja WJUb$RKc$oYWULi8j-dJJ$b111=vLSO diff --git a/WebServices/balance/target/maven-archiver/pom.properties b/WebServices/balance/target/maven-archiver/pom.properties index 9c45c41..88dc348 100644 --- a/WebServices/balance/target/maven-archiver/pom.properties +++ b/WebServices/balance/target/maven-archiver/pom.properties @@ -1,4 +1,4 @@ -#Created by Apache Maven 3.8.4 +#Created by Apache Maven 3.6.3 groupId=br.ufrn.imd artifactId=balance version=0.0.1-SNAPSHOT diff --git a/WebServices/balance/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/WebServices/balance/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index 91cc13f..3ff1a9b 100644 --- a/WebServices/balance/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/WebServices/balance/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -1,6 +1,10 @@ -br\ufrn\imd\balance\BalanceApplication.class -br\ufrn\imd\balance\controller\BalanceController.class -br\ufrn\imd\balance\domain\Account.class -br\ufrn\imd\balance\domain\Client.class -br\ufrn\imd\balance\repository\ClientRepository.class -br\ufrn\imd\balance\service\BalanceService.class +br/ufrn/imd/balance/domain/Account.class +br/ufrn/imd/balance/exception/RestExceptionHandler.class +br/ufrn/imd/balance/controller/BalanceController.class +br/ufrn/imd/balance/exception/BadRequestExceptionDetails$BadRequestExceptionDetailsBuilder.class +br/ufrn/imd/balance/repository/ClientRepository.class +br/ufrn/imd/balance/domain/Client.class +br/ufrn/imd/balance/exception/BadRequestExceptionDetails.class +br/ufrn/imd/balance/BalanceApplication.class +br/ufrn/imd/balance/service/BalanceService.class +br/ufrn/imd/balance/exception/BadRequestException.class diff --git a/WebServices/balance/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/WebServices/balance/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index 0f689c3..e8c1a7b 100644 --- a/WebServices/balance/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/WebServices/balance/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,6 +1,9 @@ -C:\Users\maria\Documents\Projetos\dim0614\WebServices\balance\src\main\java\br\ufrn\imd\balance\repository\ClientRepository.java -C:\Users\maria\Documents\Projetos\dim0614\WebServices\balance\src\main\java\br\ufrn\imd\balance\controller\BalanceController.java -C:\Users\maria\Documents\Projetos\dim0614\WebServices\balance\src\main\java\br\ufrn\imd\balance\BalanceApplication.java -C:\Users\maria\Documents\Projetos\dim0614\WebServices\balance\src\main\java\br\ufrn\imd\balance\service\BalanceService.java -C:\Users\maria\Documents\Projetos\dim0614\WebServices\balance\src\main\java\br\ufrn\imd\balance\domain\Account.java -C:\Users\maria\Documents\Projetos\dim0614\WebServices\balance\src\main\java\br\ufrn\imd\balance\domain\Client.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/balance/src/main/java/br/ufrn/imd/balance/BalanceApplication.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/balance/src/main/java/br/ufrn/imd/balance/exception/RestExceptionHandler.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/balance/src/main/java/br/ufrn/imd/balance/controller/BalanceController.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/balance/src/main/java/br/ufrn/imd/balance/exception/BadRequestException.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/balance/src/main/java/br/ufrn/imd/balance/domain/Client.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/balance/src/main/java/br/ufrn/imd/balance/service/BalanceService.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/balance/src/main/java/br/ufrn/imd/balance/repository/ClientRepository.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/balance/src/main/java/br/ufrn/imd/balance/exception/BadRequestExceptionDetails.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/balance/src/main/java/br/ufrn/imd/balance/domain/Account.java diff --git a/WebServices/balance/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/WebServices/balance/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst index 3a5345a..acc9386 100644 --- a/WebServices/balance/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst +++ b/WebServices/balance/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst @@ -1 +1 @@ -br\ufrn\imd\withdrawal\CourseApplicationTests.class +br/ufrn/imd/withdrawal/CourseApplicationTests.class diff --git a/WebServices/balance/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/WebServices/balance/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst index 6202096..87bcf06 100644 --- a/WebServices/balance/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst +++ b/WebServices/balance/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst @@ -1 +1 @@ -C:\Users\maria\Documents\Projetos\dim0614\WebServices\balance\src\test\java\br\ufrn\imd\withdrawal\CourseApplicationTests.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/balance/src/test/java/br/ufrn/imd/withdrawal/CourseApplicationTests.java diff --git a/WebServices/client/src/main/java/br/ufrn/imd/client/exception/BadRequestException.java b/WebServices/client/src/main/java/br/ufrn/imd/client/exception/BadRequestException.java new file mode 100644 index 0000000..4c07122 --- /dev/null +++ b/WebServices/client/src/main/java/br/ufrn/imd/client/exception/BadRequestException.java @@ -0,0 +1,12 @@ +package br.ufrn.imd.client.exception; + +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ResponseStatus; + +@ResponseStatus(HttpStatus.BAD_REQUEST) +public class BadRequestException extends RuntimeException{ + + public BadRequestException(String message) { + super(message); + } +} diff --git a/WebServices/client/src/main/java/br/ufrn/imd/client/exception/BadRequestExceptionDetails.java b/WebServices/client/src/main/java/br/ufrn/imd/client/exception/BadRequestExceptionDetails.java new file mode 100644 index 0000000..75feaad --- /dev/null +++ b/WebServices/client/src/main/java/br/ufrn/imd/client/exception/BadRequestExceptionDetails.java @@ -0,0 +1,16 @@ +package br.ufrn.imd.client.exception; + +import lombok.Builder; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +@Builder +public class BadRequestExceptionDetails { + private String title; + private int status; + private String details; + private String developerMessage; + private LocalDateTime timestamp; +} diff --git a/WebServices/client/src/main/java/br/ufrn/imd/client/exception/RestExceptionHandler.java b/WebServices/client/src/main/java/br/ufrn/imd/client/exception/RestExceptionHandler.java new file mode 100644 index 0000000..254c74e --- /dev/null +++ b/WebServices/client/src/main/java/br/ufrn/imd/client/exception/RestExceptionHandler.java @@ -0,0 +1,24 @@ +package br.ufrn.imd.client.exception; + +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; + +import java.time.LocalDateTime; + +@ControllerAdvice +public class RestExceptionHandler { + @ExceptionHandler(BadRequestException.class) + public ResponseEntity<BadRequestExceptionDetails> handlerBadRequestException(BadRequestException bre) { + return new ResponseEntity<>( + BadRequestExceptionDetails.builder() + .timestamp(LocalDateTime.now()) + .status(HttpStatus.BAD_REQUEST.value()) + .title("Bad Request Exception") + .details(bre.getMessage()) + .developerMessage(bre.getClass().getName()) + .build(), HttpStatus.BAD_REQUEST + ); + } +} diff --git a/WebServices/client/src/main/java/br/ufrn/imd/client/utils/MachineState.java b/WebServices/client/src/main/java/br/ufrn/imd/client/utils/MachineState.java index 58f9442..c813a02 100644 --- a/WebServices/client/src/main/java/br/ufrn/imd/client/utils/MachineState.java +++ b/WebServices/client/src/main/java/br/ufrn/imd/client/utils/MachineState.java @@ -1,10 +1,12 @@ package br.ufrn.imd.client.utils; import br.ufrn.imd.client.domain.Client; +import br.ufrn.imd.client.exception.BadRequestException; import br.ufrn.imd.client.utils.message.CredentialsMessage; import lombok.Data; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Component; +import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.RestTemplate; import java.util.Scanner; @@ -46,15 +48,20 @@ public class MachineState { System.out.println(">>> Please enter your password"); String password = sc.nextLine(); - ResponseEntity<Client> response = restTemplate.postForEntity(HOST_AUTHENTICATOR_SERVICE, - new CredentialsMessage(accountNumber, password), Client.class); - if(response.getStatusCodeValue() == 200) { - state = INITIAL; - this.client = response.getBody(); - } else { + try { + ResponseEntity<Client> response = restTemplate.postForEntity( + HOST_AUTHENTICATOR_SERVICE, + new CredentialsMessage(accountNumber, password), + Client.class); + if(response.getStatusCodeValue() == 200) { + state = INITIAL; + this.client = response.getBody(); + } + } catch (HttpClientErrorException ex){ System.out.println(">>> Bad credentials"); } + try { Thread.sleep(1000); } catch (InterruptedException e) { @@ -103,15 +110,19 @@ public class MachineState { } } else if(state.equals(DEPOSIT)) { String v = sc.nextLine(); - ResponseEntity<Client> response = - restTemplate.getForEntity( - HOST_DEPOSIT_SERVICE + - String.format("/%d?value=%s", this.client.getId(), v), - Client.class); - if(response.getStatusCodeValue() == 200) { - System.out.println( - String.format(">>> Your balance is: %.2f", response.getBody().getAccount().getBalance()) - ); + try { + ResponseEntity<Client> response = + restTemplate.getForEntity( + HOST_DEPOSIT_SERVICE + + String.format("/%d?value=%s", this.client.getId(), v), + Client.class); + if (response.getStatusCodeValue() == 200) { + System.out.println( + String.format(">>> Your balance is: %.2f", response.getBody().getAccount().getBalance()) + ); + } + } catch (Exception e) { + System.out.println("Invalid operation!"); } try { Thread.sleep(1000); @@ -120,13 +131,17 @@ public class MachineState { } } else if(state.equals(BALANCE)) { - ResponseEntity<Client> response = - restTemplate.getForEntity(HOST_BALANCE_SERVICE + - String.format("/%d", this.client.getId()), Client.class); - if(response.getStatusCodeValue() == 200) { - System.out.println( - String.format(">>> Your balance is: %.2f", response.getBody().getAccount().getBalance()) - ); + try { + ResponseEntity<Client> response = + restTemplate.getForEntity(HOST_BALANCE_SERVICE + + String.format("/%d", this.client.getId()), Client.class); + if (response.getStatusCodeValue() == 200) { + System.out.println( + String.format(">>> Your balance is: %.2f", response.getBody().getAccount().getBalance()) + ); + } + } catch (Exception e) { + System.out.println("Invalid operation!"); } try { Thread.sleep(1000); @@ -136,19 +151,23 @@ public class MachineState { } else if(state.equals(WITHDRAWAL)) { String v = sc.nextLine(); - ResponseEntity<Client> response = - restTemplate.getForEntity( - HOST_WITHDRAWAL_SERVICE + - String.format("/%d?value=%s", this.client.getId(), v), - Client.class); - if(response.getStatusCodeValue()== 200) { - System.out.println( - String.format(">>> Your balance is: %.2f", response.getBody().getAccount().getBalance()) - ); - } else if(response.getStatusCodeValue() == 500) { - System.out.println( - String.format(">>> %s", response.getBody()) - ); + try { + ResponseEntity<Client> response = + restTemplate.getForEntity( + HOST_WITHDRAWAL_SERVICE + + String.format("/%d?value=%s", this.client.getId(), v), + Client.class); + if (response.getStatusCodeValue() == 200) { + System.out.println( + String.format(">>> Your balance is: %.2f", response.getBody().getAccount().getBalance()) + ); + } else if (response.getStatusCodeValue() == 500) { + System.out.println( + String.format(">>> %s", response.getBody()) + ); + } + } catch (Exception e) { + System.out.println("Invalid operation!"); } try { Thread.sleep(1000); @@ -159,25 +178,28 @@ public class MachineState { String accountNumber = sc.nextLine(); System.out.println(">>> Please enter with the value that you want transfer"); String v = sc.nextLine(); - - ResponseEntity<Client> response = - restTemplate.getForEntity( - HOST_TRANSFER_SERVICE + - String.format("/%d?value=%s&toAccount=%s", - this.client.getId(), - v, - accountNumber - ), - Client.class); - - if(response.getStatusCodeValue() == 200) { - System.out.println( - String.format(">>> Your balance is: %.2f", response.getBody().getAccount().getBalance()) - ); - } else if(response.getStatusCodeValue() == 500) { - System.out.println( - String.format(">>> %s", response.getBody()) - ); + try { + ResponseEntity<Client> response = + restTemplate.getForEntity( + HOST_TRANSFER_SERVICE + + String.format("/%d?value=%s&toAccount=%s", + this.client.getId(), + v, + accountNumber + ), + Client.class); + + if (response.getStatusCodeValue() == 200) { + System.out.println( + String.format(">>> Your balance is: %.2f", response.getBody().getAccount().getBalance()) + ); + } else if (response.getStatusCodeValue() == 500) { + System.out.println( + String.format(">>> %s", response.getBody()) + ); + } + } catch (Exception e) { + System.out.println("Invalid operation!"); } try { Thread.sleep(1000); diff --git a/WebServices/deposit/target/maven-archiver/pom.properties b/WebServices/deposit/target/maven-archiver/pom.properties index 0bc277f..0bb7375 100644 --- a/WebServices/deposit/target/maven-archiver/pom.properties +++ b/WebServices/deposit/target/maven-archiver/pom.properties @@ -1,4 +1,4 @@ -#Created by Apache Maven 3.8.4 +#Created by Apache Maven 3.6.3 groupId=br.ufrn.imd artifactId=deposit version=0.0.1-SNAPSHOT diff --git a/WebServices/deposit/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/WebServices/deposit/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index 3874cff..d4f4dfd 100644 --- a/WebServices/deposit/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/WebServices/deposit/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -1,6 +1,6 @@ -br\ufrn\imd\deposit\DepositApplication.class -br\ufrn\imd\deposit\domain\Client.class -br\ufrn\imd\deposit\repository\ClientRepository.class -br\ufrn\imd\deposit\service\DepositService.class -br\ufrn\imd\deposit\controller\DepositController.class -br\ufrn\imd\deposit\domain\Account.class +br/ufrn/imd/deposit/controller/DepositController.class +br/ufrn/imd/deposit/domain/Account.class +br/ufrn/imd/deposit/DepositApplication.class +br/ufrn/imd/deposit/service/DepositService.class +br/ufrn/imd/deposit/repository/ClientRepository.class +br/ufrn/imd/deposit/domain/Client.class diff --git a/WebServices/deposit/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/WebServices/deposit/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index ac0e43a..839b90f 100644 --- a/WebServices/deposit/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/WebServices/deposit/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,6 +1,6 @@ -C:\Users\maria\Documents\Projetos\dim0614\WebServices\deposit\src\main\java\br\ufrn\imd\deposit\domain\Client.java -C:\Users\maria\Documents\Projetos\dim0614\WebServices\deposit\src\main\java\br\ufrn\imd\deposit\controller\DepositController.java -C:\Users\maria\Documents\Projetos\dim0614\WebServices\deposit\src\main\java\br\ufrn\imd\deposit\domain\Account.java -C:\Users\maria\Documents\Projetos\dim0614\WebServices\deposit\src\main\java\br\ufrn\imd\deposit\repository\ClientRepository.java -C:\Users\maria\Documents\Projetos\dim0614\WebServices\deposit\src\main\java\br\ufrn\imd\deposit\DepositApplication.java -C:\Users\maria\Documents\Projetos\dim0614\WebServices\deposit\src\main\java\br\ufrn\imd\deposit\service\DepositService.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/deposit/src/main/java/br/ufrn/imd/deposit/domain/Client.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/deposit/src/main/java/br/ufrn/imd/deposit/DepositApplication.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/deposit/src/main/java/br/ufrn/imd/deposit/repository/ClientRepository.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/deposit/src/main/java/br/ufrn/imd/deposit/service/DepositService.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/deposit/src/main/java/br/ufrn/imd/deposit/domain/Account.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/deposit/src/main/java/br/ufrn/imd/deposit/controller/DepositController.java diff --git a/WebServices/deposit/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/WebServices/deposit/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst index 3a5345a..acc9386 100644 --- a/WebServices/deposit/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst +++ b/WebServices/deposit/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst @@ -1 +1 @@ -br\ufrn\imd\withdrawal\CourseApplicationTests.class +br/ufrn/imd/withdrawal/CourseApplicationTests.class diff --git a/WebServices/deposit/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/WebServices/deposit/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst index 9ed5032..34faa20 100644 --- a/WebServices/deposit/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst +++ b/WebServices/deposit/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst @@ -1 +1 @@ -C:\Users\maria\Documents\Projetos\dim0614\WebServices\deposit\src\test\java\br\ufrn\imd\withdrawal\CourseApplicationTests.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/deposit/src/test/java/br/ufrn/imd/withdrawal/CourseApplicationTests.java diff --git a/WebServices/transfer/target/maven-archiver/pom.properties b/WebServices/transfer/target/maven-archiver/pom.properties index 40e39ac..42f8405 100644 --- a/WebServices/transfer/target/maven-archiver/pom.properties +++ b/WebServices/transfer/target/maven-archiver/pom.properties @@ -1,4 +1,4 @@ -#Created by Apache Maven 3.8.4 +#Created by Apache Maven 3.6.3 groupId=br.ufrn.imd artifactId=transfer version=0.0.1-SNAPSHOT diff --git a/WebServices/transfer/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/WebServices/transfer/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index 73a0ccf..b4c8e86 100644 --- a/WebServices/transfer/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/WebServices/transfer/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -1,6 +1,6 @@ -br\ufrn\imd\transfer\domain\Account.class -br\ufrn\imd\transfer\TransferApplication.class -br\ufrn\imd\transfer\service\TransferService.class -br\ufrn\imd\transfer\controller\TransferController.class -br\ufrn\imd\transfer\domain\Client.class -br\ufrn\imd\transfer\repository\ClientRepository.class +br/ufrn/imd/transfer/repository/ClientRepository.class +br/ufrn/imd/transfer/controller/TransferController.class +br/ufrn/imd/transfer/domain/Client.class +br/ufrn/imd/transfer/domain/Account.class +br/ufrn/imd/transfer/TransferApplication.class +br/ufrn/imd/transfer/service/TransferService.class diff --git a/WebServices/transfer/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/WebServices/transfer/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index 2a4e6d7..0fe3447 100644 --- a/WebServices/transfer/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/WebServices/transfer/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,6 +1,6 @@ -C:\Users\maria\Documents\Projetos\dim0614\WebServices\transfer\src\main\java\br\ufrn\imd\transfer\repository\ClientRepository.java -C:\Users\maria\Documents\Projetos\dim0614\WebServices\transfer\src\main\java\br\ufrn\imd\transfer\controller\TransferController.java -C:\Users\maria\Documents\Projetos\dim0614\WebServices\transfer\src\main\java\br\ufrn\imd\transfer\domain\Client.java -C:\Users\maria\Documents\Projetos\dim0614\WebServices\transfer\src\main\java\br\ufrn\imd\transfer\service\TransferService.java -C:\Users\maria\Documents\Projetos\dim0614\WebServices\transfer\src\main\java\br\ufrn\imd\transfer\domain\Account.java -C:\Users\maria\Documents\Projetos\dim0614\WebServices\transfer\src\main\java\br\ufrn\imd\transfer\TransferApplication.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/transfer/src/main/java/br/ufrn/imd/transfer/domain/Client.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/transfer/src/main/java/br/ufrn/imd/transfer/controller/TransferController.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/transfer/src/main/java/br/ufrn/imd/transfer/domain/Account.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/transfer/src/main/java/br/ufrn/imd/transfer/service/TransferService.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/transfer/src/main/java/br/ufrn/imd/transfer/repository/ClientRepository.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/transfer/src/main/java/br/ufrn/imd/transfer/TransferApplication.java diff --git a/WebServices/transfer/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/WebServices/transfer/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst index 3a5345a..acc9386 100644 --- a/WebServices/transfer/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst +++ b/WebServices/transfer/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst @@ -1 +1 @@ -br\ufrn\imd\withdrawal\CourseApplicationTests.class +br/ufrn/imd/withdrawal/CourseApplicationTests.class diff --git a/WebServices/transfer/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/WebServices/transfer/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst index 53b7d27..75e2baf 100644 --- a/WebServices/transfer/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst +++ b/WebServices/transfer/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst @@ -1 +1 @@ -C:\Users\maria\Documents\Projetos\dim0614\WebServices\transfer\src\test\java\br\ufrn\imd\withdrawal\CourseApplicationTests.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/transfer/src/test/java/br/ufrn/imd/withdrawal/CourseApplicationTests.java diff --git a/WebServices/withdrawal/target/maven-archiver/pom.properties b/WebServices/withdrawal/target/maven-archiver/pom.properties index 91e3e62..6b1d262 100644 --- a/WebServices/withdrawal/target/maven-archiver/pom.properties +++ b/WebServices/withdrawal/target/maven-archiver/pom.properties @@ -1,4 +1,4 @@ -#Created by Apache Maven 3.8.4 +#Created by Apache Maven 3.6.3 groupId=br.ufrn.imd artifactId=withdrawal version=0.0.1-SNAPSHOT diff --git a/WebServices/withdrawal/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/WebServices/withdrawal/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index 28229e8..3d142b7 100644 --- a/WebServices/withdrawal/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/WebServices/withdrawal/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -1,6 +1,6 @@ -br\ufrn\imd\withdrawal\domain\Account.class -br\ufrn\imd\withdrawal\domain\Client.class -br\ufrn\imd\withdrawal\WithdrawalApplication.class -br\ufrn\imd\withdrawal\service\WithdrawalService.class -br\ufrn\imd\withdrawal\controller\WithdrawalController.class -br\ufrn\imd\withdrawal\repository\ClientRepository.class +br/ufrn/imd/withdrawal/domain/Account.class +br/ufrn/imd/withdrawal/domain/Client.class +br/ufrn/imd/withdrawal/controller/WithdrawalController.class +br/ufrn/imd/withdrawal/service/WithdrawalService.class +br/ufrn/imd/withdrawal/repository/ClientRepository.class +br/ufrn/imd/withdrawal/WithdrawalApplication.class diff --git a/WebServices/withdrawal/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/WebServices/withdrawal/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index f0c96b2..048a3ab 100644 --- a/WebServices/withdrawal/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/WebServices/withdrawal/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,6 +1,6 @@ -C:\Users\maria\Documents\Projetos\dim0614\WebServices\withdrawal\src\main\java\br\ufrn\imd\withdrawal\domain\Account.java -C:\Users\maria\Documents\Projetos\dim0614\WebServices\withdrawal\src\main\java\br\ufrn\imd\withdrawal\domain\Client.java -C:\Users\maria\Documents\Projetos\dim0614\WebServices\withdrawal\src\main\java\br\ufrn\imd\withdrawal\WithdrawalApplication.java -C:\Users\maria\Documents\Projetos\dim0614\WebServices\withdrawal\src\main\java\br\ufrn\imd\withdrawal\repository\ClientRepository.java -C:\Users\maria\Documents\Projetos\dim0614\WebServices\withdrawal\src\main\java\br\ufrn\imd\withdrawal\controller\WithdrawalController.java -C:\Users\maria\Documents\Projetos\dim0614\WebServices\withdrawal\src\main\java\br\ufrn\imd\withdrawal\service\WithdrawalService.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/withdrawal/src/main/java/br/ufrn/imd/withdrawal/domain/Client.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/withdrawal/src/main/java/br/ufrn/imd/withdrawal/controller/WithdrawalController.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/withdrawal/src/main/java/br/ufrn/imd/withdrawal/repository/ClientRepository.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/withdrawal/src/main/java/br/ufrn/imd/withdrawal/domain/Account.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/withdrawal/src/main/java/br/ufrn/imd/withdrawal/service/WithdrawalService.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/withdrawal/src/main/java/br/ufrn/imd/withdrawal/WithdrawalApplication.java diff --git a/WebServices/withdrawal/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/WebServices/withdrawal/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst index 3a5345a..acc9386 100644 --- a/WebServices/withdrawal/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst +++ b/WebServices/withdrawal/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst @@ -1 +1 @@ -br\ufrn\imd\withdrawal\CourseApplicationTests.class +br/ufrn/imd/withdrawal/CourseApplicationTests.class diff --git a/WebServices/withdrawal/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/WebServices/withdrawal/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst index bb62f83..51bcfa0 100644 --- a/WebServices/withdrawal/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst +++ b/WebServices/withdrawal/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst @@ -1 +1 @@ -C:\Users\maria\Documents\Projetos\dim0614\WebServices\withdrawal\src\test\java\br\ufrn\imd\withdrawal\CourseApplicationTests.java +/home/ff/code/IMD-AULAS/dim0614/WebServices/withdrawal/src/test/java/br/ufrn/imd/withdrawal/CourseApplicationTests.java -- GitLab