3
respostas

Erro 500 no POST de comentários

Estou usando a API online, quando tento comentar da erro 500 no POST.

Foto.js

render() { return (

{ this.state.likers.map(liker => { return (<Link key={liker.login} href={/timeline/${liker.login}}>{liker.login},) }) }
      curtiram

    </div>

    <p className="foto-info-legenda">
      <a className="foto-info-autor">autor </a>
      {this.props.foto.comentario}
    </p>

    <ul className="foto-info-comentarios">
      {
        this.state.comentarios.map(comentario => {
          return (
            <li className="comentario" key={comentario.id}>
              <Link to={`/timeline/${comentario.login}`} className="foto-info-autor">{comentario.login} </Link>
              {comentario.texto}
            </li>
          );
        })
      }
    </ul>
  </div>
);

}

comenta(event){ event.preventDefault(); const requestInfo={ method:'POST', body:JSON.stringify({text:this.comentario.value}), headers:new Headers({ 'Content-type':'application/json' }) };

fetch(`https://instalura-api.herokuapp.com/api/fotos/${this.props.foto.id}/comment?X-AUTH-TOKEN=${localStorage.getItem('auth-token')}`, requestInfo)
  .then(response =>{
    if (response.ok) {
      return response.json();
    }else{
      console.log(response)
      throw new Error("não foi possível comentar");
    }
  })
  .then(infoComentario => {
    Pubsub.publish('novos-comentarios', {fotoId:this.props.foto.id, infoComentario});
  })

}

3 respostas

Fala aí Mario, tudo bem? Consegue mandar o erro que a API está retornando para você? Ficaria mais fácil tentar lhe ajudar, o erro 500 pode ser por N motivos.

Fico no aguardo.

Desculpa a demora, segue link do github: https://github.com/raphael-natan/React-alura-part2.git Segue retorno do POSTMAN!

{
    "timestamp": 1553004008456,
    "status": 500,
    "error": "Internal Server Error",
    "exception": "javax.validation.ConstraintViolationException",
    "message": "Validation failed for classes [br.com.alura.instalura.models.Comentario] during persist time for groups [javax.validation.groups.Default, ]\nList of constraint violations:[\n\tConstraintViolationImpl{interpolatedMessage='may not be empty', propertyPath=texto, rootBeanClass=class br.com.alura.instalura.models.Comentario, messageTemplate='{org.hibernate.validator.constraints.NotBlank.message}'}\n]",
    "path": "/api/fotos/5/comment"
}

Já agora, gostaria de saber da transcrição da parte 5- Componente de transição animada, pois não posso ver os vídeos e estudo pela transcrição das aulas! Um abraço.

Esse erro é porque aparentemente você não informou um campo texto.

Dá uma verifica.

Sobre a transcrição vou perguntar para o pessoal.

Espero ter ajudado.