Bom dia, galera! Eu estou construindo um front baseado no nesse back e aumentando suas funcionalidades, mas estou tendo muitos problemas para conseguir adicionar uma resposta a um determinado tópico, ajudaria muito se algum pudesse me apontar o que estou fazendo de errado. Segue meu código abaixo:
End-point:
@PostMapping("/{idTopico}/resposta")
@Transactional
public ResponseEntity<RespostaDto> responder(@PathVariable Long idTopico, @RequestBody @Valid RespostaForm form, UriComponentsBuilder uriBuilder) {
Topico topico = topicoRepository.getOne(idTopico);
Usuario autor = (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
Resposta resposta = form.converter(topico, autor);
topico.adicionarResposta(resposta);
topicoRepository.save(topico);
URI uri = uriBuilder.path("/topicos/{idTopico}/resposta/{idResposta}").buildAndExpand(topico.getId(), resposta.getId()).toUri();
return ResponseEntity.created(uri).body(new RespostaDto(resposta));
}
Resposta Form:
public class RespostaForm {
private String mensagem;
public Resposta converter(Topico topico, Usuario usuario) {
return new Resposta(getMensagem(), topico, usuario);
}
public String getMensagem() {
return mensagem;
}
public void setMensagem(String mensagem) {
this.mensagem = mensagem;
}
}
adicionar resposta:
public void adicionarResposta(Resposta resposta) {
List<Resposta> respostas = getRespostas();
respostas.add(resposta);
setRespostas(respostas);
}