mirror of
https://github.com/sstent/go-garth.git
synced 2026-02-02 04:21:43 +00:00
sync - build broken
This commit is contained in:
59
python-garmin-connect/Badge.go
Normal file
59
python-garmin-connect/Badge.go
Normal file
@@ -0,0 +1,59 @@
|
||||
package connect
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
|
||||
// Badge describes a badge.
|
||||
type Badge struct {
|
||||
ID int `json:"badgeId"`
|
||||
Key string `json:"badgeKey"`
|
||||
Name string `json:"badgeName"`
|
||||
CategoryID int `json:"badgeCategoryId"`
|
||||
DifficultyID int `json:"badgeDifficultyId"`
|
||||
Points int `json:"badgePoints"`
|
||||
TypeID []int `json:"badgeTypeIds"`
|
||||
SeriesID int `json:"badgeSeriesId"`
|
||||
Start Time `json:"badgeStartDate"`
|
||||
End Time `json:"badgeEndDate"`
|
||||
UserProfileID int `json:"userProfileId"`
|
||||
FullName string `json:"fullName"`
|
||||
DisplayName string `json:"displayName"`
|
||||
EarnedDate Time `json:"badgeEarnedDate"`
|
||||
EarnedNumber int `json:"badgeEarnedNumber"`
|
||||
Viewed bool `json:"badgeIsViewed"`
|
||||
Progress float64 `json:"badgeProgressValue"`
|
||||
Target float64 `json:"badgeTargetValue"`
|
||||
UnitID int `json:"badgeUnitId"`
|
||||
BadgeAssocTypeID int `json:"badgeAssocTypeId"`
|
||||
BadgeAssocDataID string `json:"badgeAssocDataId"`
|
||||
BadgeAssocDataName string `json:"badgeAssocDataName"`
|
||||
EarnedByMe bool `json:"earnedByMe"`
|
||||
RelatedBadges []Badge `json:"relatedBadges"`
|
||||
Connections []Badge `json:"connections"`
|
||||
}
|
||||
|
||||
// BadgeDetail will return details about a badge.
|
||||
func (c *Client) BadgeDetail(badgeID int) (*Badge, error) {
|
||||
// Alternative URL:
|
||||
// https://connect.garmin.com/modern/proxy/badge-service/badge/DISPLAYNAME/earned/detail/BADGEID
|
||||
URL := fmt.Sprintf("https://connect.garmin.com/modern/proxy/badge-service/badge/detail/v2/%d",
|
||||
badgeID)
|
||||
|
||||
badge := new(Badge)
|
||||
|
||||
err := c.getJSON(URL, badge)
|
||||
|
||||
// This is interesting. Garmin returns 400 if an unknown badge is
|
||||
// requested. We have no way of detecting that, so we silently changes
|
||||
// the error to ErrNotFound.
|
||||
if err == ErrBadRequest {
|
||||
return nil, ErrNotFound
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return badge, nil
|
||||
}
|
||||
Reference in New Issue
Block a user