mirror of
https://github.com/sstent/go-garth.git
synced 2026-01-26 17:11:42 +00:00
sync - build broken
This commit is contained in:
94
python-garmin-connect/BadgeStatus.go
Normal file
94
python-garmin-connect/BadgeStatus.go
Normal file
@@ -0,0 +1,94 @@
|
||||
package connect
|
||||
|
||||
// BadgeStatus is the badge status for a Connect user.
|
||||
type BadgeStatus struct {
|
||||
ProfileID int `json:"userProfileId"`
|
||||
Fullname string `json:"fullName"`
|
||||
DisplayName string `json:"displayName"`
|
||||
ProUser bool `json:"userPro"`
|
||||
ProfileImageURLLarge string `json:"profileImageUrlLarge"`
|
||||
ProfileImageURLMedium string `json:"profileImageUrlMedium"`
|
||||
ProfileImageURLSmall string `json:"profileImageUrlSmall"`
|
||||
Level int `json:"userLevel"`
|
||||
LevelUpdateTime Time `json:"levelUpdateDate"`
|
||||
Point int `json:"userPoint"`
|
||||
Badges []Badge `json:"badges"`
|
||||
}
|
||||
|
||||
// BadgeLeaderBoard returns the leaderboard for points for the currently
|
||||
// authenticated user.
|
||||
func (c *Client) BadgeLeaderBoard() ([]BadgeStatus, error) {
|
||||
URL := "https://connect.garmin.com/modern/proxy/badge-service/badge/leaderboard"
|
||||
|
||||
if !c.authenticated() {
|
||||
return nil, ErrNotAuthenticated
|
||||
}
|
||||
|
||||
var proxy struct {
|
||||
LeaderBoad []BadgeStatus `json:"connections"`
|
||||
}
|
||||
|
||||
err := c.getJSON(URL, &proxy)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return proxy.LeaderBoad, nil
|
||||
}
|
||||
|
||||
// BadgeCompare will compare the earned badges of the currently authenticated user against displayName.
|
||||
func (c *Client) BadgeCompare(displayName string) (*BadgeStatus, *BadgeStatus, error) {
|
||||
URL := "https://connect.garmin.com/modern/proxy/badge-service/badge/compare/" + displayName
|
||||
|
||||
if !c.authenticated() {
|
||||
return nil, nil, ErrNotAuthenticated
|
||||
}
|
||||
|
||||
var proxy struct {
|
||||
User *BadgeStatus `json:"user"`
|
||||
Connection *BadgeStatus `json:"connection"`
|
||||
}
|
||||
|
||||
err := c.getJSON(URL, &proxy)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
return proxy.User, proxy.Connection, nil
|
||||
}
|
||||
|
||||
// BadgesEarned will return the list of badges earned by the curently
|
||||
// authenticated user.
|
||||
func (c *Client) BadgesEarned() ([]Badge, error) {
|
||||
URL := "https://connect.garmin.com/modern/proxy/badge-service/badge/earned"
|
||||
|
||||
if !c.authenticated() {
|
||||
return nil, ErrNotAuthenticated
|
||||
}
|
||||
|
||||
badges := make([]Badge, 0, 200)
|
||||
err := c.getJSON(URL, &badges)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return badges, nil
|
||||
}
|
||||
|
||||
// BadgesAvailable will return the list of badges not yet earned by the curently
|
||||
// authenticated user.
|
||||
func (c *Client) BadgesAvailable() ([]Badge, error) {
|
||||
URL := "https://connect.garmin.com/modern/proxy/badge-service/badge/available"
|
||||
|
||||
if !c.authenticated() {
|
||||
return nil, ErrNotAuthenticated
|
||||
}
|
||||
|
||||
badges := make([]Badge, 0, 200)
|
||||
err := c.getJSON(URL, &badges)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return badges, nil
|
||||
}
|
||||
Reference in New Issue
Block a user