package data import ( "encoding/json" "fmt" "time" shared "go-garth/shared/interfaces" types "go-garth/internal/models/types" ) func (t *types.TrainingStatus) Get(day time.Time, c shared.APIClient) (interface{}, error) { dateStr := day.Format("2006-01-02") path := fmt.Sprintf("/metrics-service/metrics/trainingStatus/%s", dateStr) data, err := c.ConnectAPI(path, "GET", nil, nil) if err != nil { return nil, fmt.Errorf("failed to get training status: %w", err) } if len(data) == 0 { return nil, nil } var result types.TrainingStatus if err := json.Unmarshal(data, &result); err != nil { return nil, fmt.Errorf("failed to parse training status: %w", err) } return &result, nil } func (t *types.TrainingLoad) Get(day time.Time, c shared.APIClient) (interface{}, error) { dateStr := day.Format("2006-01-02") endDate := day.AddDate(0, 0, 6).Format("2006-01-02") // Get week of data path := fmt.Sprintf("/metrics-service/metrics/trainingLoad/%s/%s", dateStr, endDate) data, err := c.ConnectAPI(path, "GET", nil, nil) if err != nil { return nil, fmt.Errorf("failed to get training load: %w", err) } if len(data) == 0 { return nil, nil } var results []types.TrainingLoad if err := json.Unmarshal(data, &results); err != nil { return nil, fmt.Errorf("failed to parse training load: %w", err) } if len(results) == 0 { return nil, nil } return &results[0], nil }