dashboard: generate a special teams.json with members for trophee scene
This commit is contained in:
parent
b9fa5accff
commit
66a72633d6
|
@ -15,7 +15,11 @@ import (
|
|||
func init() {
|
||||
router.GET("/api/teams.json", apiHandler(
|
||||
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(
|
||||
func(httprouter.Params, []byte) (interface{}, error) {
|
||||
|
|
|
@ -169,6 +169,14 @@ func genMyPublicFile() error {
|
|||
|
||||
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
|
||||
}
|
||||
|
||||
|
@ -187,7 +195,7 @@ func genEventsFile() error {
|
|||
|
||||
// Generate general teams.json file
|
||||
func genTeamsFile() error {
|
||||
if teams, err := fic.ExportTeams(); err != nil {
|
||||
if teams, err := fic.ExportTeams(false); err != nil {
|
||||
return err
|
||||
} else if j, err := json.Marshal(teams); err != nil {
|
||||
return err
|
||||
|
@ -195,6 +203,14 @@ func genTeamsFile() error {
|
|||
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
|
||||
}
|
||||
|
||||
|
|
|
@ -121,7 +121,7 @@ func init() {
|
|||
if forwarder != nil {
|
||||
fwd_request(w, r, *forwarder)
|
||||
} 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) {
|
||||
|
|
|
@ -10,10 +10,11 @@ type exportedTeam struct {
|
|||
Color string `json:"color"`
|
||||
Rank int `json:"rank"`
|
||||
Points float64 `json:"score"`
|
||||
Members []Member `json:"members,omitempty"`
|
||||
}
|
||||
|
||||
// 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 rank map[int64]int
|
||||
|
||||
|
@ -25,11 +26,18 @@ func ExportTeams() (ret map[string]exportedTeam, err error) {
|
|||
ret = map[string]exportedTeam{}
|
||||
for _, team := range teams {
|
||||
points, _ := team.GetPoints()
|
||||
var members []Member
|
||||
if includeMembers {
|
||||
if members, err = team.GetMembers(); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
ret[fmt.Sprintf("%d", team.Id)] = exportedTeam{
|
||||
team.Name,
|
||||
fmt.Sprintf("#%x", team.Color),
|
||||
rank[team.Id],
|
||||
points,
|
||||
members,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue