admin: restore function to add team and members

This commit is contained in:
nemunaire 2017-01-19 13:12:26 +01:00 committed by nemunaire
parent a46739ac36
commit 1af5a92f80
2 changed files with 10 additions and 5 deletions

View File

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

View File

@ -1,6 +1,7 @@
package fic package fic
import ( import (
"regexp"
"time" "time"
) )
@ -59,7 +60,9 @@ func GetTeamByInitialName(initialName string) (Team, error) {
// CRUD method // CRUD method
func CreateTeam(name string, color uint32) (Team, error) { 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 return Team{}, err
} else if tid, err := res.LastInsertId(); err != nil { } else if tid, err := res.LastInsertId(); err != nil {
return Team{}, err return Team{}, err