dashboard: generate a special teams.json with members for trophee scene
This commit is contained in:
parent
b9fa5accff
commit
66a72633d6
4 changed files with 32 additions and 4 deletions
|
@ -15,7 +15,11 @@ import (
|
||||||
func init() {
|
func init() {
|
||||||
router.GET("/api/teams.json", apiHandler(
|
router.GET("/api/teams.json", apiHandler(
|
||||||
func(httprouter.Params, []byte) (interface{}, error) {
|
func(httprouter.Params, []byte) (interface{}, error) {
|
||||||
return fic.ExportTeams()
|
return fic.ExportTeams(false)
|
||||||
|
}))
|
||||||
|
router.GET("/api/teams-members.json", apiHandler(
|
||||||
|
func(httprouter.Params, []byte) (interface{}, error) {
|
||||||
|
return fic.ExportTeams(true)
|
||||||
}))
|
}))
|
||||||
router.GET("/api/teams-binding", apiHandler(
|
router.GET("/api/teams-binding", apiHandler(
|
||||||
func(httprouter.Params, []byte) (interface{}, error) {
|
func(httprouter.Params, []byte) (interface{}, error) {
|
||||||
|
|
|
@ -169,6 +169,14 @@ func genMyPublicFile() error {
|
||||||
|
|
||||||
os.Symlink("my.json", path.Join(dirPath, "wait.json"))
|
os.Symlink("my.json", path.Join(dirPath, "wait.json"))
|
||||||
|
|
||||||
|
if teams, err := fic.ExportTeams(true); err != nil {
|
||||||
|
return err
|
||||||
|
} else if j, err := json.Marshal(teams); err != nil {
|
||||||
|
return err
|
||||||
|
} else if err = ioutil.WriteFile(path.Join(dirPath, "teams.json"), j, 0666); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -187,7 +195,7 @@ func genEventsFile() error {
|
||||||
|
|
||||||
// Generate general teams.json file
|
// Generate general teams.json file
|
||||||
func genTeamsFile() error {
|
func genTeamsFile() error {
|
||||||
if teams, err := fic.ExportTeams(); err != nil {
|
if teams, err := fic.ExportTeams(false); err != nil {
|
||||||
return err
|
return err
|
||||||
} else if j, err := json.Marshal(teams); err != nil {
|
} else if j, err := json.Marshal(teams); err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -195,6 +203,14 @@ func genTeamsFile() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if teams, err := fic.ExportTeams(true); err != nil {
|
||||||
|
return err
|
||||||
|
} else if j, err := json.Marshal(teams); err != nil {
|
||||||
|
return err
|
||||||
|
} else if err = ioutil.WriteFile(path.Join(TeamsDir, "public", "teams.json"), j, 0666); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -121,7 +121,7 @@ func init() {
|
||||||
if forwarder != nil {
|
if forwarder != nil {
|
||||||
fwd_request(w, r, *forwarder)
|
fwd_request(w, r, *forwarder)
|
||||||
} else {
|
} else {
|
||||||
http.ServeFile(w, r, path.Join(TeamsDir, "teams.json"))
|
http.ServeFile(w, r, path.Join(TeamsDir, "public", "teams.json"))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
api.Router().GET("/themes.json", func(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
|
api.Router().GET("/themes.json", func(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
|
||||||
|
|
|
@ -10,10 +10,11 @@ type exportedTeam struct {
|
||||||
Color string `json:"color"`
|
Color string `json:"color"`
|
||||||
Rank int `json:"rank"`
|
Rank int `json:"rank"`
|
||||||
Points float64 `json:"score"`
|
Points float64 `json:"score"`
|
||||||
|
Members []Member `json:"members,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Exportedteam creates the structure to respond as teams.json.
|
// Exportedteam creates the structure to respond as teams.json.
|
||||||
func ExportTeams() (ret map[string]exportedTeam, err error) {
|
func ExportTeams(includeMembers bool) (ret map[string]exportedTeam, err error) {
|
||||||
var teams []Team
|
var teams []Team
|
||||||
var rank map[int64]int
|
var rank map[int64]int
|
||||||
|
|
||||||
|
@ -25,11 +26,18 @@ func ExportTeams() (ret map[string]exportedTeam, err error) {
|
||||||
ret = map[string]exportedTeam{}
|
ret = map[string]exportedTeam{}
|
||||||
for _, team := range teams {
|
for _, team := range teams {
|
||||||
points, _ := team.GetPoints()
|
points, _ := team.GetPoints()
|
||||||
|
var members []Member
|
||||||
|
if includeMembers {
|
||||||
|
if members, err = team.GetMembers(); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
ret[fmt.Sprintf("%d", team.Id)] = exportedTeam{
|
ret[fmt.Sprintf("%d", team.Id)] = exportedTeam{
|
||||||
team.Name,
|
team.Name,
|
||||||
fmt.Sprintf("#%x", team.Color),
|
fmt.Sprintf("#%x", team.Color),
|
||||||
rank[team.Id],
|
rank[team.Id],
|
||||||
points,
|
points,
|
||||||
|
members,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in a new issue