Correção de bugs e criação do termos de privacidade

This commit is contained in:
2026-05-19 20:52:36 -03:00
commit ef20162351
76 changed files with 6286 additions and 0 deletions
@@ -0,0 +1,75 @@
package com.agendaestudantil.controlador;
import com.agendaestudantil.dto.RespostaApi;
import com.agendaestudantil.dto.RequisicaoAtualizacaoEstudanteDTO;
import com.agendaestudantil.dto.RequisicaoCadastroDTO;
import com.agendaestudantil.dto.RespostaDadosCompletoDTO;
import com.agendaestudantil.dto.RespostaEstudanteDTO;
import com.agendaestudantil.dto.RequisicaoLoginDTO;
import com.agendaestudantil.dto.RespostaLoginDTO;
import com.agendaestudantil.dto.RequisicaoTrocaSenhaDTO;
import com.agendaestudantil.servico.EstudanteServico;
import jakarta.validation.Valid;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/estudantes")
public class EstudanteControlador {
private final EstudanteServico estudanteServico;
public EstudanteControlador(EstudanteServico estudanteServico) {
this.estudanteServico = estudanteServico;
}
@PostMapping("/cadastro")
public ResponseEntity<RespostaApi<RespostaEstudanteDTO>> cadastrar(@Valid @RequestBody RequisicaoCadastroDTO dto) {
RespostaEstudanteDTO resposta = estudanteServico.cadastrar(dto);
return ResponseEntity.status(HttpStatus.CREATED).body(RespostaApi.sucesso(resposta));
}
@PostMapping("/login")
public ResponseEntity<RespostaApi<RespostaLoginDTO>> login(@Valid @RequestBody RequisicaoLoginDTO dto) {
RespostaLoginDTO resposta = estudanteServico.login(dto);
return ResponseEntity.ok(RespostaApi.sucesso(resposta));
}
@GetMapping("/me")
public ResponseEntity<RespostaApi<RespostaEstudanteDTO>> me(@AuthenticationPrincipal UserDetails userDetails) {
RespostaEstudanteDTO resposta = estudanteServico.buscarPorId(userDetails.getUsername());
return ResponseEntity.ok(RespostaApi.sucesso(resposta));
}
@GetMapping("/me/dados")
public ResponseEntity<RespostaApi<RespostaDadosCompletoDTO>> exportarDados(
@AuthenticationPrincipal UserDetails userDetails) {
RespostaDadosCompletoDTO dados = estudanteServico.exportarDados(userDetails.getUsername());
return ResponseEntity.ok(RespostaApi.sucesso(dados));
}
@PutMapping("/me")
public ResponseEntity<RespostaApi<RespostaEstudanteDTO>> atualizar(
@AuthenticationPrincipal UserDetails userDetails,
@Valid @RequestBody RequisicaoAtualizacaoEstudanteDTO dto) {
RespostaEstudanteDTO resposta = estudanteServico.atualizar(userDetails.getUsername(), dto);
return ResponseEntity.ok(RespostaApi.sucesso(resposta));
}
@PutMapping("/senha")
public ResponseEntity<RespostaApi<Void>> trocarSenha(
@AuthenticationPrincipal UserDetails userDetails,
@Valid @RequestBody RequisicaoTrocaSenhaDTO dto) {
estudanteServico.trocarSenha(userDetails.getUsername(), dto);
return ResponseEntity.ok(RespostaApi.sucesso(null));
}
@DeleteMapping("/me")
public ResponseEntity<RespostaApi<Void>> excluirConta(@AuthenticationPrincipal UserDetails userDetails) {
estudanteServico.excluirConta(userDetails.getUsername());
return ResponseEntity.ok(RespostaApi.sucesso(null));
}
}