[MM-46463] Return last_picture_update for new team members (#21758)
* return last picture update * add API test Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
617c024476
Коммит
6e9dbbd237
@@ -7,10 +7,12 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/mattermost/mattermost-server/v6/model"
|
|
||||||
"github.com/mattermost/mattermost-server/v6/store"
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
|
"github.com/mattermost/mattermost-server/v6/model"
|
||||||
|
"github.com/mattermost/mattermost-server/v6/store"
|
||||||
|
"github.com/mattermost/mattermost-server/v6/utils/testutils"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Top Reactions
|
// Top Reactions
|
||||||
@@ -1157,6 +1159,41 @@ func TestNewTeamMembersSince(t *testing.T) {
|
|||||||
CheckNotImplementedStatus(t, resp)
|
CheckNotImplementedStatus(t, resp)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
t.Run("includes all data for the user", func(t *testing.T) {
|
||||||
|
checkUser := func(ntm *model.NewTeamMember, hasProfilePicture bool) {
|
||||||
|
require.Equal(t, th.BasicUser.Id, ntm.Id)
|
||||||
|
require.Equal(t, th.BasicUser.Username, ntm.Username)
|
||||||
|
require.Equal(t, th.BasicUser.FirstName, ntm.FirstName)
|
||||||
|
require.Equal(t, th.BasicUser.LastName, ntm.LastName)
|
||||||
|
require.Equal(t, th.BasicUser.Position, ntm.Position)
|
||||||
|
require.Equal(t, th.BasicUser.Nickname, ntm.Nickname)
|
||||||
|
member, err := th.App.GetTeamMember(team.Id, th.BasicUser.Id)
|
||||||
|
require.Nil(t, err)
|
||||||
|
require.Equal(t, member.CreateAt, ntm.CreateAt)
|
||||||
|
if hasProfilePicture {
|
||||||
|
require.Truef(t, ntm.LastPictureUpdate > int64(0), "should be greater than 0, but was %d", ntm.LastPictureUpdate)
|
||||||
|
} else {
|
||||||
|
require.Equal(t, int64(0), ntm.LastPictureUpdate)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
th.App.Srv().SetLicense(model.NewTestLicenseSKU(model.LicenseShortSkuProfessional))
|
||||||
|
list, resp, err := th.Client.GetNewTeamMembersSince(team.Id, model.TimeRangeToday, 0, 5)
|
||||||
|
require.NoError(t, err)
|
||||||
|
CheckOKStatus(t, resp)
|
||||||
|
checkUser(list.Items[0], false)
|
||||||
|
|
||||||
|
data, err := testutils.ReadTestFile("test.png")
|
||||||
|
require.NoError(t, err)
|
||||||
|
_, err = th.Client.SetProfileImage(th.BasicUser.Id, data)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
list, resp, err = th.Client.GetNewTeamMembersSince(team.Id, model.TimeRangeToday, 0, 5)
|
||||||
|
require.NoError(t, err)
|
||||||
|
CheckOKStatus(t, resp)
|
||||||
|
checkUser(list.Items[0], true)
|
||||||
|
})
|
||||||
|
|
||||||
t.Run("implements pagination", func(t *testing.T) {
|
t.Run("implements pagination", func(t *testing.T) {
|
||||||
// check the first page of results
|
// check the first page of results
|
||||||
list, resp, err := th.Client.GetNewTeamMembersSince(team.Id, model.TimeRangeToday, 0, 2)
|
list, resp, err := th.Client.GetNewTeamMembersSince(team.Id, model.TimeRangeToday, 0, 2)
|
||||||
|
|||||||
@@ -118,13 +118,14 @@ type NewTeamMembersList struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type NewTeamMember struct {
|
type NewTeamMember struct {
|
||||||
Id string `json:"id"`
|
Id string `json:"id"`
|
||||||
Username string `json:"username"`
|
Username string `json:"username"`
|
||||||
FirstName string `json:"first_name"`
|
FirstName string `json:"first_name"`
|
||||||
LastName string `json:"last_name"`
|
LastName string `json:"last_name"`
|
||||||
Position string `json:"position"`
|
Position string `json:"position"`
|
||||||
Nickname string `json:"nickname"`
|
Nickname string `json:"nickname"`
|
||||||
CreateAt int64 `json:"create_at"`
|
LastPictureUpdate int64 `json:"last_picture_update,omitempty"`
|
||||||
|
CreateAt int64 `json:"create_at"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type DurationPostCount struct {
|
type DurationPostCount struct {
|
||||||
|
|||||||
@@ -1675,7 +1675,7 @@ func (s SqlTeamStore) GetNewTeamMembersSince(teamID string, since int64, offset
|
|||||||
return nil, 0, errors.Wrap(err, "failed to count team members since")
|
return nil, 0, errors.Wrap(err, "failed to count team members since")
|
||||||
}
|
}
|
||||||
|
|
||||||
newTeamMembersBuilder := builderF("Users.Id, Users.Username, Users.FirstName, Users.LastName, Users.Position, TeamMembers.CreateAt, Users.Nickname").
|
newTeamMembersBuilder := builderF("Users.Id, Users.Username, Users.FirstName, Users.LastName, Users.Position, Users.LastPictureUpdate, TeamMembers.CreateAt, Users.Nickname").
|
||||||
Limit(uint64(limit + 1)).
|
Limit(uint64(limit + 1)).
|
||||||
Offset(uint64(offset))
|
Offset(uint64(offset))
|
||||||
query, args, err = newTeamMembersBuilder.ToSql()
|
query, args, err = newTeamMembersBuilder.ToSql()
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user