forked from Gustavo/FrontFocusAgenda
75 lines
3.0 KiB
Java
75 lines
3.0 KiB
Java
package com.agendaestudantil.controlador;
|
|
|
|
import com.agendaestudantil.dto.RequisicaoDisciplinaDTO;
|
|
import com.agendaestudantil.dto.RespostaApi;
|
|
import com.agendaestudantil.dto.RespostaDisciplinaDTO;
|
|
import com.agendaestudantil.entidade.Disciplina;
|
|
import com.agendaestudantil.servico.DisciplinaServico;
|
|
import jakarta.validation.Valid;
|
|
import org.springframework.http.HttpStatus;
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import java.util.List;
|
|
|
|
@RestController
|
|
@RequestMapping("/api/disciplinas")
|
|
public class DisciplinaControlador {
|
|
|
|
private final DisciplinaServico disciplinaServico;
|
|
|
|
public DisciplinaControlador(DisciplinaServico disciplinaServico) {
|
|
this.disciplinaServico = disciplinaServico;
|
|
}
|
|
|
|
@PostMapping
|
|
public ResponseEntity<RespostaApi<RespostaDisciplinaDTO>> criarDisciplina(
|
|
@Valid @RequestBody RequisicaoDisciplinaDTO dto) {
|
|
Disciplina disciplina = new Disciplina();
|
|
disciplina.setNome(dto.nome());
|
|
disciplina.setProfessor(dto.professor());
|
|
disciplina.setSala(dto.sala());
|
|
disciplina.setCor(dto.cor());
|
|
|
|
RespostaDisciplinaDTO resposta = disciplinaServico.criarDisciplina(disciplina, dto.estudanteId());
|
|
return ResponseEntity.status(HttpStatus.CREATED).body(RespostaApi.sucesso(resposta));
|
|
}
|
|
|
|
@GetMapping("/estudante/{estudanteId}")
|
|
public ResponseEntity<RespostaApi<List<RespostaDisciplinaDTO>>> listarPorEstudante(
|
|
@PathVariable String estudanteId) {
|
|
List<RespostaDisciplinaDTO> disciplinas = disciplinaServico.listarPorEstudante(estudanteId);
|
|
return ResponseEntity.ok(RespostaApi.sucesso(disciplinas));
|
|
}
|
|
|
|
@GetMapping("/{id}")
|
|
public ResponseEntity<RespostaApi<RespostaDisciplinaDTO>> buscarPorId(
|
|
@PathVariable String id,
|
|
@RequestParam String estudanteId) {
|
|
RespostaDisciplinaDTO disciplina = disciplinaServico.buscarPorId(id, estudanteId);
|
|
return ResponseEntity.ok(RespostaApi.sucesso(disciplina));
|
|
}
|
|
|
|
@PutMapping("/{id}")
|
|
public ResponseEntity<RespostaApi<RespostaDisciplinaDTO>> atualizarDisciplina(
|
|
@PathVariable String id,
|
|
@Valid @RequestBody RequisicaoDisciplinaDTO dto) {
|
|
Disciplina disciplina = new Disciplina();
|
|
disciplina.setNome(dto.nome());
|
|
disciplina.setProfessor(dto.professor());
|
|
disciplina.setSala(dto.sala());
|
|
disciplina.setCor(dto.cor());
|
|
|
|
RespostaDisciplinaDTO resposta = disciplinaServico.atualizarDisciplina(id, disciplina, dto.estudanteId());
|
|
return ResponseEntity.ok(RespostaApi.sucesso(resposta));
|
|
}
|
|
|
|
@DeleteMapping("/{id}")
|
|
public ResponseEntity<RespostaApi<Void>> excluirDisciplina(
|
|
@PathVariable String id,
|
|
@RequestParam String estudanteId) {
|
|
disciplinaServico.excluirDisciplina(id, estudanteId);
|
|
return ResponseEntity.status(HttpStatus.NO_CONTENT).body(RespostaApi.sucesso(null));
|
|
}
|
|
}
|