Ao tentar executar o PUT no Insomnia retorna o seguinte erro:
"status": 500, "error": "Internal Server Error", "trace": "java.lang.NullPointerException: Cannot invoke "med.voll.clinicavoll.endereco.DadosEnderecos.logradouro()" because "dados" is null\r\n\tat med.voll.clinicavoll.endereco.Endereco.atualizarInformacoes(Endereco.java:45)\r\n\tat
no terminal: java.lang.NullPointerException: Cannot invoke "med.voll.clinicavoll.endereco.DadosEnderecos.logradouro()" because "dados" is null
Abaixo a os métodos:
Classe médico
public void atualizarInformacoes(DadosAtualizacaoMedico dados) {
if(this.nome != null){
this.nome = dados.nome();
}
if (this.telefone != null){
this.telefone = dados.telefone();
}
if(this.endereco != null){
this.endereco.atualizarInformacoes(dados.endereco());
}
}
Classe endereço:
public void atualizarInformacoes(DadosEnderecos dados) {
if (this.logradouro != null) {
this.logradouro = dados.logradouro();
}
if (this.bairro != null) {
this.bairro = dados.bairro();
}
if (this.cep != null) {
this.cep = dados.cep();
}
if (this.cidade != null) {
this.cidade = dados.cidade();
}
if (this.uf != null) {
this.uf = dados.uf();
}
if (this.numero != null) {
this.numero = dados.numero();
}
if (this.complemento != null) {
this.complemento = dados.complemento();
}
}
Record DadosEndereco
public record DadosEnderecos(
@NotBlank
String logradouro,
@NotBlank
String bairro,
@NotBlank
@Pattern(regexp = "\\d{8}")
String cep,
@NotBlank
String cidade,
@NotBlank
String uf,
String numero,
String complemento) {
}
Método do controller
@PutMapping
@Transactional
public void atualizar(@RequestBody @Valid DadosAtualizacaoMedico dados){
var medico = medicoRepository.getReferenceById(dados.id());
medico.atualizarInformacoes(dados);
}