frontend: team registration

This commit is contained in:
nemunaire 2017-12-21 22:18:18 +01:00
commit 184714aeeb
10 changed files with 208 additions and 28 deletions

View file

@ -68,7 +68,7 @@ CREATE TABLE IF NOT EXISTS themes(
if _, err := db.Exec(`
CREATE TABLE IF NOT EXISTS teams(
id_team INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
initial_name VARCHAR(255) NOT NULL,
initial_name VARCHAR(255) NOT NULL UNIQUE,
name VARCHAR(255) NOT NULL,
color INTEGER NOT NULL
) DEFAULT CHARACTER SET = utf8 COLLATE = utf8_bin;

View file

@ -52,7 +52,15 @@ func (t Team) AddMember(firstname string, lastname string, nickname string, comp
}
func (t Team) GainMember(m Member) error {
if res, err := DBExec("UPDATE team_members SET id_team = ? WHERE id_member = ?", t.Id, m.Id); err != nil {
if m.Id == 0 {
if res, err := DBExec("INSERT INTO team_members (id_team, firstname, lastname, nickname, company) VALUES (?, ?, ?, ?, ?)", t.Id, m.Firstname, m.Lastname, m.Nickname, m.Company); err != nil {
return err
} else if _, err := res.LastInsertId(); err != nil {
return err
} else {
return nil
}
} else if res, err := DBExec("UPDATE team_members SET id_team = ? WHERE id_member = ?", t.Id, m.Id); err != nil {
return err
} else if _, err := res.RowsAffected(); err != nil {
return err

View file

@ -62,6 +62,10 @@ func GetTeamByInitialName(initialName string) (Team, error) {
func CreateTeam(name string, color uint32) (Team, error) {
re := regexp.MustCompile("[^a-zA-Z0-9]+")
initialName := re.ReplaceAllLiteralString(name, "_")
return RegisterTeam(initialName, name, color)
}
func RegisterTeam(initialName string, name string, color uint32) (Team, error) {
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 {