class NegociacaoService {
constructor() {
this._http = new HttpService();
}
cadastra(negociacao) {
return ConnectionFactory
.getConnection()
.then(conexao => new NegociacaoDao(conexao))
.then(dao => dao.adiciona(negociacao))
.then(() => 'Negociação adicionada com sucesso!')
.catch(() => { throw new Error('Não foi possível adicionar a negociação.'); });
}
apaga() {
return ConnectionFactory
.getConnection()
.then(conexao => new NegociacaoDao(conexao))
.then(dao => dao.apagaTodos())
.then(() => 'Negociações apagadas com sucesso')
.catch(() => { throw new Error('Não foi possível apagar as negociações.'); });
}
todos() {
return ConnectionFactory
.getConnection()
.then(conexao => new NegociacaoDao(conexao))
.then(dao => dao.listaTodos())
.catch(() => { throw new Error('Não foi possível recuperar as negociaçõesF') });
}
obterNegociacoes(rota) {
return new Promise((resolve, reject) => {
this._http
.get('negociacoes/' + rota)
.then(negociacoes =>
resolve(negociacoes
.map(objeto => new Negociacao(new Date(objeto.data), objeto.quantidade, objeto.valor))))
.catch(erro => reject(erro));
});
}
obterNegociacoesDaSemana() {
return this.obterNegociacoes('semana');
}
obterNegociacoesDaSemanaAnterior() {
return this.obterNegociacoes('anterior');
}
obterNegociacoesDaSemanaRetrasada() {
return this.obterNegociacoes('retrasada');
}
importa(listaAtual) {
return this.obterNegociacoesDaSemana()
.then(negociacoes => negociacoes.filter(negociacao =>
!listaAtual.some(item => JSON.stringify(negociacao) == JSON.stringify(item))))
.catch(erro => {
console.log(erro);
throw new Error('Não foi possível importar as negociações');
});
}
importaTodos(listaAtual) {
return Promise.all([
this.obterNegociacoesDaSemana(),
this.obterNegociacoesDaSemanaAnterior(),
this.obterNegociacoesDaSemanaRetrasada()])
.then(negociacoes => {
return negociacoes.reduce((retorno, item) => retorno.concat(item), []);
})
.then(negociacoes => negociacoes.filter(negociacao =>
!listaAtual.some(item => JSON.stringify(negociacao) == JSON.stringify(item))))
.catch(erro => {
console.log(erro);
throw new Error('Não foi possível importar todas as negociações.');
});
}
}
O código está funcionando mas os métodos "importa" e "importaTodos" ficam com "..." abaixo do nome provendo a mensagem do título deste tópico. Algum motivo?