Documentation ¶
Index ¶
- type ActiveZoneMinutesDay
- type ActiveZoneMinutesIntraday
- type ActivitiesFrequent
- type ActivitiesGoal
- type ActivitiesHeartIntraday
- type ActivitiesInterdayLog
- type ActivitiesIntradaySingleRecord
- type ActivitiesLifetime
- type ActivitiesLog
- type ActivitiesLogList
- type ActivitiesLogSingleRecord
- type ActivitiesSummaryDay
- type ActivitiesTypes
- type AddFoodLogResponse
- type Badge
- type BadgesList
- type BodyFat
- type BodyFatGoal
- type BodyWeight
- type BodyWeightGoal
- type BreathingRate
- type BreathingRateIntraday
- type CardioFitnessScoreLog
- type Config
- type Device
- type ECGLogList
- type FoodCollectionList
- type FoodEntry
- type FoodGoal
- type FoodLocales
- type FoodLog
- type FoodSearchResult
- type FoodUnits
- type FoodWaterLogDateRange
- type Friend
- type FriendsInvitations
- type FriendsLeaderboard
- type FriendsList
- type GarminTrainingCenterDatabasev2
- type HRVDay
- type HRVIntraday
- type HRVIntradayValue
- type HRVMinutes
- type HRVValue
- type HeartDay
- type HeartIntraday
- type HeartRateVariabilityIntraday
- type HeartRateVariabilitySummary
- type HeartRateZones
- type IntrospectResponse
- type LogListParameters
- type NewActivity
- type NewActivityResponse
- type NewFoodLog
- type Profile
- type Ratelimit
- type Scope
- type Session
- func (m *Session) ActiveZoneMinutesIntraday(day string, resolution string) (ActiveZoneMinutesIntraday, error)
- func (m *Session) ActiveZoneMinutesIntradayByDateRange(startDay string, endDay string, resolution string) (ActiveZoneMinutesIntraday, error)
- func (m *Session) ActiveZoneMinutesLogByDateRange(startDay string, endDay string) (ActiveZoneMinutesDay, error)
- func (m *Session) ActiveZoneMinutesLogByDay(day string) (ActiveZoneMinutesDay, error)
- func (m *Session) ActivitiesDaySummary(day string) (ActivitiesSummaryDay, error)
- func (m *Session) ActivitiesGoal(period string) (ActivitiesGoal, error)
- func (m *Session) ActivitiesLifetime() (ActivitiesLifetime, error)
- func (m *Session) ActivitiesLogByDay(day string, activity string, fetchRange string) (ActivitiesLog, error)
- func (m *Session) ActivitiesLogInterdayByDay(day string, activity string) (ActivitiesInterdayLog, error)
- func (m *Session) ActivityFrequent() ([]ActivitiesFrequent, error)
- func (m *Session) ActivityLog(params LogListParameters) (ActivitiesLogList, error)
- func (m *Session) ActivityRecent() ([]ActivitiesFrequent, error)
- func (m *Session) ActivityTCX(logID int64) ([]byte, error)
- func (m *Session) ActivityTypes() (ActivitiesTypes, error)
- func (m *Session) AddBodyFat(day string, fat float64) (BodyFat, error)
- func (m *Session) AddBodyWeight(day string, weight float64) (BodyWeight, error)
- func (m *Session) AddFood(data NewFoodLog) (AddFoodLogResponse, error)
- func (m *Session) AddFoodFavorite(id uint64) error
- func (m *Session) AddSleep(date string, startTime string, duration int64) (SleepDay, error)
- func (m *Session) AddSubscription(collectionPath string, uniqueID int) (bool, Subscription, error)
- func (m *Session) AddWater(date string, amount float64, unit string) (WaterLog, error)
- func (m *Session) Badges(userID uint64) (BadgesList, error)
- func (m *Session) BodyFatGoal() (BodyFatGoal, error)
- func (m *Session) BodyFatLogByDateRange(startDay string, endDay string) (BodyFat, error)
- func (m *Session) BodyFatLogByDay(day string) (BodyFat, error)
- func (m *Session) BodyWeightGoal() (BodyWeightGoal, error)
- func (m *Session) BodyWeightLogByDateRange(startDay string, endDay string) (BodyWeight, error)
- func (m *Session) BodyWeightLogByDay(day string) (BodyWeight, error)
- func (m *Session) BreathingRateLogByDateRange(startDay string, endDay string) (BreathingRate, error)
- func (m *Session) BreathingRateLogByDateRangeIntraday(startDay string, endDay string) (BreathingRateIntraday, error)
- func (m *Session) BreathingRateLogByDay(day string) (BreathingRate, error)
- func (m *Session) BreathingRateLogByDayIntraday(day string) (BreathingRateIntraday, error)
- func (m *Session) CardioFitnessScoreByDateRange(startDate, endDate string) (CardioFitnessScoreLog, error)
- func (m *Session) CardioFitnessScoreByDay(date string) (CardioFitnessScoreLog, error)
- func (m *Session) Devices(userID uint64) ([]Device, error)
- func (m *Session) ECGLog(params LogListParameters) (ECGLogList, error)
- func (m *Session) Exchange(code string) (*oauth2.Token, error)
- func (m *Session) FoodByID(id uint64) (FoodEntry, error)
- func (m *Session) FoodFavorites() (FoodCollectionList, error)
- func (m *Session) FoodFrequent() (FoodCollectionList, error)
- func (m *Session) FoodGoal() (FoodGoal, error)
- func (m *Session) FoodLocales() (FoodLocales, error)
- func (m *Session) FoodLogByDateRange(startDay string, endDay string) (FoodWaterLogDateRange, error)
- func (m *Session) FoodLogByDay(day string) (FoodLog, error)
- func (m *Session) FoodRecent() (FoodCollectionList, error)
- func (m *Session) FoodSearch(value string) (FoodSearchResult, error)
- func (m *Session) FoodUnits() (FoodUnits, error)
- func (m *Session) FriendInviteByEmail(value string) ([]byte, error)
- func (m *Session) FriendInviteByUserID(value string) ([]byte, error)
- func (m *Session) FriendsRespondToInvition(userID string, accept bool) ([]byte, error)
- func (m *Session) GetFriendInvitations() (FriendsInvitations, error)
- func (m *Session) GetFriends() (FriendsList, error)
- func (m *Session) GetFriendsLeaderboard() (FriendsLeaderboard, error)
- func (m *Session) GetRatelimit() Ratelimit
- func (m *Session) GetSubscriptions(collectionPath string) (bool, SubscriptionList, error)
- func (m *Session) HRVIntradayByDate(day string) (HeartRateVariabilityIntraday, error)
- func (m *Session) HRVIntradayByDateRange(startDay string, endDay string) (HeartRateVariabilityIntraday, error)
- func (m *Session) HRVSummaryByDate(day string) (HeartRateVariabilitySummary, error)
- func (m *Session) HRVSummaryByDateRange(startDay string, endDay string) (HeartRateVariabilitySummary, error)
- func (m *Session) HeartIntraday(day string, resolution string, timeFrom string, timeTo string) (HeartIntraday, error)
- func (m *Session) HeartLogByDateRange(startDay string, endDay string) (HeartDay, error)
- func (m *Session) HeartLogByDateRangeIntraday(startDay string, endDay string, resolution string) (HeartDay, error)
- func (m *Session) HeartLogByDay(day string) (HeartDay, error)
- func (m *Session) Introspect() (IntrospectResponse, error)
- func (m *Session) LogActivity(activity NewActivity) (NewActivityResponse, error)
- func (m *Session) LoginURL(csrf string) string
- func (m *Session) Profile(userID uint64) (Profile, error)
- func (m *Session) RemoveActivity(id int) error
- func (m *Session) RemoveBodyFat(logID int64) error
- func (m *Session) RemoveBodyWeight(logID int64) error
- func (m *Session) RemoveFood(id uint64) error
- func (m *Session) RemoveFoodFavorite(id uint64) error
- func (m *Session) RemoveSleep(sleepID uint64) error
- func (m *Session) RemoveSubscription(collectionPath string, uniqueID int) (bool, error)
- func (m *Session) RemoveWater(id uint64) error
- func (m *Session) SaveToken() error
- func (m *Session) SetActivitiesGoal(period string, goals ActivitiesGoal) (ActivitiesGoal, error)
- func (m *Session) SetBodyFatGoal(targetFat float64) (FoodGoal, error)
- func (m *Session) SetBodyWeightGoal(startDate string, startWeight float64, weightGoal float64) (BodyWeightGoal, error)
- func (m *Session) SetFoodGoal(goals map[string]string) (FoodGoal, error)
- func (m *Session) SetProfile(userID uint64, params map[string]string) (Profile, error)
- func (m *Session) SetSleepGoal(minDuration int) (SleepGoal, error)
- func (m *Session) SetToken(token *oauth2.Token)
- func (m *Session) SetWaterGoal(goal float64) (WaterGoal, error)
- func (m *Session) SleepByDay(day string) (SleepDay, error)
- func (m *Session) SleepByDayRange(startDay string, endDay string) (SleepDay, error)
- func (m *Session) SleepGoal() (SleepGoal, error)
- func (m *Session) SleepLogList(params LogListParameters) (SleepLogList, error)
- func (m *Session) SpO2ByDay(day string) (SpO2, error)
- func (m *Session) SpO2ByDayIntraday(day string) (SpO2Intraday, error)
- func (m *Session) TemperatureCoreByDateRange(startDay string, endDay string) (TemperatureCore, error)
- func (m *Session) TemperatureCoreByDay(day string) (TemperatureCore, error)
- func (m *Session) TemperatureSkinByDateRange(startDay string, endDay string) (TemperatureSkin, error)
- func (m *Session) TemperatureSkinByDay(day string) (TemperatureSkin, error)
- func (m *Session) UpdateFood(id uint64, data NewFoodLog) (AddFoodLogResponse, error)
- func (m *Session) UpdateWater(id uint64, amount float64, unit string) (WaterLog, error)
- func (m *Session) WaterGoal() (WaterGoal, error)
- func (m *Session) WaterLogByDateRange(startDay string, endDay string) (FoodWaterLogDateRange, error)
- func (m *Session) WaterLogByDay(day string) (WaterLog, error)
- type SleepDay
- type SleepGoal
- type SleepLogList
- type SpO2
- type SpO2Intraday
- type Subscription
- type SubscriptionList
- type TemperatureCore
- type TemperatureSkin
- type WaterGoal
- type WaterLog
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ActiveZoneMinutesDay ¶ added in v1.1.0
type ActiveZoneMinutesDay struct { ActivitiesActiveZoneMinutes []struct { DateTime string `json:"dateTime"` Value struct { FatBurnActiveZoneMinutes int `json:"fatBurnActiveZoneMinutes"` ActiveZoneMinutes int `json:"activeZoneMinutes"` } `json:"value"` } `json:"activities-active-zone-minutes"` }
ActiveZoneMinutesDay contains the active zone minutes for a given day
type ActiveZoneMinutesIntraday ¶ added in v1.1.0
type ActiveZoneMinutesIntraday struct { ActivitiesActiveZoneMinutesIntraday []struct { DateTime string `json:"dateTime"` Minutes []struct { Minute string `json:"minute"` Value struct { FatBurnActiveZoneMinutes int `json:"fatBurnActiveZoneMinutes,omitempty"` ActiveZoneMinutes int `json:"activeZoneMinutes"` } `json:"value,omitempty"` } `json:"minutes"` } `json:"activities-active-zone-minutes-intraday"` }
type ActivitiesFrequent ¶
type ActivitiesFrequent struct { ActivityID int `json:"activityId"` Calories int `json:"calories"` Description string `json:"description"` Distance float64 `json:"distance"` Duration int `json:"duration"` Name string `json:"name"` }
ActivitiesFrequent contains an activity from frequent call
type ActivitiesGoal ¶
type ActivitiesGoal struct { Goals struct { ActiveMinutes int `json:"activeMinutes,omitempty"` CaloriesOut int `json:"caloriesOut,omitempty"` Distance float64 `json:"distance"` Floors int `json:"floors"` Steps int `json:"steps"` } `json:"goals"` }
ActivitiesGoal contains the activities goal of an user
type ActivitiesHeartIntraday ¶
type ActivitiesHeartIntraday struct { Dataset []struct { Time string `json:"time"` Value int `json:"value"` } `json:"dataset"` DatasetInterval int `json:"datasetInterval"` DatasetType string `json:"datasetType"` }
ActivitiesHeartIntraday intraday data
type ActivitiesInterdayLog ¶
type ActivitiesInterdayLog struct { ActivitiesCalories []ActivitiesLogSingleRecord `json:"activities-calories,omitempty"` ActivitiesCaloriesIntraday ActivitiesIntradaySingleRecord `json:"activities-calories-intraday,omitempty"` ActivitiesSteps []ActivitiesLogSingleRecord `json:"activities-steps,omitempty"` ActivitiesStepsIntraday ActivitiesIntradaySingleRecord `json:"activities-steps-intraday,omitempty"` ActivitiesDistance []ActivitiesLogSingleRecord `json:"activities-distance,omitempty"` ActivitiesDistanceIntraday ActivitiesIntradaySingleRecord `json:"activities-distance-intraday,omitempty"` ActivitiesFloors []ActivitiesLogSingleRecord `json:"activities-floors,omitempty"` ActivitiesFloorsIntraday ActivitiesIntradaySingleRecord `json:"activities-floors-intraday,omitempty"` ActivitiesElevation []ActivitiesLogSingleRecord `json:"activities-elevation,omitempty"` ActivitiesElevationIntraday ActivitiesIntradaySingleRecord `json:"activities-elevation-intraday,omitempty"` }
ActivitiesInterdayLog contains user activity logs for the given day in intraday accuracy
type ActivitiesIntradaySingleRecord ¶
type ActivitiesIntradaySingleRecord struct { Dataset []struct { Time string `json:"time"` Value float64 `json:"value"` } `json:"dataset,omitempty"` DatasetInterval int `json:"datasetInterval,omitempty"` DatasetType string `json:"datasetType,omitempty"` }
ActivitiesIntradaySingleRecord contains a single record of an intraday activity
type ActivitiesLifetime ¶
type ActivitiesLifetime struct { Best struct { Total struct { Distance struct { Date string `json:"date"` Value float64 `json:"value"` } `json:"distance"` Floors struct { Date string `json:"date"` Value float64 `json:"value"` } `json:"floors"` Steps struct { Date string `json:"date"` Value int64 `json:"value"` } `json:"steps"` } `json:"total"` Tracker struct { Distance struct { Date string `json:"date"` Value float64 `json:"value"` } `json:"distance"` Floors struct { Date string `json:"date"` Value float64 `json:"value"` } `json:"floors"` Steps struct { Date string `json:"date"` Value int64 `json:"value"` } `json:"steps"` } `json:"tracker"` } `json:"best"` Lifetime struct { Total struct { ActiveScore float64 `json:"activeScore"` CaloriesOut float64 `json:"caloriesOut"` Distance float64 `json:"distance"` Floors int64 `json:"floors"` Steps int64 `json:"steps"` } `json:"total"` Tracker struct { ActiveScore float64 `json:"activeScore"` CaloriesOut float64 `json:"caloriesOut"` Distance float64 `json:"distance"` Floors int64 `json:"floors"` Steps int64 `json:"steps"` } `json:"tracker"` } `json:"lifetime"` }
ActivitiesLifetime contains the account lifetime statistics
type ActivitiesLog ¶
type ActivitiesLog struct { ActivitiesTrackerSteps []ActivitiesLogSingleRecord `json:"activities-tracker-steps,omitempty"` ActivitiesTrackerCalories []ActivitiesLogSingleRecord `json:"activities-tracker-calories,omitempty"` ActivitiesTrackerDistance []ActivitiesLogSingleRecord `json:"activities-tracker-distance,omitempty"` ActivitiesTrackerFloors []ActivitiesLogSingleRecord `json:"activities-tracker-floors,omitempty"` ActivitiesTrackerElevation []ActivitiesLogSingleRecord `json:"activities-tracker-elevation,omitempty"` ActivitiesTrackerMinutesSedentary []ActivitiesLogSingleRecord `json:"activities-tracker-minutesSedentary,omitempty"` ActivitiesTrackerMinutesLightlyActive []ActivitiesLogSingleRecord `json:"activities-tracker-minutesLightlyActive,omitempty"` ActivitiesTrackerMinutesFairlyActive []ActivitiesLogSingleRecord `json:"activities-tracker-minutesFairlyActive,omitempty"` ActivitiesTrackerMinutesVeryActive []ActivitiesLogSingleRecord `json:"activities-tracker-minutesVeryActive,omitempty"` ActivitiesTrackerActivityCalories []ActivitiesLogSingleRecord `json:"activities-tracker-activityCalories,omitempty"` }
ActivitiesLog contains user activity logs, only one dataset is used and the other ones are empty
type ActivitiesLogList ¶
type ActivitiesLogList struct { Activities []struct { ActiveDuration int `json:"activeDuration"` ActiveZoneMinutes struct { MinutesInHeartRateZones []struct { MinuteMultiplier int `json:"minuteMultiplier"` Minutes int `json:"minutes"` Order int `json:"order"` Type string `json:"type"` ZoneName string `json:"zoneName"` } `json:"minutesInHeartRateZones"` } `json:"activeZoneMinutes"` ActivityLevel []struct { Minutes int `json:"minutes"` Name string `json:"name"` } `json:"activityLevel"` ActivityName string `json:"activityName"` ActivityTypeID int `json:"activityTypeId"` Calories int `json:"calories"` CaloriesLink string `json:"caloriesLink"` Distance float64 `json:"distance"` DistanceUnit string `json:"distanceUnit"` Duration int `json:"duration"` ElevationGain float64 `json:"elevationGain"` HasActiveZoneMinutes bool `json:"hasActiveZoneMinutes"` LastModified time.Time `json:"lastModified"` LogID int64 `json:"logId"` LogType string `json:"logType"` ManualValuesSpecified struct { Calories bool `json:"calories"` Distance bool `json:"distance"` Steps bool `json:"steps"` } `json:"manualValuesSpecified"` OriginalDuration int `json:"originalDuration"` OriginalStartTime time.Time `json:"originalStartTime"` PoolLength int `json:"poolLength,omitempty"` PoolLengthUnit string `json:"poolLengthUnit,omitempty"` Source struct { ID string `json:"id"` Name string `json:"name"` TrackerFeatures []string `json:"trackerFeatures"` Type string `json:"type"` URL string `json:"url"` } `json:"source"` Speed float64 `json:"speed"` StartTime time.Time `json:"startTime"` SwimLengths int `json:"swimLengths,omitempty"` AverageHeartRate int `json:"averageHeartRate,omitempty"` DetailsLink string `json:"detailsLink,omitempty"` HeartRateLink string `json:"heartRateLink,omitempty"` HeartRateZones []struct { CaloriesOut float64 `json:"caloriesOut"` Max int `json:"max"` Min int `json:"min"` Minutes int `json:"minutes"` Name string `json:"name"` } `json:"heartRateZones,omitempty"` Pace float64 `json:"pace,omitempty"` Steps int `json:"steps,omitempty"` TcxLink string `json:"tcxLink,omitempty"` } `json:"activities"` Pagination struct { BeforeDate string `json:"beforeDate"` Limit int `json:"limit"` Next string `json:"next"` Offset int `json:"offset"` Previous string `json:"previous"` Sort string `json:"sort"` } `json:"pagination"` }
ActivitiesLogList contains the activity log list
type ActivitiesLogSingleRecord ¶
type ActivitiesLogSingleRecord struct { DateTime string `json:"dateTime"` Value string `json:"value"` }
ActivitiesLogSingleRecord contains a single record of an activity
type ActivitiesSummaryDay ¶
type ActivitiesSummaryDay struct { Activities []struct { ActivityID int `json:"activityId"` ActivityParentID int `json:"activityParentId"` ActivityParentName string `json:"activityParentName"` Calories int `json:"calories"` Description string `json:"description"` DetailsLink string `json:"detailsLink,omitempty"` Distance float64 `json:"distance"` Duration int `json:"duration"` HasActiveZoneMinutes bool `json:"hasActiveZoneMinutes"` HasStartTime bool `json:"hasStartTime"` IsFavorite bool `json:"isFavorite"` LastModified time.Time `json:"lastModified"` LogID int64 `json:"logId"` Name string `json:"name"` StartDate string `json:"startDate"` StartTime string `json:"startTime"` Steps int `json:"steps"` } `json:"activities"` Goals struct { ActiveMinutes int `json:"activeMinutes"` CaloriesOut int `json:"caloriesOut"` Distance float64 `json:"distance"` Floors int `json:"floors"` Steps int `json:"steps"` } `json:"goals"` Summary struct { ActiveScore int `json:"activeScore"` ActivityCalories int `json:"activityCalories"` CalorieEstimationMu int `json:"calorieEstimationMu"` CaloriesBMR int `json:"caloriesBMR"` CaloriesOut int `json:"caloriesOut"` CaloriesOutUnestimated int `json:"caloriesOutUnestimated"` Distances []struct { Activity string `json:"activity"` Distance float64 `json:"distance"` } `json:"distances"` Elevation float64 `json:"elevation"` FairlyActiveMinutes int `json:"fairlyActiveMinutes"` Floors int `json:"floors"` HeartRateZones []struct { CaloriesOut float64 `json:"caloriesOut"` Max int `json:"max"` Min int `json:"min"` Minutes int `json:"minutes"` Name string `json:"name"` } `json:"heartRateZones"` LightlyActiveMinutes int `json:"lightlyActiveMinutes"` MarginalCalories int `json:"marginalCalories"` RestingHeartRate int `json:"restingHeartRate"` SedentaryMinutes int `json:"sedentaryMinutes"` Steps int `json:"steps"` UseEstimation bool `json:"useEstimation"` VeryActiveMinutes int `json:"veryActiveMinutes"` } `json:"summary"` }
ActivitiesSummaryDay contains a summary of activities of a requested day
type ActivitiesTypes ¶
type ActivitiesTypes struct { Categories []struct { Activities []struct { AccessLevel string `json:"accessLevel"` ActivityLevels []struct { ID int64 `json:"id"` MaxSpeedMPH float64 `json:"maxSpeedMPH"` Mets float64 `json:"mets"` MinSpeedMPH float64 `json:"minSpeedMPH"` Name string `json:"name"` } `json:"activityLevels,omitempty"` HasSpeed bool `json:"hasSpeed"` ID int `json:"id"` Name string `json:"name"` Mets float64 `json:"mets,omitempty"` } `json:"activities"` ID int `json:"id"` Name string `json:"name"` SubCategories []struct { Activities []struct { AccessLevel string `json:"accessLevel"` HasSpeed bool `json:"hasSpeed"` ID int64 `json:"id"` Mets float64 `json:"mets"` Name string `json:"name"` } `json:"activities"` ID int64 `json:"id"` Name string `json:"name"` } `json:"subCategories,omitempty"` } `json:"categories"` }
ActivitiesTypes contains a list of activities
type AddFoodLogResponse ¶
type AddFoodLogResponse struct { FoodDay struct { Date string `json:"date"` Summary struct { Calories int `json:"calories"` Carbs float64 `json:"carbs"` Fat float64 `json:"fat"` Fiber float64 `json:"fiber"` Protein float64 `json:"protein"` Sodium float64 `json:"sodium"` Water int `json:"water"` } `json:"summary"` } `json:"foodDay"` FoodLog struct { IsFavorite bool `json:"isFavorite"` LogDate string `json:"logDate"` LogID int64 `json:"logId"` LoggedFood struct { AccessLevel string `json:"accessLevel"` Amount int `json:"amount"` Brand string `json:"brand"` Calories int `json:"calories"` FoodID int `json:"foodId"` Locale string `json:"locale"` MealTypeID int `json:"mealTypeId"` Name string `json:"name"` Unit struct { ID int `json:"id"` Name string `json:"name"` Plural string `json:"plural"` } `json:"unit"` Units []int `json:"units"` } `json:"loggedFood"` NutritionalValues struct { Calories int `json:"calories"` Carbs int `json:"carbs"` Fat int `json:"fat"` Fiber int `json:"fiber"` Protein int `json:"protein"` Sodium int `json:"sodium"` } `json:"nutritionalValues"` } `json:"foodLog"` }
AddFoodLogResponse defines the response of AddFood request
type Badge ¶
type Badge struct { BadgeGradientEndColor string `json:"badgeGradientEndColor"` BadgeGradientStartColor string `json:"badgeGradientStartColor"` BadgeType string `json:"badgeType"` Category string `json:"category"` Cheers []interface{} `json:"cheers"` // FIXME: unknown data DateTime string `json:"dateTime"` Description string `json:"description"` EarnedMessage string `json:"earnedMessage,omitempty"` EncodedID string `json:"encodedId"` Image100Px string `json:"image100px"` Image125Px string `json:"image125px"` Image300Px string `json:"image300px"` Image50Px string `json:"image50px"` Image75Px string `json:"image75px"` MarketingDescription string `json:"marketingDescription"` MobileDescription string `json:"mobileDescription"` Name string `json:"name"` ShortDescription string `json:"shortDescription"` ShortName string `json:"shortName"` TimesAchieved int `json:"timesAchieved"` Value int `json:"value,omitempty"` Unit string `json:"unit,omitempty"` }
Badge contains information about a badge
type BadgesList ¶
type BadgesList struct {
Badges []Badge `json:"badges"`
}
BadgesList contains a list of badges
type BodyFat ¶
type BodyFat struct { Fat []struct { Date string `json:"date"` Fat float64 `json:"fat"` LogID int64 `json:"logId"` Source string `json:"source"` Time string `json:"time"` } `json:"fat"` }
BodyFat contains one or multiple records, similar to BodyFat but without weight
type BodyFatGoal ¶
type BodyFatGoal struct { Goal struct { Fat int `json:"fat"` } `json:"goal"` }
BodyFatGoal contains the currently set fat goal of the user
type BodyWeight ¶
type BodyWeight struct { Weight []struct { Bmi float64 `json:"bmi"` Date string `json:"date"` Fat float64 `json:"fat"` LogID int64 `json:"logId"` Source string `json:"source"` Time string `json:"time"` Weight float64 `json:"weight"` } `json:"weight"` }
BodyWeight contains one or multiple records
type BodyWeightGoal ¶
type BodyWeightGoal struct { Goal struct { GoalType string `json:"goalType"` StartDate string `json:"startDate"` StartWeight float64 `json:"startWeight"` Weight int `json:"weight"` WeightThreshold float64 `json:"weightThreshold"` } `json:"goal"` }
BodyWeightGoal contains the currently set body goal by the user
type BreathingRate ¶ added in v1.2.0
type BreathingRateIntraday ¶ added in v1.2.0
type BreathingRateIntraday struct { Br []struct { Value struct { DeepSleepSummary struct { BreathingRate float64 `json:"breathingRate"` } `json:"deepSleepSummary"` RemSleepSummary struct { BreathingRate float64 `json:"breathingRate"` } `json:"remSleepSummary"` FullSleepSummary struct { BreathingRate float64 `json:"breathingRate"` } `json:"fullSleepSummary"` LightSleepSummary struct { BreathingRate float64 `json:"breathingRate"` } `json:"lightSleepSummary"` } `json:"value"` DateTime string `json:"dateTime"` } `json:"br"` }
type CardioFitnessScoreLog ¶
type CardioFitnessScoreLog struct { CardioScore []struct { DateTime string `json:"dateTime"` Value struct { Vo2Max string `json:"vo2Max"` // VO2 Max in mL/kg/min } `json:"value"` } `json:"cardioScore"` }
CardioFitnessScoreLog contains the cardio fitness score (VO2Max) for a given date
type Config ¶
type Config struct { ClientID string // ClientID is the client id (OAuth 2.0 Client ID) of the application (required) ClientSecret string // ClientSecret is the client secret (Client Secret) of the application (required) RedirectURL string // RedirectURL is the redirect url of the application (required) Scopes []Scope // Scopes is a list of scopes to request Locale string // en_AU, fr_FR, de_DE, ja_JP, en_NZ, es_ES, en_GB, en_US (default: de_DE) }
Config describes the configuration of a fitbit API configuration
type Device ¶
type Device struct { Battery string `json:"battery"` BatteryLevel int `json:"batteryLevel,omitempty"` DeviceVersion string `json:"deviceVersion"` Features []interface{} `json:"features"` ID string `json:"id"` LastSyncTime string `json:"lastSyncTime"` Mac string `json:"mac,omitempty"` Type string `json:"type"` }
Device contains information about a fitbit device
type ECGLogList ¶ added in v1.2.3
type ECGLogList struct { EcgReadings []struct { StartTime string `json:"startTime"` AverageHeartRate int `json:"averageHeartRate"` ResultClassification string `json:"resultClassification"` WaveformSamples []int `json:"waveformSamples"` SamplingFrequencyHz int `json:"samplingFrequencyHz"` ScalingFactor int `json:"scalingFactor"` NumberOfWaveformSamples int `json:"numberOfWaveformSamples"` LeadNumber int `json:"leadNumber"` FeatureVersion string `json:"featureVersion"` DeviceName string `json:"deviceName"` FirmwareVersion string `json:"firmwareVersion"` } `json:"ecgReadings"` Pagination struct { AfterDate string `json:"afterDate"` Limit int `json:"limit"` Next string `json:"next"` Offset int `json:"offset"` Previous string `json:"previous"` Sort string `json:"sort"` } `json:"pagination"` }
ECG data
type FoodCollectionList ¶
type FoodCollectionList []struct { AccessLevel string `json:"accessLevel"` Amount int `json:"amount,omitempty"` Brand string `json:"brand"` Calories int `json:"calories"` CreatorEncodedID string `json:"creatorEncodedId,omitempty"` DateLastEaten string `json:"dateLastEaten,omitempty"` DefaultServingSize int `json:"defaultServingSize"` DefaultUnit struct { ID int `json:"id"` Name string `json:"name"` Plural string `json:"plural"` } `json:"defaultUnit"` FoodID uint64 `json:"foodId"` MealTypeID uint64 `json:"mealTypeId,omitempty"` Name string `json:"name"` Servings []struct { Multiplier int `json:"multiplier"` ServingSize int `json:"servingSize"` UnitID int `json:"unitId"` Unit struct { ID int `json:"id"` Name string `json:"name"` Plural string `json:"plural"` } `json:"unit,omitempty"` } `json:"servings,omitempty"` Unit struct { ID int `json:"id"` Name string `json:"name"` Plural string `json:"plural"` } `json:"unit"` Units []int `json:"units"` Locale string `json:"locale,omitempty"` NutritionalValues struct { Biotin int `json:"biotin"` Calcium int `json:"calcium"` Calories int `json:"calories"` CaloriesFromFat int `json:"caloriesFromFat"` Cholesterol int `json:"cholesterol"` Copper int `json:"copper"` DietaryFiber int `json:"dietaryFiber"` FolicAcid int `json:"folicAcid"` Iodine int `json:"iodine"` Iron int `json:"iron"` Magnesium int `json:"magnesium"` Niacin int `json:"niacin"` PantothenicAcid int `json:"pantothenicAcid"` Phosphorus int `json:"phosphorus"` Potassium int `json:"potassium"` Protein int `json:"protein"` Riboflavin int `json:"riboflavin"` SaturatedFat float64 `json:"saturatedFat"` Sodium int `json:"sodium"` Sugars int `json:"sugars"` Thiamin int `json:"thiamin"` TotalCarbohydrate int `json:"totalCarbohydrate"` TotalFat int `json:"totalFat"` TransFat int `json:"transFat"` VitaminA int `json:"vitaminA"` VitaminB12 int `json:"vitaminB12"` VitaminB6 int `json:"vitaminB6"` VitaminC int `json:"vitaminC"` VitaminD int `json:"vitaminD"` VitaminE int `json:"vitaminE"` Zinc int `json:"zinc"` } `json:"nutritionalValues,omitempty"` }
FoodCollectionList contains a list of food collections
type FoodEntry ¶
type FoodEntry struct { Food struct { AccessLevel string `json:"accessLevel"` Brand string `json:"brand"` Calories int `json:"calories"` DefaultServingSize int `json:"defaultServingSize"` DefaultUnit struct { ID int `json:"id"` Name string `json:"name"` Plural string `json:"plural"` } `json:"defaultUnit"` FoodID int `json:"foodId"` IsGeneric bool `json:"isGeneric"` Locale string `json:"locale"` Name string `json:"name"` Servings []struct { Multiplier int `json:"multiplier"` ServingSize int `json:"servingSize"` Unit struct { ID int `json:"id"` Name string `json:"name"` Plural string `json:"plural"` } `json:"unit"` UnitID int `json:"unitId"` } `json:"servings"` Units []int `json:"units"` } `json:"food"` }
FoodEntry contains a food entry
type FoodGoal ¶
type FoodGoal struct { FoodPlan struct { EstimatedDate string `json:"estimatedDate"` Intensity string `json:"intensity"` Personalized bool `json:"personalized"` } `json:"foodPlan"` Goals struct { Calories int `json:"calories"` } `json:"goals"` }
FoodGoal contains the food goal of a user
type FoodLocales ¶
type FoodLocales []struct { Barcode bool `json:"barcode"` ImageUpload bool `json:"imageUpload"` Label string `json:"label"` Value string `json:"value"` }
FoodLocales contains a list of supported food locales
type FoodLog ¶
type FoodLog struct { Foods []struct { IsFavorite bool `json:"isFavorite"` LogDate string `json:"logDate"` LogID uint64 `json:"logId"` LoggedFood struct { AccessLevel string `json:"accessLevel"` Amount float64 `json:"amount"` Brand string `json:"brand"` Calories uint64 `json:"calories"` CreatorEncodedID string `json:"creatorEncodedId,omitempty"` FoodID uint64 `json:"foodId"` Locale string `json:"locale"` MealTypeID uint64 `json:"mealTypeId"` Name string `json:"name"` Unit struct { ID int `json:"id"` Name string `json:"name"` Plural string `json:"plural"` } `json:"unit"` Units []int `json:"units"` } `json:"loggedFood,omitempty"` NutritionalValues struct { Calories int `json:"calories"` Carbs float64 `json:"carbs"` Fat float64 `json:"fat"` Fiber float64 `json:"fiber"` Protein float64 `json:"protein"` Sodium int `json:"sodium"` } `json:"nutritionalValues"` } `json:"foods"` Goals struct { Calories int `json:"calories"` EstimatedCaloriesOut int `json:"estimatedCaloriesOut"` } `json:"goals"` Summary struct { Calories int `json:"calories"` Carbs float64 `json:"carbs"` Fat float64 `json:"fat"` Fiber float64 `json:"fiber"` Protein float64 `json:"protein"` Sodium float64 `json:"sodium"` Water int `json:"water"` } `json:"summary"` }
FoodLog contains a users food log
type FoodSearchResult ¶
type FoodSearchResult struct { Foods []struct { AccessLevel string `json:"accessLevel"` Brand string `json:"brand"` Calories int `json:"calories"` DefaultServingSize int `json:"defaultServingSize"` DefaultUnit struct { ID int `json:"id"` Name string `json:"name"` Plural string `json:"plural"` } `json:"defaultUnit"` FoodID int `json:"foodId"` IsGeneric bool `json:"isGeneric"` Locale string `json:"locale"` Name string `json:"name"` Units []int `json:"units"` } `json:"foods"` }
FoodSearchResult contains a list of food found by FoodSearch
type FoodUnits ¶
type FoodUnits []struct { ID int `json:"id"` Name string `json:"name"` Plural string `json:"plural"` }
FoodUnits defines the response of FoodUnits request
type FoodWaterLogDateRange ¶
type FoodWaterLogDateRange struct { FoodsLogCaloriesIn []struct { DateTime string `json:"dateTime"` Value string `json:"value"` } `json:"foods-log-caloriesIn,omitempty"` FoodsLogWater []struct { DateTime string `json:"dateTime"` Value string `json:"value"` } `json:"foods-log-water,omitempty"` }
FoodWaterLogDateRange contains a summary of calories or water for a given date range
type Friend ¶
type Friend struct { Attributes struct { Friend bool `json:"friend"` Child bool `json:"child"` Name string `json:"name"` Avatar string `json:"avatar"` } `json:"attributes"` ID string `json:"id"` Type string `json:"type"` }
Friend describes a friend
type FriendsInvitations ¶
type FriendsInvitations struct { Data []struct { Type string `json:"type"` ID string `json:"id"` Attributes struct { DateTime string `json:"dateTime"` Email string `json:"email,omitempty"` Source string `json:"source"` } `json:"attributes,omitempty"` Relationships struct { User struct { Data struct { Type string `json:"type"` ID string `json:"id"` } `json:"data"` } `json:"user"` } `json:"relationships,omitempty"` } `json:"data,omitempty"` Included []struct { Type string `json:"type"` ID string `json:"id"` Attributes struct { Friend bool `json:"friend"` Child bool `json:"child"` Avatar string `json:"avatar"` Name string `json:"name"` } `json:"attributes"` } `json:"included,omitempty"` }
FriendsInvitations contains a list of open invitations to the user
type FriendsLeaderboard ¶
type FriendsLeaderboard struct { Data []struct { Attributes struct { StepSummary int `json:"step-summary"` StepRank int `json:"step-rank"` } `json:"attributes"` Relationships struct { User struct { Data struct { ID string `json:"id"` Type string `json:"type"` } `json:"data"` } `json:"user"` } `json:"relationships"` ID string `json:"id"` Type string `json:"type"` } `json:"data"` Included []struct { Attributes struct { Friend bool `json:"friend,omitempty"` Child bool `json:"child"` Name string `json:"name"` Avatar string `json:"avatar"` } `json:"attributes,omitempty"` ID string `json:"id"` Type string `json:"type"` } `json:"included"` }
FriendsLeaderboard contains the leaderboard of a user
type FriendsList ¶
type FriendsList struct {
Data []Friend `json:"data"`
}
FriendsList contins a list of friends
type GarminTrainingCenterDatabasev2 ¶
type GarminTrainingCenterDatabasev2 struct { XMLName xml.Name `xml:"TrainingCenterDatabase"` Text string `xml:",chardata"` Xmlns string `xml:"xmlns,attr"` Activities struct { Text string `xml:",chardata"` Activity struct { Text string `xml:",chardata"` Sport string `xml:"Sport,attr"` ID string `xml:"Id"` Lap []struct { Text string `xml:",chardata"` StartTime string `xml:"StartTime,attr"` TotalTimeSeconds string `xml:"TotalTimeSeconds"` DistanceMeters string `xml:"DistanceMeters"` Calories string `xml:"Calories"` Intensity string `xml:"Intensity"` TriggerMethod string `xml:"TriggerMethod"` Track struct { Text string `xml:",chardata"` Trackpoint []struct { Text string `xml:",chardata"` Time string `xml:"Time"` Position struct { Text string `xml:",chardata"` LatitudeDegrees string `xml:"LatitudeDegrees"` LongitudeDegrees string `xml:"LongitudeDegrees"` } `xml:"Position"` AltitudeMeters string `xml:"AltitudeMeters"` DistanceMeters string `xml:"DistanceMeters"` HeartRateBpm struct { Text string `xml:",chardata"` Value string `xml:"Value"` } `xml:"HeartRateBpm"` } `xml:"Trackpoint"` } `xml:"Track"` } `xml:"Lap"` Creator struct { Text string `xml:",chardata"` Type string `xml:"type,attr"` Xsi string `xml:"xsi,attr"` Name string `xml:"Name"` UnitID string `xml:"UnitId"` ProductID string `xml:"ProductID"` } `xml:"Creator"` } `xml:"Activity"` } `xml:"Activities"` }
ActivityTCX contains the activity TCX for a given activity Fitbit is using http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2 for the TCX format Also available at https://www8.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd TODO: Extend struct below to include all available fields
func ReadTCX ¶
func ReadTCX(data []byte) (GarminTrainingCenterDatabasev2, error)
type HRVIntraday ¶
type HRVIntraday struct { Minutes []HRVMinutes `json:"minutes"` DateTime string `json:"dateTime"` }
type HRVIntradayValue ¶
type HRVMinutes ¶
type HRVMinutes struct { Minute string `json:"minutes"` Value HRVIntradayValue `json:"value"` }
type HeartDay ¶
type HeartDay struct { ActivitiesHeart []struct { DateTime string `json:"dateTime"` Value struct { CustomHeartRateZones []interface{} `json:"customHeartRateZones,omitempty"` HeartRateZones []HeartRateZones `json:"heartRateZones"` RestingHeartRate int `json:"restingHeartRate"` } `json:"value"` } `json:"activities-heart"` ActivitiesHeartIntraday ActivitiesHeartIntraday `json:"activities-heart-intraday,omitempty"` }
HeartDay contains a summary of heartrates for a given date range
type HeartIntraday ¶
type HeartIntraday struct { ActivitiesHeart []struct { CustomHeartRateZones []interface{} `json:"customHeartRateZones"` DateTime string `json:"dateTime"` HeartRateZones []HeartRateZones `json:"heartRateZones"` Value string `json:"value"` } `json:"activities-heart"` ActivitiesHeartIntraday ActivitiesHeartIntraday `json:"activities-heart-intraday,omitempty"` }
HeartIntraday with slightly different structure to HeartDay
type HeartRateVariabilityIntraday ¶
type HeartRateVariabilityIntraday struct {
Hrv []HRVIntraday `json:"hrv"`
}
HeartRateVariabilityIntraday with slightly different structure to HeartRateVariabilitySummary
type HeartRateVariabilitySummary ¶
type HeartRateVariabilitySummary struct {
Hrv []HRVDay `json:"hrv"`
}
HeartRateVariabilitySummary contains a summary of heartrate variability (HRV) values for a given date range
type HeartRateZones ¶
type HeartRateZones struct { CaloriesOut float64 `json:"caloriesOut"` Max int `json:"max"` Min int `json:"min"` Minutes int `json:"minutes"` Name string `json:"name"` }
HeartRateZones contains the heart rate zones of different types like cardio
type IntrospectResponse ¶
type IntrospectResponse struct { Active bool `json:"active"` Scope string `json:"scope,omitempty"` ClientID string `json:"client_id,omitempty"` UserID string `json:"user_id,omitempty"` TokenType string `json:"token_type,omitempty"` Exp int64 `json:"exp,omitempty"` Iat int64 `json:"iat,omitempty"` }
IntrospectResponse contains the response of the introspect request
type LogListParameters ¶
LogListParameters contains parameters for the activity log list
type NewActivity ¶
type NewActivity struct { ActivityID int `json:"activityId,omitempty"` ActivityName string `json:"activityName,omitempty"` ManualCalories int `json:"manualCalories,omitempty"` StartTime string `json:"startTime"` // HH:mm DurationMillis int64 `json:"durationMillis"` // milliseconds Date string `json:"date"` // yyyy-MM-dd Distance float64 `json:"distance,omitempty"` // x.xx DistanceUnit string `json:"distanceUnit,omitempty"` // Steps units are available only for "Walking" (activityId=90013) and "Running" (activityId=90009) directory activities and their intensity levels. }
NewActivity contains the data for a new activity
type NewActivityResponse ¶
type NewActivityResponse struct { ActivityLog struct { ActivityID int `json:"activityId"` ActivityParentID int `json:"activityParentId"` Calories int `json:"calories"` Description string `json:"description"` Distance float64 `json:"distance"` Duration int `json:"duration"` IsFavorite bool `json:"isFavorite"` LogID int64 `json:"logId"` Name string `json:"name"` StartTime string `json:"startTime"` Steps int `json:"steps"` } `json:"activityLog"` }
NewActivityResponse contains the response from a new activity request
type NewFoodLog ¶
type NewFoodLog struct { FoodID uint64 `json:"foodId,omitempty"` FoodName string `json:"foodName,omitempty"` MealTypeID int `json:"mealTypeId"` UnitID uint64 `json:"unitId"` // given by unit search and food serch which units are captable here Amount float64 `json:"amount"` Date string `json:"date"` Favorite bool `json:"favorite,omitempty"` BrandName string `json:"brandName,omitempty"` Calories uint64 `json:"calories,omitempty"` }
NewFoodLog defines the data to be sent to the API when adding a new food log entry
type Profile ¶
type Profile struct { User struct { Age int `json:"age"` Ambassador bool `json:"ambassador"` AutoStrideEnabled bool `json:"autoStrideEnabled"` Avatar string `json:"avatar"` Avatar150 string `json:"avatar150"` Avatar640 string `json:"avatar640"` AverageDailySteps int `json:"averageDailySteps"` ChallengesBeta bool `json:"challengesBeta"` ClockTimeDisplayFormat string `json:"clockTimeDisplayFormat"` Corporate bool `json:"corporate"` CorporateAdmin bool `json:"corporateAdmin"` Country string `json:"country"` DateOfBirth string `json:"dateOfBirth"` DisplayName string `json:"displayName"` DisplayNameSetting string `json:"displayNameSetting"` DistanceUnit string `json:"distanceUnit"` EncodedID string `json:"encodedId"` FamilyGuidanceEnabled bool `json:"familyGuidanceEnabled"` Features struct { ExerciseGoal bool `json:"exerciseGoal"` PhoneNumberFriendFinding struct { Algorithm string `json:"algorithm"` Countries []string `json:"countries"` Salt string `json:"salt"` } `json:"phoneNumberFriendFinding"` } `json:"features"` FoodsLocale string `json:"foodsLocale"` FullName string `json:"fullName"` Gender string `json:"gender"` GlucoseUnit string `json:"glucoseUnit"` Height float64 `json:"height"` HeightUnit string `json:"heightUnit"` IsBugReportEnabled bool `json:"isBugReportEnabled"` IsChild bool `json:"isChild"` IsCoach bool `json:"isCoach"` LanguageLocale string `json:"languageLocale"` LegalTermsAcceptRequired bool `json:"legalTermsAcceptRequired"` Locale string `json:"locale"` MemberSince string `json:"memberSince"` MfaEnabled bool `json:"mfaEnabled"` OffsetFromUTCMillis int `json:"offsetFromUTCMillis"` SdkDeveloper bool `json:"sdkDeveloper"` SleepTracking string `json:"sleepTracking"` StartDayOfWeek string `json:"startDayOfWeek"` StrideLengthRunning float64 `json:"strideLengthRunning"` StrideLengthRunningType string `json:"strideLengthRunningType"` StrideLengthWalking float64 `json:"strideLengthWalking"` StrideLengthWalkingType string `json:"strideLengthWalkingType"` SwimUnit string `json:"swimUnit"` Timezone string `json:"timezone"` TopBadges []Badge `json:"topBadges"` WaterUnit string `json:"waterUnit"` WaterUnitName string `json:"waterUnitName"` Weight float64 `json:"weight"` WeightUnit string `json:"weightUnit"` } `json:"user"` }
Profile contains profile information of an user
type Ratelimit ¶
type Ratelimit struct { RateLimitAvailable int // RateLimitAvailable is the number of requests available for the current rate limit window RateLimitUsed int // RateLimitUsed is the number of requests used for the current rate limit window RateLimitReset time.Time // RateLimitReset is the time when the rate limit window resets }
Ratelimit includes the rate limit information provided on every request
type Scope ¶
type Scope = string
Scope describes an oauth2 scope for Fitbit
const ( ScopeActivity Scope = "activity" ScopeCardioFitness Scope = "cardio_fitness" ScopeBreathingRate Scope = "respiratory_rate" ScopeECG Scope = "electrocardiogram" ScopeHeartrate Scope = "heartrate" ScopeLocation Scope = "location" ScopeNutrition Scope = "nutrition" ScopeProfile Scope = "profile" ScopeSettings Scope = "settings" ScopeSleep Scope = "sleep" ScopeSocial Scope = "social" ScopeSpO2 Scope = "oxygen_saturation" ScopeTemperature Scope = "temperature" ScopeWeight Scope = "weight" )
Different types of useable scopes
type Session ¶
type Session struct { // HookTokenChange is a function that is called when the refresh_token changes TokenChange func(token *oauth2.Token) // contains filtered or unexported fields }
Session is the main object with user data
func (*Session) ActiveZoneMinutesIntraday ¶ added in v1.1.0
func (m *Session) ActiveZoneMinutesIntraday(day string, resolution string) (ActiveZoneMinutesIntraday, error)
ActiveZoneMinutesIntraday returns the active zone minutes log intraday by a given date in the given resolution date must be in the format yyyy-MM-dd resolution can be 1min, 5min, or 15min 1min is default
func (*Session) ActiveZoneMinutesIntradayByDateRange ¶ added in v1.1.0
func (m *Session) ActiveZoneMinutesIntradayByDateRange(startDay string, endDay string, resolution string) (ActiveZoneMinutesIntraday, error)
ActiveZoneMinutesIntradayByDateRange returns the active zone minutes log intraday by a given date in the given resolution date must be in the format yyyy-MM-dd resolution can be 1min, 5min, or 15min 1min is default
func (*Session) ActiveZoneMinutesLogByDateRange ¶ added in v1.1.0
func (m *Session) ActiveZoneMinutesLogByDateRange(startDay string, endDay string) (ActiveZoneMinutesDay, error)
ActiveZoneMinutesLogByDateRange returns the active zone minutes log by a given date date must be in the format yyyy-MM-dd
func (*Session) ActiveZoneMinutesLogByDay ¶ added in v1.1.0
func (m *Session) ActiveZoneMinutesLogByDay(day string) (ActiveZoneMinutesDay, error)
ActiveZoneMinutesLogByDay returns the active zone minutes log by a given date date must be in the format yyyy-MM-dd
func (*Session) ActivitiesDaySummary ¶
func (m *Session) ActivitiesDaySummary(day string) (ActivitiesSummaryDay, error)
ActivitiesDaySummary returns the summary of activities and made exercises date must be in the format yyyy-MM-dd
func (*Session) ActivitiesGoal ¶
func (m *Session) ActivitiesGoal(period string) (ActivitiesGoal, error)
ActivitiesGoal returns user set activities goal
func (*Session) ActivitiesLifetime ¶
func (m *Session) ActivitiesLifetime() (ActivitiesLifetime, error)
ActivitiesLifetime returns the summary of activities and made exercises date must be in the format yyyy-MM-dd
func (*Session) ActivitiesLogByDay ¶
func (m *Session) ActivitiesLogByDay(day string, activity string, fetchRange string) (ActivitiesLog, error)
ActivitiesLogByDay returns the activities recorded for a given day and type date must be in the format yyyy-MM-dd and describes the end date activity is type of data to be fetched and returned fetchRange defines the timespan the data reaches back from day
func (*Session) ActivitiesLogInterdayByDay ¶
func (m *Session) ActivitiesLogInterdayByDay(day string, activity string) (ActivitiesInterdayLog, error)
ActivitiesLogInterdayByDay returns the interday activities recorded for a given day and type date must be in the format yyyy-MM-dd and describes the end date activity is type of data to be fetched and returned
func (*Session) ActivityFrequent ¶
func (m *Session) ActivityFrequent() ([]ActivitiesFrequent, error)
ActivityFrequent returns a list of frequent user activities
func (*Session) ActivityLog ¶
func (m *Session) ActivityLog(params LogListParameters) (ActivitiesLogList, error)
ActivityLog returns the activity log for the given configuration
func (*Session) ActivityRecent ¶
func (m *Session) ActivityRecent() ([]ActivitiesFrequent, error)
ActivityRecent returns a list of fRecent user activities
func (*Session) ActivityTCX ¶
ActivityTCX returns the activity TCX for the given activity
func (*Session) ActivityTypes ¶
func (m *Session) ActivityTypes() (ActivitiesTypes, error)
ActivityTypes returns a list of activities available, even user created ones
func (*Session) AddBodyFat ¶
AddBodyFat adds a new body weight record date must be in the format yyyy-MM-dd
func (*Session) AddBodyWeight ¶
func (m *Session) AddBodyWeight(day string, weight float64) (BodyWeight, error)
AddBodyWeight adds a new body weight record date must be in the format yyyy-MM-dd
func (*Session) AddFood ¶
func (m *Session) AddFood(data NewFoodLog) (AddFoodLogResponse, error)
AddFood logs a new consumed food entry
func (*Session) AddFoodFavorite ¶
AddFoodFavorite adds food by id to favorites
func (*Session) AddSleep ¶
AddSleep adds a new sleep record date in form of yyyy-MM-dd startTime in form of HH:mm duration in milliseconds
func (*Session) AddSubscription ¶
AddSubscription adds a new subscription where fitbit sends a request on changes caused by the user
func (*Session) AddWater ¶
AddWater adds a new water log entry for the user date has to be in the format yyyy-MM-dd amount contains the amount of water consumed unit can be ml, fl oz or cup
func (*Session) Badges ¶
func (m *Session) Badges(userID uint64) (BadgesList, error)
Badges returns a list of user badges
func (*Session) BodyFatGoal ¶
func (m *Session) BodyFatGoal() (BodyFatGoal, error)
BodyFatGoal requests the fat goal of the user
func (*Session) BodyFatLogByDateRange ¶
BodyFatLogByDateRange returns the weight log of a given time range by date date must be in the format yyyy-MM-dd
func (*Session) BodyFatLogByDay ¶
BodyFatLogByDay returns the fat log by a given date date must be in the format yyyy-MM-dd
func (*Session) BodyWeightGoal ¶
func (m *Session) BodyWeightGoal() (BodyWeightGoal, error)
BodyWeightGoal requests the weight goal of the user
func (*Session) BodyWeightLogByDateRange ¶
func (m *Session) BodyWeightLogByDateRange(startDay string, endDay string) (BodyWeight, error)
BodyWeightLogByDateRange returns the weight log of a given time range by date date must be in the format yyyy-MM-dd
func (*Session) BodyWeightLogByDay ¶
func (m *Session) BodyWeightLogByDay(day string) (BodyWeight, error)
BodyWeightLogByDay returns the weight log by a given date date must be in the format yyyy-MM-dd
func (*Session) BreathingRateLogByDateRange ¶ added in v1.2.0
func (m *Session) BreathingRateLogByDateRange(startDay string, endDay string) (BreathingRate, error)
BreathingRateLogByDateRange returns the breathing rate summary log of a given time range by date date must be in the format yyyy-MM-dd
func (*Session) BreathingRateLogByDateRangeIntraday ¶ added in v1.2.0
func (m *Session) BreathingRateLogByDateRangeIntraday(startDay string, endDay string) (BreathingRateIntraday, error)
BreathingRateLogByDateRangeIntraday returns the breathing rate log of a given time range by date date must be in the format yyyy-MM-dd
func (*Session) BreathingRateLogByDay ¶ added in v1.2.0
func (m *Session) BreathingRateLogByDay(day string) (BreathingRate, error)
BreathingRateLogByDay returns the breathing rate log (summary) by a given date date must be in the format yyyy-MM-dd
func (*Session) BreathingRateLogByDayIntraday ¶ added in v1.2.0
func (m *Session) BreathingRateLogByDayIntraday(day string) (BreathingRateIntraday, error)
BreathingRateLogByDayIntraday returns the breathing rate log by a given date date must be in the format yyyy-MM-dd
func (*Session) CardioFitnessScoreByDateRange ¶
func (m *Session) CardioFitnessScoreByDateRange(startDate, endDate string) (CardioFitnessScoreLog, error)
CardioFitnessScoreByDateRange returns the cardio fitness score (VO2Max) for the given date range date must be in the format yyyy-MM-dd, scope ScopeCardioFitness must be granted
func (*Session) CardioFitnessScoreByDay ¶
func (m *Session) CardioFitnessScoreByDay(date string) (CardioFitnessScoreLog, error)
CardioFitnessScoreByDay returns the cardio fitness score (VO2Max) for a given date date must be in the format yyyy-MM-dd, scope ScopeCardioFitness must be granted
func (*Session) ECGLog ¶ added in v1.2.3
func (m *Session) ECGLog(params LogListParameters) (ECGLogList, error)
ECGLog returns the ECG log list
func (*Session) Exchange ¶
Exchange uses an authorization code to retrieve an access token and refresh token. sets them in the current session using SetToken and rebuilds the httpClient
func (*Session) FoodFavorites ¶
func (m *Session) FoodFavorites() (FoodCollectionList, error)
FoodFavorites returns favorite food TODO: not tested, seems to be not implemented within the app
func (*Session) FoodFrequent ¶
func (m *Session) FoodFrequent() (FoodCollectionList, error)
FoodFrequent returns frequently eaten food
func (*Session) FoodLocales ¶
func (m *Session) FoodLocales() (FoodLocales, error)
FoodLocales returns a list of supported food locales
func (*Session) FoodLogByDateRange ¶
func (m *Session) FoodLogByDateRange(startDay string, endDay string) (FoodWaterLogDateRange, error)
FoodLogByDateRange returns the calories log of a given time range by date date must be in the format yyyy-MM-dd
func (*Session) FoodLogByDay ¶
FoodLogByDay returns the food log by a given date date must be in the format yyyy-MM-dd
func (*Session) FoodRecent ¶
func (m *Session) FoodRecent() (FoodCollectionList, error)
FoodRecent returns recently eaten food
func (*Session) FoodSearch ¶
func (m *Session) FoodSearch(value string) (FoodSearchResult, error)
FoodSearch searches for food within the fitbit database for matching food
func (*Session) FriendInviteByEmail ¶
FriendInviteByEmail invites another user to be friends by email FIXME: untested function, unknown response from server
func (*Session) FriendInviteByUserID ¶
FriendInviteByUserID invites another user to be friends by user id FIXME: untested function, unknown response from server
func (*Session) FriendsRespondToInvition ¶
FriendsRespondToInvition reacts to a inviation FIXME: untested function, unknown response from server
func (*Session) GetFriendInvitations ¶
func (m *Session) GetFriendInvitations() (FriendsInvitations, error)
GetFriendInvitations returns a list of open friend invitations
func (*Session) GetFriends ¶
func (m *Session) GetFriends() (FriendsList, error)
GetFriends returns the current friends of the current user
func (*Session) GetFriendsLeaderboard ¶
func (m *Session) GetFriendsLeaderboard() (FriendsLeaderboard, error)
GetFriendsLeaderboard returns the leaderbord including the user
func (*Session) GetRatelimit ¶
GetRatelimit returns the current ratelimit information obtained by the last API request
func (*Session) GetSubscriptions ¶
func (m *Session) GetSubscriptions(collectionPath string) (bool, SubscriptionList, error)
GetSubscriptions get's a list of current subscriptions
func (*Session) HRVIntradayByDate ¶
func (m *Session) HRVIntradayByDate(day string) (HeartRateVariabilityIntraday, error)
HRVSummaryByDate the Heart Rate Variability (HRV) data for a date. HRV data applies specifically to a user’s “main sleep,” which is the longest single period of time asleep on a given date. date must be in the format yyyy-MM-dd
func (*Session) HRVIntradayByDateRange ¶
func (m *Session) HRVIntradayByDateRange(startDay string, endDay string) (HeartRateVariabilityIntraday, error)
HRVSummaryByDateRange the Heart Rate Variability (HRV) data for a date range. HRV data applies specifically to a user’s “main sleep,” which is the longest single period of time asleep on a given date. date must be in the format yyyy-MM-dd
func (*Session) HRVSummaryByDate ¶
func (m *Session) HRVSummaryByDate(day string) (HeartRateVariabilitySummary, error)
HRVSummaryByDate the Heart Rate Variability (HRV) data for a date. HRV data applies specifically to a user’s “main sleep,” which is the longest single period of time asleep on a given date. date must be in the format yyyy-MM-dd
func (*Session) HRVSummaryByDateRange ¶
func (m *Session) HRVSummaryByDateRange(startDay string, endDay string) (HeartRateVariabilitySummary, error)
HRVSummaryByDateRange the Heart Rate Variability (HRV) data for a date range. HRV data applies specifically to a user’s “main sleep,” which is the longest single period of time asleep on a given date. date must be in the format yyyy-MM-dd
func (*Session) HeartIntraday ¶
func (m *Session) HeartIntraday(day string, resolution string, timeFrom string, timeTo string) (HeartIntraday, error)
HeartIntraday returns the heart log by a given date in the given resolution date must be in the format yyyy-MM-dd, default is today resolution can be 1min or 1sec, 1sec is default timeFrom and timeTo are in the format 00:00 for hour:minute, default entire day
func (*Session) HeartLogByDateRange ¶
HeartLogByDateRange returns the heart log of a given time range by date in default resolution date must be in the format yyyy-MM-dd
func (*Session) HeartLogByDateRangeIntraday ¶ added in v1.1.0
func (m *Session) HeartLogByDateRangeIntraday(startDay string, endDay string, resolution string) (HeartDay, error)
HeartLogByDateRangeIntraday returns the heart log by a given date range in the given resolution date must be in the format yyyy-MM-dd resolution can be 1min or 1sec, 1sec is default
func (*Session) HeartLogByDay ¶
HeartLogByDay returns the heart log by a given date date must be in the format yyyy-MM-dd
func (*Session) Introspect ¶
func (m *Session) Introspect() (IntrospectResponse, error)
Introspect checks if the currently used oauth token is still valid
func (*Session) LogActivity ¶
func (m *Session) LogActivity(activity NewActivity) (NewActivityResponse, error)
LogActivity logs a new activity date must be in the format yyyy-MM-dd TODO: TESTME
func (*Session) Profile ¶
Profile returns the current users profile if 0 is used or the profile of a friend with matching ID
func (*Session) RemoveActivity ¶
RemoveActivity deletes an existing activity by activity log id TODO: TESTME
func (*Session) RemoveBodyFat ¶
RemoveBodyFat removes a existing record by it's log ID
func (*Session) RemoveBodyWeight ¶
RemoveBodyWeight removes a existing record by it's log ID
func (*Session) RemoveFood ¶
RemoveFood removes an existing food log entry
func (*Session) RemoveFoodFavorite ¶
RemoveFoodFavorite removes food by id from facorites
func (*Session) RemoveSleep ¶
RemoveSleep removes a sleep entry
func (*Session) RemoveSubscription ¶
RemoveSubscription removes a previously added subscription
func (*Session) RemoveWater ¶
RemoveWater removes an existing water log entry
func (*Session) SetActivitiesGoal ¶
func (m *Session) SetActivitiesGoal(period string, goals ActivitiesGoal) (ActivitiesGoal, error)
SetActivitiesGoal sets a new activities goal on daily or weekly basis
func (*Session) SetBodyFatGoal ¶
SetBodyFatGoal sets the users body fat goal
func (*Session) SetBodyWeightGoal ¶
func (m *Session) SetBodyWeightGoal(startDate string, startWeight float64, weightGoal float64) (BodyWeightGoal, error)
SetBodyWeightGoal sets the users body fat goal
func (*Session) SetFoodGoal ¶
SetFoodGoal sets the users food goal
func (*Session) SetProfile ¶
SetProfile updates the current users profile information userID 0 is current user
func (*Session) SetSleepGoal ¶
SetSleepGoal requests the sleep goal of the user
func (*Session) SetWaterGoal ¶
SetWaterGoal sets a new water goal
func (*Session) SleepByDay ¶
SleepByDay returns the sleep data for a given date date must be in the format yyyy-MM-dd
func (*Session) SleepByDayRange ¶
SleepByDayRange returns the sleep data for a given date range date must be in the format yyyy-MM-dd
func (*Session) SleepLogList ¶
func (m *Session) SleepLogList(params LogListParameters) (SleepLogList, error)
SleepLogList returns the sleep log list for based on given parameters
func (*Session) SpO2ByDay ¶
SleepByDay returns the sleep data for a given date date must be in the format yyyy-MM-dd
func (*Session) SpO2ByDayIntraday ¶
func (m *Session) SpO2ByDayIntraday(day string) (SpO2Intraday, error)
SpO2ByDayIntraday returns the sleep data for a given date with intraday accuration date must be in the format yyyy-MM-dd
func (*Session) TemperatureCoreByDateRange ¶
func (m *Session) TemperatureCoreByDateRange(startDay string, endDay string) (TemperatureCore, error)
TemperatureCoreByDateRange returns the core temperature data for a given date range date must be in the format yyyy-MM-dd or today
func (*Session) TemperatureCoreByDay ¶
func (m *Session) TemperatureCoreByDay(day string) (TemperatureCore, error)
TemperatureCoreByDay returns the core temperature data for a given date date must be in the format yyyy-MM-dd or today
func (*Session) TemperatureSkinByDateRange ¶
func (m *Session) TemperatureSkinByDateRange(startDay string, endDay string) (TemperatureSkin, error)
TemperatureSkinByDateRange returns the skin temperature data for a given date range date must be in the format yyyy-MM-dd or today
func (*Session) TemperatureSkinByDay ¶
func (m *Session) TemperatureSkinByDay(day string) (TemperatureSkin, error)
TemperatureSkinByDay returns the skin temperature data for a given date date must be in the format yyyy-MM-dd or today
func (*Session) UpdateFood ¶
func (m *Session) UpdateFood(id uint64, data NewFoodLog) (AddFoodLogResponse, error)
UpdateFood changes a stored food log entry
func (*Session) UpdateWater ¶
UpdateWater updates an existing water log entry with new values amount contains the amount of water consumed unit can be ml, fl oz or cup
func (*Session) WaterLogByDateRange ¶
func (m *Session) WaterLogByDateRange(startDay string, endDay string) (FoodWaterLogDateRange, error)
WaterLogByDateRange returns the calories log of a given time range by date date must be in the format yyyy-MM-dd
type SleepDay ¶
type SleepDay struct { Sleep []struct { DateOfSleep string `json:"dateOfSleep"` Duration int `json:"duration"` Efficiency int `json:"efficiency"` EndTime string `json:"endTime"` InfoCode int `json:"infoCode"` IsMainSleep bool `json:"isMainSleep"` Levels struct { Data []struct { DateTime string `json:"dateTime"` Level string `json:"level"` Seconds int `json:"seconds"` } `json:"data"` ShortData []struct { DateTime string `json:"dateTime"` Level string `json:"level"` Seconds int `json:"seconds"` } `json:"shortData"` Summary struct { Deep struct { Count int `json:"count"` Minutes int `json:"minutes"` ThirtyDayAvgMinutes int `json:"thirtyDayAvgMinutes"` } `json:"deep"` Light struct { Count int `json:"count"` Minutes int `json:"minutes"` ThirtyDayAvgMinutes int `json:"thirtyDayAvgMinutes"` } `json:"light"` Rem struct { Count int `json:"count"` Minutes int `json:"minutes"` ThirtyDayAvgMinutes int `json:"thirtyDayAvgMinutes"` } `json:"rem"` Wake struct { Count int `json:"count"` Minutes int `json:"minutes"` ThirtyDayAvgMinutes int `json:"thirtyDayAvgMinutes"` } `json:"wake"` Asleep struct { Count int `json:"count"` Minutes int `json:"minutes"` ThirtyDayAvgMinutes int `json:"thirtyDayAvgMinutes,omitempty"` } `json:"asleep,omitempty"` Awake struct { Count int `json:"count"` Minutes int `json:"minutes"` ThirtyDayAvgMinutes int `json:"thirtyDayAvgMinutes,omitempty"` } `json:"awake,omitempty"` Restless struct { Count int `json:"count"` Minutes int `json:"minutes"` ThirtyDayAvgMinutes int `json:"thirtyDayAvgMinutes,omitempty"` } `json:"restless,omitempty"` } `json:"summary"` } `json:"levels,omitempty"` LogID int64 `json:"logId"` MinutesAfterWakeup int `json:"minutesAfterWakeup"` MinutesAsleep int `json:"minutesAsleep"` MinutesAwake int `json:"minutesAwake"` MinutesToFallAsleep int `json:"minutesToFallAsleep"` LogType string `json:"logType"` StartTime string `json:"startTime"` TimeInBed int `json:"timeInBed"` Type string `json:"type"` } `json:"sleep"` Summary struct { Stages struct { Deep int `json:"deep"` Light int `json:"light"` Rem int `json:"rem"` Wake int `json:"wake"` } `json:"stages"` TotalMinutesAsleep int `json:"totalMinutesAsleep"` TotalSleepRecords int `json:"totalSleepRecords"` TotalTimeInBed int `json:"totalTimeInBed"` } `json:"summary,omitempty"` Meta struct { RetryDuration int `json:"retryDuration"` State string `json:"state"` } `json:"meta,omitempty"` }
SleepDay contains data of a sleep day
type SleepGoal ¶
type SleepGoal struct { Consistency struct { AwakeRestlessPercentage float64 `json:"awakeRestlessPercentage"` FlowID int `json:"flowId"` RecommendedSleepGoal int `json:"recommendedSleepGoal"` TypicalDuration int `json:"typicalDuration"` TypicalWakeupTime string `json:"typicalWakeupTime"` } `json:"consistency"` Goal struct { Bedtime string `json:"bedtime"` MinDuration int `json:"minDuration"` UpdatedOn time.Time `json:"updatedOn"` WakeupTime string `json:"wakeupTime"` } `json:"goal"` }
SleepGoal defines the structure of SleepGoal response
type SleepLogList ¶
type SleepLogList struct { Pagination struct { AfterDate string `json:"afterDate"` BeforeDate string `json:"beforeDate"` Limit int `json:"limit"` Next string `json:"next"` Offset int `json:"offset"` Previous string `json:"previous"` Sort string `json:"sort"` } `json:"pagination"` Sleep []struct { AwakeCount int `json:"awakeCount,omitempty"` AwakeDuration int `json:"awakeDuration,omitempty"` AwakeningsCount int `json:"awakeningsCount,omitempty"` DateOfSleep string `json:"dateOfSleep"` Duration int `json:"duration"` Efficiency int `json:"efficiency"` EndTime string `json:"endTime"` InfoCode int `json:"infoCode"` IsMainSleep bool `json:"isMainSleep"` Levels struct { Data []struct { DateTime string `json:"dateTime"` Level string `json:"level"` Seconds int `json:"seconds"` } `json:"data,omitempty"` ShortData []struct { DateTime string `json:"dateTime"` Level string `json:"level"` Seconds int `json:"seconds"` } `json:"shortData,omitempty"` Summary struct { Deep struct { Count int `json:"count"` Minutes int `json:"minutes"` ThirtyDayAvgMinutes int `json:"thirtyDayAvgMinutes"` } `json:"deep,omitempty"` Light struct { Count int `json:"count"` Minutes int `json:"minutes"` ThirtyDayAvgMinutes int `json:"thirtyDayAvgMinutes"` } `json:"light,omitempty"` Rem struct { Count int `json:"count"` Minutes int `json:"minutes"` ThirtyDayAvgMinutes int `json:"thirtyDayAvgMinutes"` } `json:"rem,omitempty"` Wake struct { Count int `json:"count"` Minutes int `json:"minutes"` ThirtyDayAvgMinutes int `json:"thirtyDayAvgMinutes"` } `json:"wake,omitempty"` } `json:"summary,omitempty"` } `json:"levels,omitempty"` LogID int64 `json:"logId"` MinutesAfterWakeup int `json:"minutesAfterWakeup"` MinutesAsleep int `json:"minutesAsleep"` MinutesAwake int `json:"minutesAwake"` MinutesToFallAsleep int `json:"minutesToFallAsleep"` RestlessCount int `json:"restlessCount,omitempty"` RestlessDuration int `json:"restlessDuration,omitempty"` LogType string `json:"logType"` StartTime string `json:"startTime"` TimeInBed int `json:"timeInBed"` Type string `json:"type"` MinuteData []struct { DateTime string `json:"dateTime"` Value string `json:"value"` } `json:"minuteData,omitempty"` } `json:"sleep"` }
SleepLogList defines the structure of SleepLogList based on an response
type SpO2Intraday ¶
type Subscription ¶
type Subscription struct { CollectionType string `json:"collectionType"` Date string `json:"date,omitempty"` OwnerID string `json:"ownerId"` OwnerType string `json:"ownerType"` SubscriberID string `json:"subscriberId"` SubscriptionID string `json:"subscriptionId"` }
Subscription contains response and request data of fitbit eventsx
type SubscriptionList ¶
type SubscriptionList struct {
APISubscriptions []Subscription `json:"apiSubscriptions"`
}
SubscriptionList contains a list of current active subscriptions
type TemperatureCore ¶
type TemperatureSkin ¶
Source Files ¶
- activity_active_zone_minutes.go
- activity_frequent.go
- activity_goal.go
- activity_lifetime.go
- activity_log.go
- activity_summary_day.go
- activity_tcx.go
- activity_tcx_data.go
- activity_time_series.go
- activity_types.go
- badges.go
- body_fat.go
- body_goal.go
- body_weight.go
- breathing_rate.go
- cardioscore.go
- devices.go
- electrocardiogram.go
- errors.go
- fitbit.go
- food_collection.go
- foods.go
- friends.go
- heart.go
- introspect.go
- profile.go
- sleep.go
- spo2.go
- subscription.go
- temperature.go