47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
type AirbusTeam struct {
|
|
ID int64 `json:"id"`
|
|
Members []TeamMember `json:"members"`
|
|
Name string `json:"name"`
|
|
Score int64 `json:"score"`
|
|
Rank int `json:"rank"`
|
|
}
|
|
|
|
type TeamMember struct {
|
|
ID int64 `json:"id"`
|
|
Name string `json:"name"`
|
|
Nickname string `json:"nickname"`
|
|
EMail string `json:"email"`
|
|
}
|
|
|
|
type airbusDataTeam struct {
|
|
Data []AirbusTeam `json:"data"`
|
|
}
|
|
|
|
func (a *AirbusAPI) GetTeams() ([]AirbusTeam, error) {
|
|
var data airbusDataTeam
|
|
err := a.request("GET", fmt.Sprintf("/v1/sessions/%d/teams", a.SessionID), nil, &data)
|
|
if err != nil {
|
|
return nil, err
|
|
} else {
|
|
return data.Data, nil
|
|
}
|
|
}
|
|
|
|
type ByRank []*AirbusTeam
|
|
|
|
func (a ByRank) Len() int { return len(a) }
|
|
func (a ByRank) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
|
|
func (a ByRank) Less(i, j int) bool { return a[i].Rank < a[j].Rank }
|
|
|
|
type ByScore []*AirbusTeam
|
|
|
|
func (a ByScore) Len() int { return len(a) }
|
|
func (a ByScore) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
|
|
func (a ByScore) Less(i, j int) bool { return a[i].Score < a[j].Score }
|