// Save guarda un miembro en la base de datos func (m *Member) Save(teamID int) error { _, err := database.DB().Exec("INSERT INTO members (nombres, apellidos, "+ "tipo_id, numero_id, team) VALUES "+ "($1, $2, $3, $4, $5)", m.Nombres, m.Apellidos, m.TipoID, m.NumeroID, teamID) return err }
// Save guarda un equipo en la base de datos func (t *Team) Save() error { var teamID int err := database.DB().QueryRow("INSERT INTO teams (nombre, proyecto) "+ "VALUES ($1, $2) RETURNING id", t.Nombre, t.Proyecto).Scan(&teamID) if err != nil { return err } c := members.SaveMultiple(t.Miembros, int(teamID)) for i := 0; i < len(t.Miembros); i++ { err = <-c if err != nil { return err } } return nil }
// ForTeam toma una id y busca los miembros pertenecientes // a ese equipo func ForTeam(id int) ([]Member, error) { rows, err := database.DB().Query("SELECT id, nombres, apellidos, tipo_id,"+ "numero_id FROM members WHERE team=$1", id) if err != nil { return nil, err } members := make([]Member, 0) for rows.Next() { var m Member err = rows.Scan(&m.ID, &m.Nombres, &m.Apellidos, &m.TipoID, &m.NumeroID) if err != nil { return nil, err } members = append(members, m) } err = rows.Err() return members, err }
// AllTeams hace lo que viene en la etiqueta func AllTeams() ([]Team, error) { rows, err := database.DB().Query("SELECT * FROM teams") if err != nil { return nil, err } teams := make([]Team, 0) for rows.Next() { var t Team err = rows.Scan(&t.ID, &t.Nombre, &t.Proyecto) if err != nil { return nil, err } t.Miembros, err = members.ForTeam(t.ID) if err != nil { return nil, err } teams = append(teams, t) } err = rows.Err() return teams, err }