package fic import () type Member struct { Id int64 `json:"id"` Firstname string `json:"firstname"` Lastname string `json:"lastname"` Nickname string `json:"nickname"` Company string `json:"company"` } func GetMember(cnt int) (Team, error) { var t Team if err := DBQueryRow("SELECT T.id_team, T.initial_name, T.name, T.color FROM team_members M RIGHT OUTER JOIN teams T ON T.id_team = M.id_team LIMIT ?, 1", cnt - 1).Scan(&t.Id, &t.InitialName, &t.Name, &t.Color); err != nil { return t, err } return t, nil } func (t Team) GetMembers() ([]Member, error) { if rows, err := DBQuery("SELECT id_member, firstname, lastname, nickname, company FROM team_members WHERE id_team = ?", t.Id); err != nil { return nil, err } else { defer rows.Close() var members = make([]Member, 0) for rows.Next() { var m Member if err := rows.Scan(&m.Id, &m.Firstname, &m.Lastname, &m.Nickname, &m.Company); err != nil { return nil, err } members = append(members, m) } if err := rows.Err(); err != nil { return nil, err } return members, nil } } func (t Team) AddMember(firstname string, lastname string, nickname string, company string) (Member, error) { if res, err := DBExec("INSERT INTO team_members (id_team, firstname, lastname, nickname, company) VALUES (?, ?, ?, ?, ?)", t.Id, firstname, lastname, nickname, company); err != nil { return Member{}, err } else if mid, err := res.LastInsertId(); err != nil { return Member{}, err } else { return Member{mid, firstname, lastname, nickname, company}, nil } } 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 { return err } else if _, err := res.RowsAffected(); err != nil { return err } else { return nil } } func (m Member) Update() (int64, error) { if res, err := DBExec("UPDATE team_members SET firstname = ?, lastname = ?, nickname = ?, company = ? WHERE id_member = ?", m.Firstname, m.Lastname, m.Nickname, m.Company, m.Id); err != nil { return 0, err } else if nb, err := res.RowsAffected(); err != nil { return 0, err } else { return nb, err } } func (m Member) Delete() (int64, error) { if res, err := DBExec("DELETE FROM team_members WHERE id_member = ?", m.Id); err != nil { return 0, err } else if nb, err := res.RowsAffected(); err != nil { return 0, err } else { return nb, err } }