Generate my.json for each team

This commit is contained in:
nemunaire 2016-01-19 13:10:18 +01:00
parent a6a152166e
commit 989d5a6349
1 changed files with 37 additions and 3 deletions

View File

@ -26,6 +26,33 @@ type uploadedMember struct {
Company string
}
func myJSONTeam(t fic.Team) (interface{}, error) {
ret := map[string]interface{}{}
ret["team_id"] = t.Id
exercices := map[string]interface{}{}
if exos, err := fic.GetExercices(); err != nil {
return ret, err
} else {
for _, e := range exos {
if t.HasAccess(e) {
exercice := map[string]interface{}{}
exercice["statement"] = e.Statement
exercice["hint"] = e.Hint
exercice["solved"] = t.HasSolved(e)
exercices[fmt.Sprintf("%d", e.Id)] = exercice
}
}
}
ret["exercices"] = exercices
return ret, nil
}
func nginxGenTeam() (string, error) {
if teams, err := fic.GetTeams(); err != nil {
return "", err
@ -40,7 +67,15 @@ func nginxGenTeam() (string, error) {
}
func listTeam(args []string, body []byte) (interface{}, error) {
if len(args) == 1 {
if len(args) == 2 {
if tid, err := strconv.Atoi(string(args[0])); err != nil {
return nil, err
} else if team, err := fic.GetTeam(tid); err != nil {
return nil, err
} else if args[1] == "my.json" {
return myJSONTeam(team)
}
} else if len(args) == 1 {
if args[0] == "nginx" {
return nginxGenTeam()
} else if tid, err := strconv.Atoi(string(args[0])); err != nil {
@ -53,9 +88,8 @@ func listTeam(args []string, body []byte) (interface{}, error) {
} else if len(args) == 0 {
// List all teams
return fic.GetTeams()
} else {
return nil, nil
}
return nil, nil
}
func creationTeam(args []string, body []byte) (interface{}, error) {