package model type Recipe struct { Id string // FIXME has to be uint Title string Portions string // FIXME has to be uint URL string Notes string Steps []RecipeStep } func (d *Recipe) FromDB() error { query, err := GetSql(`recipe-select`) if err != nil { return err } err = db.QueryRow(query, d.Id).Scan( &d.Id, &d.Title, &d.Portions, &d.URL, &d.Notes, ) if err != nil { return err } query, err = GetSql(`steps-for-recipe`) if err != nil { return err } rows, err := db.Query(query, d.Id) if err != nil { return err } for rows.Next() { var step RecipeStep err = rows.Scan(&step.Text) if err != nil { return err } d.Steps = append(d.Steps, step) } return nil } func (d *Recipe) ToDB() error { query, err := GetSql(`recipe-update`) if err != nil { return err } _, err = db.Exec(query, d.Title, d.Portions, d.URL, d.Notes, d.Id) return err }