func (s UserStorage) getOneWithAssociations(id int64) (model.User, error) { var user model.User s.db.First(&user, id) s.db.Model(&user).Related(&user.Chocolates, "Chocolates") if err := s.db.Error; err == gorm.ErrRecordNotFound { errMessage := fmt.Sprintf("User for id %s not found", id) return model.User{}, api2go.NewHTTPError(errors.New(errMessage), errMessage, http.StatusNotFound) } else if err != nil { return model.User{}, err } user.ChocolatesIDs = make([]string, len(user.Chocolates)) for i, choc := range user.Chocolates { user.ChocolatesIDs[i] = choc.GetID() } return user, nil }