func (repo *SportActivityRepository) CreateSportActivity(activity *services.SportActivity) (*services.SportActivity, error) { if activity.GetID() == "" { u, _ := uuid.NewV4() id := u.String() activity.ID = &id } err := repo.mongo.Collection.Insert(activity) return activity, err }
func (ch *SportActivityHandler) CreateActivity(token string, activity *services.SportActivity) (*services.SportActivity, error) { userid, _ := ch.userR.GetUserIdFromToken(token) host, err := ch.userR.GetFullUserInfo(userid) if err != nil { return nil, err } activity.Hostid = &userid //broadcast activity to all friends: mActivity, err := ch.repo.CreateSportActivity(activity) if err != nil { return nil, err } //invite all friends to join activity friends := host.Friends if friends != nil { for _, friendid := range friends { //invite friend to activity ch.userR.AnnounceActivity(friendid, *(mActivity.ID)) } } //Announce activity to user himself: ch.userR.AnnounceActivity(*(mActivity.Hostid), *(mActivity.ID)) if activity.ActPublic != nil && *(activity.ActPublic) == true { ch.cityR.AnnounceActivity(*(mActivity.Cityid), *(mActivity.ID)) } //finally add first participant to activity; //TODO this is disabled for debugging reasons //ch.repo.JoinUser(userid,*(mActivity.ID)) return mActivity, err }