Allow team to be added by name, without member first
This commit is contained in:
parent
181953a9f0
commit
5bc3395b04
|
@ -6,11 +6,23 @@ import (
|
|||
)
|
||||
|
||||
var ApiTeamsRouting = map[string]DispatchFunction{
|
||||
"GET": listTeam,
|
||||
"POST": creationTeam,
|
||||
"GET": listTeam,
|
||||
"PUT": creationTeamMembers,
|
||||
"POST": creationTeam,
|
||||
"DELETE": deletionTeam,
|
||||
}
|
||||
|
||||
type uploadedTeam struct {
|
||||
Name string
|
||||
}
|
||||
|
||||
type uploadedMember struct {
|
||||
Firstname string
|
||||
Lastname string
|
||||
Nickname string
|
||||
Company string
|
||||
}
|
||||
|
||||
func listTeam(args []string, body []byte) (interface{}, error) {
|
||||
if len(args) == 1 {
|
||||
// List given team
|
||||
|
@ -31,15 +43,38 @@ func listTeam(args []string, body []byte) (interface{}, error) {
|
|||
|
||||
func creationTeam(args []string, body []byte) (interface{}, error) {
|
||||
if len(args) == 0 {
|
||||
type UploadedMember struct {
|
||||
Firstname string
|
||||
Lastname string
|
||||
Nickname string
|
||||
Company string
|
||||
// Create a new team
|
||||
var ut uploadedTeam
|
||||
if err := json.Unmarshal(body, &ut); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return CreateTeam(ut.Name)
|
||||
} else {
|
||||
return nil, nil
|
||||
}
|
||||
}
|
||||
|
||||
func creationTeamMembers(args []string, body []byte) (interface{}, error) {
|
||||
if len(args) == 1 {
|
||||
// List given team
|
||||
if tid, err := strconv.Atoi(string(args[0])); err != nil {
|
||||
return nil, err
|
||||
} else if team, err := GetTeam(tid); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
var member uploadedMember
|
||||
if err := json.Unmarshal(body, &member); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
team.AddMember(member.Firstname, member.Lastname, member.Nickname, member.Company)
|
||||
|
||||
return team.GetMembers()
|
||||
}
|
||||
} else if len(args) == 0 {
|
||||
// Create a new team
|
||||
var members []UploadedMember
|
||||
var members []uploadedMember
|
||||
if err := json.Unmarshal(body, &members); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -53,10 +88,10 @@ func creationTeam(args []string, body []byte) (interface{}, error) {
|
|||
}
|
||||
}
|
||||
|
||||
return "Ok", nil
|
||||
return team, nil
|
||||
}
|
||||
} else {
|
||||
return nil,nil
|
||||
return nil, nil
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue