From bef379c57d2941ec3ee986da755a961932e97ce7 Mon Sep 17 00:00:00 2001 From: Patrick Date: Sat, 18 Oct 2025 23:39:24 -0300 Subject: [PATCH] alteracoes na usuarioService e na usuarioController --- .../spingstudy/business/UsuarioService.java | 9 +++++++++ .../controller/UsuarioController.java | 19 ++++++++++++++----- .../exceptions/ResourceNotFoundException.java | 13 +++++++++++++ .../repository/UsuarioRepository.java | 4 ++++ 4 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/patrick/spingstudy/infrastructure/exceptions/ResourceNotFoundException.java diff --git a/src/main/java/com/patrick/spingstudy/business/UsuarioService.java b/src/main/java/com/patrick/spingstudy/business/UsuarioService.java index a4871d0..ef35561 100644 --- a/src/main/java/com/patrick/spingstudy/business/UsuarioService.java +++ b/src/main/java/com/patrick/spingstudy/business/UsuarioService.java @@ -2,6 +2,7 @@ import com.patrick.spingstudy.infrastructure.entity.Usuario; import com.patrick.spingstudy.infrastructure.exceptions.ConflictException; +import com.patrick.spingstudy.infrastructure.exceptions.ResourceNotFoundException; import com.patrick.spingstudy.infrastructure.repository.UsuarioRepository; import lombok.RequiredArgsConstructor; import org.springframework.data.jpa.repository.JpaRepository; @@ -40,4 +41,12 @@ public boolean verificarEmailExistente(String email){ return usuarioRepository.existsByEmail(email); } + public Usuario buscaUsuarioPorEmail(String email){ + return usuarioRepository.findByEmail(email).orElseThrow( + + () -> new ResourceNotFoundException("Email não encontrado" + email )); + } + public void deletaUsuarioPorEmail(String email){ + usuarioRepository.deleteByEmail(email); + } } diff --git a/src/main/java/com/patrick/spingstudy/controller/UsuarioController.java b/src/main/java/com/patrick/spingstudy/controller/UsuarioController.java index 31869a5..6679f59 100644 --- a/src/main/java/com/patrick/spingstudy/controller/UsuarioController.java +++ b/src/main/java/com/patrick/spingstudy/controller/UsuarioController.java @@ -9,10 +9,7 @@ import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/usuario") @@ -37,7 +34,19 @@ public String login(@RequestBody UsuarioDTO usuarioDTO){ usuarioDTO.getSenha()) ); - return "Bearer" + jwtUtil.generateToken(authentication.getName()); + return "Bearer " + jwtUtil.generateToken(authentication.getName()); + } + + @GetMapping + public ResponseEntity buscaUsuarioPorEmail(@RequestParam("email") String email){ + return ResponseEntity.ok(usuarioService.buscaUsuarioPorEmail(email)); + } + + @DeleteMapping("/{email}") + public ResponseEntity deletaUsuarioPorEmail(@PathVariable String email){ + usuarioService.deletaUsuarioPorEmail(email); + return ResponseEntity.ok().build(); + } } diff --git a/src/main/java/com/patrick/spingstudy/infrastructure/exceptions/ResourceNotFoundException.java b/src/main/java/com/patrick/spingstudy/infrastructure/exceptions/ResourceNotFoundException.java new file mode 100644 index 0000000..fb46a7a --- /dev/null +++ b/src/main/java/com/patrick/spingstudy/infrastructure/exceptions/ResourceNotFoundException.java @@ -0,0 +1,13 @@ +package com.patrick.spingstudy.infrastructure.exceptions; + +public class ResourceNotFoundException extends RuntimeException{ + + public ResourceNotFoundException(String mensagem){ + super(mensagem); + + } + public ResourceNotFoundException(String mensagem, Throwable throwable){ + + super(mensagem, throwable); + } +} diff --git a/src/main/java/com/patrick/spingstudy/infrastructure/repository/UsuarioRepository.java b/src/main/java/com/patrick/spingstudy/infrastructure/repository/UsuarioRepository.java index 06ad22d..4ad50ce 100644 --- a/src/main/java/com/patrick/spingstudy/infrastructure/repository/UsuarioRepository.java +++ b/src/main/java/com/patrick/spingstudy/infrastructure/repository/UsuarioRepository.java @@ -1,6 +1,7 @@ package com.patrick.spingstudy.infrastructure.repository; import com.patrick.spingstudy.infrastructure.entity.Usuario; +import jakarta.transaction.Transactional; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @@ -14,4 +15,7 @@ public interface UsuarioRepository extends JpaRepository { Optional findByEmail(String email); + @Transactional + void deleteByEmail(String email); + }