mirror of
https://github.com/sstent/go-garth.git
synced 2026-01-25 16:42:28 +00:00
This commit implements the package structure refactoring as outlined in phase1.md (Task 1A.1). Key changes include: - Reorganized packages into `pkg/garmin` for public API and `internal/` for internal implementations. - Updated all import paths to reflect the new structure. - Consolidated types and client logic into their respective new packages. - Updated `cmd/garth/main.go` to use the new public API. - Fixed various compilation and test issues encountered during the refactoring process. - Converted `internal/api/client/auth_test.go` to a functional test. This establishes a solid foundation for future enhancements and improves maintainability.
41 lines
972 B
Go
41 lines
972 B
Go
package stats
|
|
|
|
import (
|
|
"errors"
|
|
"time"
|
|
)
|
|
|
|
const WEEKLY_HRV_PATH = "/wellness-service/wellness/weeklyHrv"
|
|
|
|
type WeeklyHRV struct {
|
|
CalendarDate time.Time `json:"calendar_date"`
|
|
AverageHRV float64 `json:"average_hrv"`
|
|
MaxHRV float64 `json:"max_hrv"`
|
|
MinHRV float64 `json:"min_hrv"`
|
|
HRVQualifier string `json:"hrv_qualifier"`
|
|
WellnessDataDaysCount int `json:"wellness_data_days_count"`
|
|
BaseStats
|
|
}
|
|
|
|
func NewWeeklyHRV() *WeeklyHRV {
|
|
return &WeeklyHRV{
|
|
BaseStats: BaseStats{
|
|
Path: WEEKLY_HRV_PATH + "/{end}/{period}",
|
|
PageSize: 52,
|
|
},
|
|
}
|
|
}
|
|
|
|
func (w *WeeklyHRV) Validate() error {
|
|
if w.CalendarDate.IsZero() {
|
|
return errors.New("calendar_date is required")
|
|
}
|
|
if w.AverageHRV < 0 || w.MaxHRV < 0 || w.MinHRV < 0 {
|
|
return errors.New("HRV values must be non-negative")
|
|
}
|
|
if w.MaxHRV < w.MinHRV {
|
|
return errors.New("max_hrv must be greater than min_hrv")
|
|
}
|
|
return nil
|
|
}
|