func createGroup(uuid uint64, conn net.Conn, r *bufio.Reader, w *bufio.Writer, md *MDService) (err error) { // get lenArgs lenArgs, _ := r.ReadByte() for i := 1; i < int(lenArgs); i++ { var newGroup utils.Group groupName, _ := r.ReadString('\n') groupName = strings.TrimSpace(groupName) // create the group in the database err = md.userDB.Update(func(tx *bolt.Tx) (err error) { // get group bucket b := tx.Bucket([]byte("groups")) id, _ := b.NextSequence() idStr := strconv.FormatUint(id, 10) newGroup.Gid = uint64(id) newGroup.Gname = groupName newGroup.Members = append(newGroup.Members, uuid) newGroup.Owner = uuid fmt.Println("\tNew group \"" + newGroup.Gname + "\" with owner id: " + strconv.FormatUint(uuid, 10)) buf, err := json.Marshal(newGroup) if err != nil { return err } w.WriteString(idStr + "\n") w.Flush() return b.Put(itob(newGroup.Gid), buf) }) if err != nil { return err } } return err }