MM-44101: GraphQL: Add sidebar categories at the top level (#20178)
Also, add a negate parameter to the team members to get all sidebarcategories except the default team. ```release-note NONE ```
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
3c625743e5
Коммит
acae0031d1
@@ -8822,7 +8822,7 @@ func (s *OpenTracingLayerTeamStore) GetTeamsByUserId(userID string) ([]*model.Te
|
||||
return result, err
|
||||
}
|
||||
|
||||
func (s *OpenTracingLayerTeamStore) GetTeamsForUser(ctx context.Context, userID string, includeDeleted bool) ([]*model.TeamMember, error) {
|
||||
func (s *OpenTracingLayerTeamStore) GetTeamsForUser(ctx context.Context, userID string, excludeTeamID string, includeDeleted bool) ([]*model.TeamMember, error) {
|
||||
origCtx := s.Root.Store.Context()
|
||||
span, newCtx := tracing.StartSpanWithParentByContext(s.Root.Store.Context(), "TeamStore.GetTeamsForUser")
|
||||
s.Root.Store.SetContext(newCtx)
|
||||
@@ -8831,7 +8831,7 @@ func (s *OpenTracingLayerTeamStore) GetTeamsForUser(ctx context.Context, userID
|
||||
}()
|
||||
|
||||
defer span.Finish()
|
||||
result, err := s.TeamStore.GetTeamsForUser(ctx, userID, includeDeleted)
|
||||
result, err := s.TeamStore.GetTeamsForUser(ctx, userID, excludeTeamID, includeDeleted)
|
||||
if err != nil {
|
||||
span.LogFields(spanlog.Error(err))
|
||||
ext.Error.Set(span, true)
|
||||
|
||||
@@ -10072,11 +10072,11 @@ func (s *RetryLayerTeamStore) GetTeamsByUserId(userID string) ([]*model.Team, er
|
||||
|
||||
}
|
||||
|
||||
func (s *RetryLayerTeamStore) GetTeamsForUser(ctx context.Context, userID string, includeDeleted bool) ([]*model.TeamMember, error) {
|
||||
func (s *RetryLayerTeamStore) GetTeamsForUser(ctx context.Context, userID string, excludeTeamID string, includeDeleted bool) ([]*model.TeamMember, error) {
|
||||
|
||||
tries := 0
|
||||
for {
|
||||
result, err := s.TeamStore.GetTeamsForUser(ctx, userID, includeDeleted)
|
||||
result, err := s.TeamStore.GetTeamsForUser(ctx, userID, excludeTeamID, includeDeleted)
|
||||
if err == nil {
|
||||
return result, nil
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ func (me SqlSessionStore) Save(session *model.Session) (*model.Session, error) {
|
||||
return nil, errors.Wrapf(err, "failed to save Session with id=%s", session.Id)
|
||||
}
|
||||
|
||||
teamMembers, err := me.Team().GetTeamsForUser(context.Background(), session.UserId, true)
|
||||
teamMembers, err := me.Team().GetTeamsForUser(context.Background(), session.UserId, "", true)
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "failed to find TeamMembers for Session with userId=%s", session.UserId)
|
||||
}
|
||||
@@ -87,7 +87,7 @@ func (me SqlSessionStore) Get(ctx context.Context, sessionIdOrToken string) (*mo
|
||||
|
||||
tempMembers, err := me.Team().GetTeamsForUser(
|
||||
WithMaster(context.Background()),
|
||||
session.UserId, true)
|
||||
session.UserId, "", true)
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "failed to find TeamMembers for Session with userId=%s", session.UserId)
|
||||
}
|
||||
@@ -107,7 +107,7 @@ func (me SqlSessionStore) GetSessions(userId string) ([]*model.Session, error) {
|
||||
return nil, errors.Wrapf(err, "failed to find Sessions with userId=%s", userId)
|
||||
}
|
||||
|
||||
teamMembers, err := me.Team().GetTeamsForUser(context.Background(), userId, true)
|
||||
teamMembers, err := me.Team().GetTeamsForUser(context.Background(), userId, "", true)
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "failed to find TeamMembers for Session with userId=%s", userId)
|
||||
}
|
||||
|
||||
@@ -1080,11 +1080,15 @@ func (s SqlTeamStore) GetMembersByIds(teamId string, userIds []string, restricti
|
||||
return dbMembers.ToModel(), nil
|
||||
}
|
||||
|
||||
// GetTeamsForUser returns a list of teams that the user is a member of. Expects userId to be passed as a parameter.
|
||||
func (s SqlTeamStore) GetTeamsForUser(ctx context.Context, userId string, includeDeleted bool) ([]*model.TeamMember, error) {
|
||||
// GetTeamsForUser returns a list of teams that the user is a member of. Expects userId to be passed as a parameter. It can also negative the teamID passed.
|
||||
func (s SqlTeamStore) GetTeamsForUser(ctx context.Context, userId, excludeTeamID string, includeDeleted bool) ([]*model.TeamMember, error) {
|
||||
query := s.getTeamMembersWithSchemeSelectQuery().
|
||||
Where(sq.Eq{"TeamMembers.UserId": userId})
|
||||
|
||||
if excludeTeamID != "" {
|
||||
query = query.Where(sq.NotEq{"TeamMembers.TeamId": excludeTeamID})
|
||||
}
|
||||
|
||||
if !includeDeleted {
|
||||
query = query.Where(sq.Eq{"TeamMembers.DeleteAt": 0})
|
||||
}
|
||||
|
||||
@@ -126,7 +126,7 @@ type TeamStore interface {
|
||||
GetMembersByIds(teamID string, userIds []string, restrictions *model.ViewUsersRestrictions) ([]*model.TeamMember, error)
|
||||
GetTotalMemberCount(teamID string, restrictions *model.ViewUsersRestrictions) (int64, error)
|
||||
GetActiveMemberCount(teamID string, restrictions *model.ViewUsersRestrictions) (int64, error)
|
||||
GetTeamsForUser(ctx context.Context, userID string, includeDeleted bool) ([]*model.TeamMember, error)
|
||||
GetTeamsForUser(ctx context.Context, userID, excludeTeamID string, includeDeleted bool) ([]*model.TeamMember, error)
|
||||
GetTeamsForUserWithPagination(userID string, page, perPage int) ([]*model.TeamMember, error)
|
||||
GetChannelUnreadsForAllTeams(excludeTeamID, userID string) ([]*model.ChannelUnread, error)
|
||||
GetChannelUnreadsForTeam(teamID, userID string) ([]*model.ChannelUnread, error)
|
||||
|
||||
@@ -535,13 +535,13 @@ func (_m *TeamStore) GetTeamsByUserId(userID string) ([]*model.Team, error) {
|
||||
return r0, r1
|
||||
}
|
||||
|
||||
// GetTeamsForUser provides a mock function with given fields: ctx, userID, includeDeleted
|
||||
func (_m *TeamStore) GetTeamsForUser(ctx context.Context, userID string, includeDeleted bool) ([]*model.TeamMember, error) {
|
||||
ret := _m.Called(ctx, userID, includeDeleted)
|
||||
// GetTeamsForUser provides a mock function with given fields: ctx, userID, excludeTeamID, includeDeleted
|
||||
func (_m *TeamStore) GetTeamsForUser(ctx context.Context, userID string, excludeTeamID string, includeDeleted bool) ([]*model.TeamMember, error) {
|
||||
ret := _m.Called(ctx, userID, excludeTeamID, includeDeleted)
|
||||
|
||||
var r0 []*model.TeamMember
|
||||
if rf, ok := ret.Get(0).(func(context.Context, string, bool) []*model.TeamMember); ok {
|
||||
r0 = rf(ctx, userID, includeDeleted)
|
||||
if rf, ok := ret.Get(0).(func(context.Context, string, string, bool) []*model.TeamMember); ok {
|
||||
r0 = rf(ctx, userID, excludeTeamID, includeDeleted)
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).([]*model.TeamMember)
|
||||
@@ -549,8 +549,8 @@ func (_m *TeamStore) GetTeamsForUser(ctx context.Context, userID string, include
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(context.Context, string, bool) error); ok {
|
||||
r1 = rf(ctx, userID, includeDeleted)
|
||||
if rf, ok := ret.Get(1).(func(context.Context, string, string, bool) error); ok {
|
||||
r1 = rf(ctx, userID, excludeTeamID, includeDeleted)
|
||||
} else {
|
||||
r1 = ret.Error(1)
|
||||
}
|
||||
|
||||
@@ -1318,7 +1318,7 @@ func testTeamMembers(t *testing.T, ss store.Store) {
|
||||
require.Equal(t, m3.UserId, ms[0].UserId)
|
||||
|
||||
ctx := context.Background()
|
||||
ms, err = ss.Team().GetTeamsForUser(ctx, m1.UserId, true)
|
||||
ms, err = ss.Team().GetTeamsForUser(ctx, m1.UserId, "", true)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, ms, 1)
|
||||
require.Equal(t, m1.TeamId, ms[0].TeamId)
|
||||
@@ -1347,26 +1347,30 @@ func testTeamMembers(t *testing.T, ss store.Store) {
|
||||
_, nErr = ss.Team().SaveMultipleMembers([]*model.TeamMember{m4, m5}, -1)
|
||||
require.NoError(t, nErr)
|
||||
|
||||
ms, err = ss.Team().GetTeamsForUser(ctx, uid, true)
|
||||
ms, err = ss.Team().GetTeamsForUser(ctx, uid, "", true)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, ms, 2)
|
||||
|
||||
ms, err = ss.Team().GetTeamsForUser(ctx, uid, teamId2, true)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, ms, 1)
|
||||
|
||||
m4.DeleteAt = model.GetMillis()
|
||||
_, err = ss.Team().UpdateMember(m4)
|
||||
require.NoError(t, err)
|
||||
|
||||
ms, err = ss.Team().GetTeamsForUser(ctx, uid, true)
|
||||
ms, err = ss.Team().GetTeamsForUser(ctx, uid, "", true)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, ms, 2)
|
||||
|
||||
ms, err = ss.Team().GetTeamsForUser(ctx, uid, false)
|
||||
ms, err = ss.Team().GetTeamsForUser(ctx, uid, "", false)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, ms, 1)
|
||||
|
||||
nErr = ss.Team().RemoveAllMembersByUser(uid)
|
||||
require.NoError(t, nErr)
|
||||
|
||||
ms, err = ss.Team().GetTeamsForUser(ctx, m1.UserId, true)
|
||||
ms, err = ss.Team().GetTeamsForUser(ctx, m1.UserId, "", true)
|
||||
require.NoError(t, err)
|
||||
require.Empty(t, ms)
|
||||
}
|
||||
|
||||
@@ -7944,10 +7944,10 @@ func (s *TimerLayerTeamStore) GetTeamsByUserId(userID string) ([]*model.Team, er
|
||||
return result, err
|
||||
}
|
||||
|
||||
func (s *TimerLayerTeamStore) GetTeamsForUser(ctx context.Context, userID string, includeDeleted bool) ([]*model.TeamMember, error) {
|
||||
func (s *TimerLayerTeamStore) GetTeamsForUser(ctx context.Context, userID string, excludeTeamID string, includeDeleted bool) ([]*model.TeamMember, error) {
|
||||
start := timemodule.Now()
|
||||
|
||||
result, err := s.TeamStore.GetTeamsForUser(ctx, userID, includeDeleted)
|
||||
result, err := s.TeamStore.GetTeamsForUser(ctx, userID, excludeTeamID, includeDeleted)
|
||||
|
||||
elapsed := float64(timemodule.Since(start)) / float64(timemodule.Second)
|
||||
if s.Root.Metrics != nil {
|
||||
|
||||
Ссылка в новой задаче
Block a user