Boa noite pessoal,
Seguinte, na minha API, sempre que der um erro, eu vou retornar um objeto no body com algumas infos a mais, por exemplo:
private String titulo;
private String mensagem;
private Long status;
private Long timestamp;
private String mensagemDesenvolvedor;
Quando ocorrer, preciso passar esse objeto para meu componente, porém só estou conseguindo passar um texto.
Minha camada service:
// domain/xpto/MeuService.js
export default class MeuService {
delete(id) {
return this._resource.delete({ id })
.then(null, err => {
// o err.body vem meu objeto detalhado
// quero passar ele na minha chamada
// Ex: throw new Error(err.body);
throw new Error(err.body.mensagem);
})
}
}
Meu componente:
// components/xpto/MeuComponente.vue
delete(objeto) {
this.service.delete(objeto.id)
.then(()=> {
// Código omitido
}, err => {
// Dessa forma só pego a mensagem
// Queria por exemplo:
// err.mensagem,
// err.titulo
this.message = err.message;
});
}
Tem como fazer isso? A solução seria criar uma exception customizada? Como ficaria a organizacao dos fontes nesse caso?
Obrigado pela atenção.