def get_earnings()

in src/backend/domain/data_providers/alpha_vantage.py [0:0]


    def get_earnings(self, symbol: str, start_date: str, end_date: str) -> Dict[str, Any]:
        start_date = start_date.split()[0]
        end_date = end_date.split()[0]

        earnings_url = self.ALPHAVANTAGE_EARNINGS_URL_TEMPLATE.substitute(symbol=symbol, api_key=self.api_key)

        result = json.loads(requests.get(earnings_url).content.decode())

        if "Error Message" in result:
            raise DataNotFoundError(
                f"Data provider failed on fetch for following symbol\: {symbol}\nWith following message\: {result['Error Message']}"
            )

        if not result:
            return {
                "meta": {
                    "symbol": symbol,
                    "name": "",
                    "currency": "USD",
                    "exchange": "",
                    "mic_code": "",
                    "exchange_timezone": "",
                },
                "earnings": [],
            }

        quarterly = result["quarterlyEarnings"]
        tmp_quarterly = {item["reportedDate"]: item for item in quarterly}

        start_date_entry, end_date_entry = self.get_time_border_data(tmp_quarterly, start_date, end_date)

        quarterly.reverse()
        start_index = result["quarterlyEarnings"].index(start_date_entry[1])
        end_index = result["quarterlyEarnings"].index(end_date_entry[1]) + 1
        quarterly = quarterly[start_index:end_index]

        converted_earnings = self.convert_earnings(symbol, quarterly)

        return converted_earnings