admin: page for team binding

This commit is contained in:
nemunaire 2016-01-23 22:05:49 +01:00
parent 86d36589d4
commit 2b2b1a893d

View file

@ -4,6 +4,7 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"strconv" "strconv"
"strings"
"srs.epita.fr/fic-server/libfic" "srs.epita.fr/fic-server/libfic"
) )
@ -63,6 +64,26 @@ func exportTeams() (interface{}, error) {
} }
} }
func bindingTeams() (string, error) {
if teams, err := fic.GetTeams(); err != nil {
return "", err
} else {
ret := ""
for _, team := range teams {
if members, err := team.GetMembers(); err != nil {
return "", err
} else {
var mbs []string
for _, member := range members {
mbs = append(mbs, fmt.Sprintf("%s %s", member.Firstname, member.Lastname))
}
ret += fmt.Sprintf("%d;%s;%s\n", team.Id, team.Name, strings.Join(mbs, ";"))
}
}
return ret, nil
}
}
type uploadedTeam struct { type uploadedTeam struct {
Name string Name string
Color int64 Color int64
@ -95,6 +116,8 @@ func listTeam(args []string, body []byte) (interface{}, error) {
return fic.MyJSONTeam(team, false) return fic.MyJSONTeam(team, false)
} else if args[1] == "certificate" && team != nil { } else if args[1] == "certificate" && team != nil {
return CertificateAPI(*team, args[2:]) return CertificateAPI(*team, args[2:])
} else if args[1] == "name" {
return team.Name, nil
} }
} }
} else if len(args) == 1 { } else if len(args) == 1 {
@ -102,6 +125,8 @@ func listTeam(args []string, body []byte) (interface{}, error) {
return exportTeams() return exportTeams()
} else if args[0] == "nginx" { } else if args[0] == "nginx" {
return nginxGenTeam() return nginxGenTeam()
} else if args[0] == "binding" {
return bindingTeams()
} else if tid, err := strconv.Atoi(string(args[0])); err != nil { } else if tid, err := strconv.Atoi(string(args[0])); err != nil {
return nil, err return nil, err
} else if team, err := fic.GetTeam(tid); err != nil { } else if team, err := fic.GetTeam(tid); err != nil {