2
respostas

Algo deu errado.

import { NegociacoesView, MensagemView } from '../views/index'; import { Negociacao, Negociacoes } from '../models/index'; import { domInject,throttle } from '../helpers/decorators/index'; import{ NegociacaoParcial } from '../models/index';

let timer = 0; export class NegociacaoController {

@domInject('#data')
private _inputData: JQuery;

@domInject('#quantidade')
private _inputQuantidade: JQuery;

@domInject('#valor')
private _inputValor: JQuery;

private _negociacoes = new Negociacoes();
private _negociacoesView = new NegociacoesView('#negociacoesView');
private _mensagemView = new MensagemView('#mensagemView');

constructor() {
    this._negociacoesView.update(this._negociacoes);
}
@throttle()
adiciona() {

    let data = new Date(this._inputData.val().replace(/-/g, ','));

    if(!this._ehDiaUtil(data)) {

        this._mensagemView.update('Somente negociações em dias úteis, por favor!');
        return 
    }

    const negociacao = new Negociacao(
        data, 
        parseInt(this._inputQuantidade.val()),
        parseFloat(this._inputValor.val())
    );

    this._negociacoes.adiciona(negociacao);

    this._negociacoesView.update(this._negociacoes);
    this._mensagemView.update('Negociação adicionada com sucesso!');
}

private _ehDiaUtil(data: Date) {

    return data.getDay() != DiaDaSemana.Sabado && data.getDay() != DiaDaSemana.Domingo;
}

@throttle()
importarDados() {

    function isOK(res: Response) {

        if(res.ok) {
            return res;
        } else {
            throw new Error(res.statusText);
        }
    }
     clearTimeout(timer);
     timer = setTimeout(() =>{

        fetch('http://localhost:8080/dados')
                    .then(res => isOK(res))
                    .then(res => res.json())
                    .then((dados: any[]) => {
                        dados
                            .map(dado => new Negociacao(new Date(), dado.vezes, dado.montante))
                            .forEach(negociacao => this._negociacoes.adiciona(negociacao));
                        this._negociacoesView.update(this._negociacoes);
                    })
                    .catch(err => console.log(err.message));        

     },500)

    }
}

enum DiaDaSemana {

Domingo, 
Segunda, 
Terca, 
Quarta, 
Quinta, 
Sexta, 
Sabado

}

2 respostas

INDEX.TS

export * from './logarTempoDeExecucao'; export * from './domInject'; export * from './throttle';

Fala ai Amanda, tudo bem? Qual erro que sua aplicação está apresentando? Apenas olhando os códigos para mim não ficou muito claro o problema.

Fico no aguardo.