示例#1
0
    def get_company(cls, company_symbol):
        """ Query a company by its symbol """
        company = Company.query.filter_by(symbol=company_symbol).one()
        fetch_full = len(company.quotations) == 0

        try:
            ts = TimeSeries(key=ALPHAVANTAGE_API_KEY)
            data, meta_data = ts.get_daily_adjusted(symbol=company_symbol, outputsize=fetch_full)
            for date, quotation_data in data.items():
                mapped_qd = map_quotation_key(quotation_data)
                data[date] = mapped_qd
                quotation = cls.get(company_id=company.id, date=date)
                if quotation:
                    quotation.data = mapped_qd
                    quotation.save()
                else:
                    Quotation(company_id=company.id, date=date, data=mapped_qd).save()

            return data
        except ValueError:
            return Quotation.query.filter_by(company_id=company.id).all()