Metrics Div and Earnings Added

Added Dividends and Earnings Metrics.
Fixed MarketMetric function.
This commit is contained in:
sjc
2025-05-28 07:55:12 -04:00
parent 6fe6d2db47
commit db7e6eaf8f

View File

@@ -6,6 +6,30 @@ import (
"net/url"
)
type DividendInfo struct {
OccuredDate string `json:"occurred-date"`
Amount float32 `json:"amount"`
}
type MarketMetricDividendResponse struct {
Data struct {
Items []DividendInfo `json:"items"`
}
Context string `json:"context"`
}
type EarningsInfo struct {
OccuredDate string `json:"occurred-date"`
EPS float32 `json:"eps"`
}
type MarketMetricEarningResponse struct {
Data struct {
Items []EarningsInfo `json:"items"`
}
Context string `json:"context"`
}
type MarketMetricInfo struct {
Symbol string `json:"symbol"`
ImpliedVolatilityIndex float32 `json:"implied-volatility-index"`
@@ -23,22 +47,29 @@ type MarketMetricInfo struct {
} `json:"option-expiration-implied-volatilities"`
}
func (api *TastytradeAPI) GetMarketMetricInfo(symbol string) (MarketMetricInfo, error) {
type MarketMetricResponse struct {
Data struct {
Items []MarketMetricInfo `json:"items"`
}
Context string `json:"context"`
}
func (api *TastytradeAPI) GetMarketMetricInfo(symbol string) (MarketMetricResponse, error) {
urlVal := fmt.Sprintf("%s/market-metrics/%s", api.host, url.PathEscape(symbol))
data, err := api.fetchData(urlVal)
if err != nil {
return MarketMetricInfo{}, err
return MarketMetricResponse{}, err
}
var response MarketMetricInfo
var response MarketMetricResponse
jsonData, err := json.Marshal(data)
if err != nil {
return MarketMetricInfo{}, err
return MarketMetricResponse{}, err
}
err = json.Unmarshal(jsonData, &response)
if err != nil {
return MarketMetricInfo{}, err
return MarketMetricResponse{}, err
}
return response, nil