diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml new file mode 100644 index 00000000..4faf634b --- /dev/null +++ b/.github/workflows/ci-cd.yml @@ -0,0 +1,98 @@ +name: CI Pipeline + +on: + push: + branches: + - main + - develop + - staging + pull_request: + branches: ["*"] + +jobs: + testes: + runs-on: ubuntu-latest + steps: + - name: Checkout de código + uses: actions/checkout@v3 + + - name: Configuração do JDK 17 + uses: actions/setup-java@v3 + with: + java-version: "17" + distribution: "temurin" + cache: maven + + - name: Permissão de Executável ao Maven + run: chmod +x ./mvnw + + - name: Executar Testes e Build + run: ./mvnw clean verify + + build-and-push-develop: + needs: testes + if: github.ref == 'refs/heads/develop' + runs-on: ubuntu-latest + steps: + - name: Checkout de código + uses: actions/checkout@v3 + + - name: Login no GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build e Push da imagem Docker + uses: docker/build-push-action@v4 + with: + context: . + push: true + tags: ghcr.io/orbitechz/npvet-backend-cloud:develop + + build-and-push-main: + needs: testes + if: github.ref == 'refs/heads/main' + runs-on: ubuntu-latest + steps: + - name: Checkout de código + uses: actions/checkout@v3 + + - name: Login no GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build e Push da imagem Docker + uses: docker/build-push-action@v4 + with: + context: . + push: true + tags: | + ghcr.io/orbitechz/npvet-backend-cloud:latest + ghcr.io/orbitechz/npvet-backend-cloud:${{ github.sha }} + + build-and-push-staging: + needs: testes + if: github.ref == 'refs/heads/staging' + runs-on: ubuntu-latest + steps: + - name: Checkout de código + uses: actions/checkout@v3 + + - name: Login no GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build e Push da imagem Docker + uses: docker/build-push-action@v4 + with: + context: . + push: true + tags: ghcr.io/orbitechz/npvet-backend-cloud:staging diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml deleted file mode 100644 index 5c407b1c..00000000 --- a/.github/workflows/docker-build.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: Criar imagem Docker e publicar em Github Packages -on: - push: - branches: ['main'] - pull_request: - branches: ['main'] - -env: - REGISTRY: ghcr.io - IMAGE_NAME: ${{ github.repository }} - -jobs: - build-and-push-image: - runs-on: ubuntu-latest - permissions: - contents: read - packages: write - - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Log in to the Container registry - uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 - with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - - - name: Build and push Docker image - uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 - with: - context: . - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 9b34ec58..b8c7fb62 100644 --- a/.gitignore +++ b/.gitignore @@ -33,4 +33,7 @@ build/ .vscode/ ## Ambiente local ## -.env \ No newline at end of file +.env + +*.gz +logs.log \ No newline at end of file diff --git a/README.md b/README.md index b2a43ef7..d9e491d7 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ Para configurar o ambiente de desenvolvimento, siga os passos abaixo: ## Implantação em Produção 🌐 Para implantar o projeto em produção, você pode simplesmente puxar a imagem Docker do GitHub Packages usando o seguinte comando: ``` -docker pull ghcr.io/orbitechz/npvet-backend:main +docker pull ghcr.io/orbitechz/npvet-backend-cloud:main ``` Depois de puxar a imagem, você pode executá-la em seu ambiente de produção usando o Docker ou a plataforma de orquestração de contêiner de sua escolha. diff --git a/src/main/java/com/orbitech/npvet/controller/AnamneseController.java b/src/main/java/com/orbitech/npvet/controller/AnamneseController.java index f9e42c4b..32879c7f 100644 --- a/src/main/java/com/orbitech/npvet/controller/AnamneseController.java +++ b/src/main/java/com/orbitech/npvet/controller/AnamneseController.java @@ -13,7 +13,7 @@ import java.util.List; @RestController -@RequestMapping("/anamnese") +@RequestMapping("/npvet-api/anamnese") @PreAuthorize("hasAuthority('ADMINISTRADOR')") public class AnamneseController { diff --git a/src/main/java/com/orbitech/npvet/controller/AnimalController.java b/src/main/java/com/orbitech/npvet/controller/AnimalController.java index 7c2b9f27..02d073a0 100644 --- a/src/main/java/com/orbitech/npvet/controller/AnimalController.java +++ b/src/main/java/com/orbitech/npvet/controller/AnimalController.java @@ -17,7 +17,7 @@ import java.util.List; @RestController -@RequestMapping("/animal") +@RequestMapping("/npvet-api/animal") @PreAuthorize("hasAuthority('ADMINISTRADOR')") @Slf4j public class AnimalController { diff --git a/src/main/java/com/orbitech/npvet/controller/ConsultaController.java b/src/main/java/com/orbitech/npvet/controller/ConsultaController.java index 7368c542..83ed762f 100644 --- a/src/main/java/com/orbitech/npvet/controller/ConsultaController.java +++ b/src/main/java/com/orbitech/npvet/controller/ConsultaController.java @@ -17,7 +17,7 @@ import java.util.List; @RestController -@RequestMapping("/consulta") +@RequestMapping("/npvet-api/consulta") @PreAuthorize("hasAuthority('ADMINISTRADOR')") public class ConsultaController { @Autowired diff --git a/src/main/java/com/orbitech/npvet/controller/ExameFisicoController.java b/src/main/java/com/orbitech/npvet/controller/ExameFisicoController.java index faa30d51..a01773d2 100644 --- a/src/main/java/com/orbitech/npvet/controller/ExameFisicoController.java +++ b/src/main/java/com/orbitech/npvet/controller/ExameFisicoController.java @@ -13,7 +13,7 @@ import java.util.List; @RestController -@RequestMapping("/examefisico") +@RequestMapping("/npvet-api/examefisico") @PreAuthorize("hasAuthority('ADMINISTRADOR')") public class ExameFisicoController { diff --git a/src/main/java/com/orbitech/npvet/controller/HealthController.java b/src/main/java/com/orbitech/npvet/controller/HealthController.java new file mode 100644 index 00000000..ad155c51 --- /dev/null +++ b/src/main/java/com/orbitech/npvet/controller/HealthController.java @@ -0,0 +1,33 @@ +package com.orbitech.npvet.controller; + +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +@RestController +@RequestMapping("/npvet-api/health") +public class HealthController { + + @GetMapping + public ResponseEntity healthCheck() { + try { + log.info("Health check iniciado"); + log.debug("Verificando status da aplicação"); + + String message = "Aplicação está funcionando normalmente"; + log.info("Health check finalizado com sucesso"); + + return ResponseEntity.ok(message); + } catch (Exception e) { + log.error("Erro crítico durante health check: {}", e.getMessage(), e); + return ResponseEntity + .status(HttpStatus.INTERNAL_SERVER_ERROR) + .body("Erro ao verificar status da aplicação"); + } + } +} diff --git a/src/main/java/com/orbitech/npvet/controller/PerguntaController.java b/src/main/java/com/orbitech/npvet/controller/PerguntaController.java index 0f204508..d1b6286b 100644 --- a/src/main/java/com/orbitech/npvet/controller/PerguntaController.java +++ b/src/main/java/com/orbitech/npvet/controller/PerguntaController.java @@ -14,7 +14,7 @@ import java.util.List; @RestController -@RequestMapping("/pergunta") +@RequestMapping("/npvet-api/pergunta") public class PerguntaController { @Autowired public PerguntaService perguntaService; diff --git a/src/main/java/com/orbitech/npvet/controller/TutorController.java b/src/main/java/com/orbitech/npvet/controller/TutorController.java index a44198e6..2d365416 100644 --- a/src/main/java/com/orbitech/npvet/controller/TutorController.java +++ b/src/main/java/com/orbitech/npvet/controller/TutorController.java @@ -13,7 +13,7 @@ import java.util.List; @RestController -@RequestMapping("/tutor") +@RequestMapping("/npvet-api/tutor") @PreAuthorize("hasAuthority('ADMINISTRADOR')") public class TutorController { @Autowired diff --git a/src/main/java/com/orbitech/npvet/controller/UsuarioController.java b/src/main/java/com/orbitech/npvet/controller/UsuarioController.java index 03b00a81..2d12daa4 100644 --- a/src/main/java/com/orbitech/npvet/controller/UsuarioController.java +++ b/src/main/java/com/orbitech/npvet/controller/UsuarioController.java @@ -1,5 +1,6 @@ package com.orbitech.npvet.controller; +import com.orbitech.npvet.dto.UsuarioCadastrarDTO; import com.orbitech.npvet.dto.UsuarioDTO; import com.orbitech.npvet.entity.Usuario; import com.orbitech.npvet.service.UsuarioService; @@ -13,7 +14,7 @@ import java.util.List; @RestController -@RequestMapping("/usuario") +@RequestMapping("/npvet-api/usuario") public class UsuarioController { @Autowired private UsuarioService service; @@ -30,13 +31,13 @@ public class UsuarioController { } @PostMapping("/post") @PreAuthorize("hasAnyAuthority('ADMINISTRADOR')") - public ResponseEntitycreate(@Validated @RequestBody UsuarioDTO usuarioDTO, @AuthenticationPrincipal Usuario usuarioAutenticado){ + public ResponseEntitycreate(@Validated @RequestBody UsuarioCadastrarDTO usuarioDTO, @AuthenticationPrincipal Usuario usuarioAutenticado){ return ResponseEntity.ok(service.create(usuarioDTO, usuarioAutenticado)); } @PutMapping("/update/{id}") @PreAuthorize("hasAnyAuthority('ADMINISTRADOR')") - public ResponseEntityupdate(@AuthenticationPrincipal Usuario usuarioAutenticado, @PathVariable("id") final long id, @RequestBody @Validated UsuarioDTO usuarioDTO){ - return ResponseEntity.ok(service.update(id,usuarioDTO, usuarioAutenticado)); + public ResponseEntityupdate(@AuthenticationPrincipal Usuario usuarioAutenticado, @PathVariable("id") final long id, @RequestBody @Validated UsuarioCadastrarDTO UsuarioCadastrarDTO){ + return ResponseEntity.ok(service.update(id,UsuarioCadastrarDTO, usuarioAutenticado)); } @GetMapping("/nome/{nome}") diff --git a/src/main/java/com/orbitech/npvet/controller/VacinaController.java b/src/main/java/com/orbitech/npvet/controller/VacinaController.java index 69ac2dd4..e197b0d3 100644 --- a/src/main/java/com/orbitech/npvet/controller/VacinaController.java +++ b/src/main/java/com/orbitech/npvet/controller/VacinaController.java @@ -14,7 +14,7 @@ import java.util.List; @RestController -@RequestMapping("/vacina") +@RequestMapping("/npvet-api/vacina") @PreAuthorize("hasAuthority('ADMINISTRADOR')") public class VacinaController { diff --git a/src/main/java/com/orbitech/npvet/dto/UsuarioCadastrarDTO.java b/src/main/java/com/orbitech/npvet/dto/UsuarioCadastrarDTO.java new file mode 100644 index 00000000..4f2d0c5a --- /dev/null +++ b/src/main/java/com/orbitech/npvet/dto/UsuarioCadastrarDTO.java @@ -0,0 +1,59 @@ +package com.orbitech.npvet.dto; + +import com.orbitech.npvet.entity.Role; +import jakarta.persistence.*; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.validator.constraints.br.CPF; + +import java.time.LocalDateTime; + +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class UsuarioCadastrarDTO { + private String id; + // @NotNull(message = "Você precisa preencher um nome.") + @Size(max = 100, message = "Quantidade de caracteres excedida.") + private String nome; + + // @NotNull(message = "Você precisa preencher um CPF.") + @CPF(message = "CPF inválido.") + private String cpf; + + @Enumerated(EnumType.STRING) + @NotNull(message = "Você precisar definir o tipo de Usuário entre: SECRETARIA, ADMINISTRADOR ou MEDICO.") + private Role role; + + @NotNull(message = "Você precisa definir um nome de usuário.") + @Size(max = 30, message = "Quantidade de caracteres excedida.") + private String username; + + @NotNull(message = "Você precisa definir uma senha.") + @Size(max = 50, message = "Quantidade de caracteres excedida.") + private String password; + + private String token; + private LocalDateTime createdAt; + private LocalDateTime updatedAt; + private LocalDateTime deletedAt; + + public void roleStringSet(String role){ + this.role = Role.valueOf(role); + } + public String roleStringGet() { + return this.role.toString(); + } + + public void delete(){ + this.deletedAt = LocalDateTime.now(); + } + public void activate(){ + this.deletedAt = null; + } +} diff --git a/src/main/java/com/orbitech/npvet/entity/Usuario.java b/src/main/java/com/orbitech/npvet/entity/Usuario.java index 9cf63694..668a7c4e 100644 --- a/src/main/java/com/orbitech/npvet/entity/Usuario.java +++ b/src/main/java/com/orbitech/npvet/entity/Usuario.java @@ -25,7 +25,7 @@ public class Usuario extends AbstractEntity implements UserDetails { @Column(length = 100, name = "nome") private String nome; - @Column(unique = true, length = 11, name = "cpf") + @Column(unique = true, length = 14, name = "cpf") private String cpf; @Enumerated(EnumType.STRING) diff --git a/src/main/java/com/orbitech/npvet/oauth/jwt/JwtAuthenticationFilter.java b/src/main/java/com/orbitech/npvet/oauth/jwt/JwtAuthenticationFilter.java index 9a28a7a4..10425f94 100644 --- a/src/main/java/com/orbitech/npvet/oauth/jwt/JwtAuthenticationFilter.java +++ b/src/main/java/com/orbitech/npvet/oauth/jwt/JwtAuthenticationFilter.java @@ -31,7 +31,7 @@ protected void doFilterInternal( @NonNull HttpServletResponse response, @NonNull FilterChain filterChain ) throws ServletException, IOException { - if (request.getServletPath().contains("/npvet/api/auth")) { + if (request.getServletPath().contains("/npvet-api/auth")) { filterChain.doFilter(request, response); return; } diff --git a/src/main/java/com/orbitech/npvet/oauth/security/ApplicationSecurityConfig.java b/src/main/java/com/orbitech/npvet/oauth/security/ApplicationSecurityConfig.java index e1283fce..347b54ea 100644 --- a/src/main/java/com/orbitech/npvet/oauth/security/ApplicationSecurityConfig.java +++ b/src/main/java/com/orbitech/npvet/oauth/security/ApplicationSecurityConfig.java @@ -1,70 +1,32 @@ package com.orbitech.npvet.oauth.security; -import com.orbitech.npvet.oauth.jwt.JwtAuthenticationFilter; -import lombok.AllArgsConstructor; -import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.security.authentication.AuthenticationProvider; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; -import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.web.SecurityFilterChain; -import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; -import org.springframework.security.web.authentication.logout.LogoutHandler; -import org.springframework.web.cors.CorsConfiguration; -import org.springframework.web.cors.UrlBasedCorsConfigurationSource; -import org.springframework.web.filter.CorsFilter; - -import java.util.Arrays; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration @EnableWebSecurity -@AllArgsConstructor -public class ApplicationSecurityConfig { - - private static final String[] WHITE_LIST_URL = { - "/npvet/api/auth/**" - }; - private final JwtAuthenticationFilter jwtAuthFilter; - private final AuthenticationProvider authenticationProvider; - private final LogoutHandler logoutHandler; +public class ApplicationSecurityConfig implements WebMvcConfigurer { @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http - .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests((requests) -> requests - .requestMatchers("/auth/**").permitAll() - .anyRequest().authenticated()) - .authenticationProvider(authenticationProvider) - .addFilterBefore(jwtAuthFilter, UsernamePasswordAuthenticationFilter.class) - .logout(logout -> - logout.logoutUrl("/logout") - .addLogoutHandler(logoutHandler) - .logoutSuccessHandler((request, response, authentication) -> SecurityContextHolder.clearContext()) - ) - ; - + .csrf(AbstractHttpConfigurer::disable) + .authorizeHttpRequests(requests -> requests + .anyRequest().permitAll()); + return http.build(); } - @Bean - public FilterRegistrationBean corsFilter() { - UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); - CorsConfiguration config = new CorsConfiguration(); - config.setAllowCredentials(true); - config.addAllowedOriginPattern("*"); - config.setAllowedHeaders(Arrays.asList(HttpHeaders.AUTHORIZATION,HttpHeaders.CONTENT_TYPE,HttpHeaders.ACCEPT, HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); - config.setAllowedMethods(Arrays.asList(HttpMethod.GET.name(),HttpMethod.POST.name(),HttpMethod.PUT.name(),HttpMethod.DELETE.name())); - config.setMaxAge(3600L); - source.registerCorsConfiguration("/**", config); - FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source)); - bean.setOrder(-102); - return bean; + @Override + public void addCorsMappings(CorsRegistry registry) { + // Permite todas as origens para todas as rotas + registry.addMapping("/**").allowedOrigins("*"); } } diff --git a/src/main/java/com/orbitech/npvet/oauth/web/AuthenticationController.java b/src/main/java/com/orbitech/npvet/oauth/web/AuthenticationController.java index 2d780d07..29319cce 100644 --- a/src/main/java/com/orbitech/npvet/oauth/web/AuthenticationController.java +++ b/src/main/java/com/orbitech/npvet/oauth/web/AuthenticationController.java @@ -16,7 +16,7 @@ import java.io.IOException; @RestController -@RequestMapping("/auth") +@RequestMapping("/npvet-api/auth") @RequiredArgsConstructor public class AuthenticationController { diff --git a/src/main/java/com/orbitech/npvet/service/UsuarioService.java b/src/main/java/com/orbitech/npvet/service/UsuarioService.java index c466c4e5..0e230ebc 100644 --- a/src/main/java/com/orbitech/npvet/service/UsuarioService.java +++ b/src/main/java/com/orbitech/npvet/service/UsuarioService.java @@ -1,13 +1,17 @@ package com.orbitech.npvet.service; +import com.orbitech.npvet.dto.UsuarioCadastrarDTO; import com.orbitech.npvet.dto.UsuarioDTO; import com.orbitech.npvet.entity.Role; import com.orbitech.npvet.entity.Usuario; import com.orbitech.npvet.repository.UsuarioRepository; +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; import lombok.extern.log4j.Log4j2; import lombok.extern.slf4j.Slf4j; import org.modelmapper.ModelMapper; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; @@ -16,39 +20,61 @@ @Service @Slf4j +@AllArgsConstructor public class UsuarioService { @Autowired private UsuarioRepository repository; + private final PasswordEncoder passwordEncoder; + + private final ModelMapper mapper = new ModelMapper(); public UsuarioDTO toUsuarioDTO(Usuario usuarioEntidade){ return mapper.map(usuarioEntidade, UsuarioDTO.class); } + public UsuarioCadastrarDTO toUsuarioCadastrarDTO(Usuario usuarioEntidade){ + return mapper.map(usuarioEntidade, UsuarioCadastrarDTO.class); + } + public Usuario toUsuarioEntidade(UsuarioDTO usuarioDTO){ return mapper.map(usuarioDTO, Usuario.class); } - public UsuarioDTO getById(String id){ + public Usuario toUsuarioEntidade(UsuarioCadastrarDTO usuarioDTO){ + return mapper.map(usuarioDTO, Usuario.class); + } + + + public UsuarioDTO getById(String id){ return toUsuarioDTO(repository.findById(id).orElse(null)); } + public UsuarioCadastrarDTO getByIdForDelete(String id){ + return toUsuarioCadastrarDTO(repository.findById(id).orElse(null)); + } + public List getAll() { return repository.findAll().stream().map(this::toUsuarioDTO).toList(); } @Transactional - public UsuarioDTO create(UsuarioDTO usuarioDTO, Usuario usuarioAutenticado) { - Usuario usuarioByCpf = repository.findUsuarioByCpf(usuarioDTO.getCpf()); + public UsuarioDTO create(UsuarioCadastrarDTO usuarioCadastrarDTO, Usuario usuarioAutenticado) { + + String encodedPassword = passwordEncoder.encode(usuarioCadastrarDTO.getPassword()); - Assert.isTrue(usuarioByCpf == null, String.format("Usuário com o CPF: {%s} já existe!",usuarioDTO.getCpf())); - UsuarioDTO usuarioDT = toUsuarioDTO(repository.save(toUsuarioEntidade(usuarioDTO))); + usuarioCadastrarDTO.setPassword(encodedPassword); + + Usuario usuarioByCpf = repository.findUsuarioByCpf(usuarioCadastrarDTO.getCpf()); + + Assert.isTrue(usuarioByCpf == null, String.format("Usuário com o CPF: {%s} já existe!",usuarioCadastrarDTO.getCpf())); + UsuarioDTO usuarioDT = toUsuarioDTO(repository.save(toUsuarioEntidade(usuarioCadastrarDTO))); log.info("USUÁRIO:" + usuarioDT.getNome() + "NOME:" +usuarioDT.getNome()+ "USERNAME:" + usuarioDT.getUsername() + "CPF:" + usuarioDT.getCpf() + "| Criado por:" + usuarioAutenticado.getNome() + " "+ usuarioAutenticado.getId()); return usuarioDT; } @Transactional - public UsuarioDTO update(long id, UsuarioDTO usuarioDTO, Usuario usuarioAutenticado) { - UsuarioDTO usuarioDT = toUsuarioDTO(repository.save(toUsuarioEntidade(usuarioDTO))); + public UsuarioDTO update(long id, UsuarioCadastrarDTO UsuarioCadastrarDTO, Usuario usuarioAutenticado) { + UsuarioDTO usuarioDT = toUsuarioDTO(repository.save(toUsuarioEntidade(UsuarioCadastrarDTO))); log.info("USUÁRIO:" + usuarioDT.getNome() + "NOME:" +usuarioDT.getNome()+ "USERNAME:" + usuarioDT.getUsername() + "CPF:" + usuarioDT.getCpf() + "| Atualizado por:" + usuarioAutenticado.getNome() + " "+ usuarioAutenticado.getId()); return usuarioDT; } @@ -106,7 +132,7 @@ public UsuarioDTO getUsuarioByCpf(String cpf){ @Transactional public UsuarioDTO delete(String id, Usuario usuarioAutenticado){ - UsuarioDTO userById = getById(id); + UsuarioCadastrarDTO userById = getByIdForDelete(id); userById.delete(); UsuarioDTO usuarioDT = toUsuarioDTO(repository.save(toUsuarioEntidade(userById))); log.info("USUÁRIO:" + usuarioDT.getNome() + "NOME:" +usuarioDT.getNome()+ "USERNAME:" + usuarioDT.getUsername() + "CPF:" + usuarioDT.getCpf() + "| Deletado por:" + usuarioAutenticado.getNome() + " "+ usuarioAutenticado.getId()); diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 871df272..5c89a280 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -26,11 +26,6 @@ application.security.jwt.refresh-token.expiration=604800000 # ================== SERVIDOR ================== server.port=${API_PORT} -application.security.jwt.secret-key=404E635266556A586E3272357538782F413F4428472B4B6250645367566B5970 -application.security.jwt.expiration=86400000 -application.security.jwt.refresh-token.expiration=604800000 - - #================= LOGS =================== #logging.level.root = INFO