admin: restore function to add team and members

This commit is contained in:
nemunaire 2017-01-19 13:12:26 +01:00
parent 8e91e7edbe
commit b8b1f14806
2 changed files with 10 additions and 5 deletions

View File

@ -30,10 +30,12 @@ func init() {
router.GET("/api/teams/", apiHandler(
func(httprouter.Params,[]byte) (interface{}, error) {
return fic.GetTeams() }))
router.POST("/api/teams/", apiHandler(createTeam))
router.GET("/api/teams/:tid/", apiHandler(teamHandler(
func(team fic.Team, _ []byte) (interface{}, error) {
return team, nil })))
router.POST("/api/teams/:tid/", apiHandler(teamHandler(addTeamMember)))
router.DELETE("/api/teams/:tid/", apiHandler(teamHandler(
func(team fic.Team, _ []byte) (interface{}, error) {
return team.Delete() })))
@ -126,23 +128,23 @@ type uploadedMember struct {
Company string
}
func createTeam(args map[string]string, body []byte) (interface{}, error) {
func createTeam(_ httprouter.Params, body []byte) (interface{}, error) {
var ut uploadedTeam
if err := json.Unmarshal(body, &ut); err != nil {
return nil, err
}
return fic.CreateTeam(ut.Name, ut.Color)
return fic.CreateTeam(strings.TrimSpace(ut.Name), ut.Color)
}
func addTeamMember(team fic.Team, args map[string]string, body []byte) (interface{}, error) {
func addTeamMember(team fic.Team, body []byte) (interface{}, error) {
var members []uploadedMember
if err := json.Unmarshal(body, &members); err != nil {
return nil, err
}
for _, member := range members {
team.AddMember(member.Firstname, member.Lastname, member.Nickname, member.Company)
team.AddMember(strings.TrimSpace(member.Firstname), strings.TrimSpace(member.Lastname), strings.TrimSpace(member.Nickname), strings.TrimSpace(member.Company))
}
return team.GetMembers()

View File

@ -1,6 +1,7 @@
package fic
import (
"regexp"
"time"
)
@ -59,7 +60,9 @@ func GetTeamByInitialName(initialName string) (Team, error) {
// CRUD method
func CreateTeam(name string, color uint32) (Team, error) {
if res, err := DBExec("INSERT INTO teams (initial_name, name, color) VALUES (?, ?, ?)", name, name, color); err != nil {
re := regexp.MustCompile("[^a-zA-Z0-9]+")
initialName := re.ReplaceAllLiteralString(name, "_")
if res, err := DBExec("INSERT INTO teams (initial_name, name, color) VALUES (?, ?, ?)", initialName, name, color); err != nil {
return Team{}, err
} else if tid, err := res.LastInsertId(); err != nil {
return Team{}, err