[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"
|
||||
"time"
|
||||
|
||||
"github.com/mattermost/mattermost-server/v6/model"
|
||||
"github.com/mattermost/mattermost-server/v6/store"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"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
|
||||
@@ -1157,6 +1159,41 @@ func TestNewTeamMembersSince(t *testing.T) {
|
||||
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) {
|
||||
// check the first page of results
|
||||
list, resp, err := th.Client.GetNewTeamMembersSince(team.Id, model.TimeRangeToday, 0, 2)
|
||||
|
||||
@@ -118,13 +118,14 @@ type NewTeamMembersList struct {
|
||||
}
|
||||
|
||||
type NewTeamMember struct {
|
||||
Id string `json:"id"`
|
||||
Username string `json:"username"`
|
||||
FirstName string `json:"first_name"`
|
||||
LastName string `json:"last_name"`
|
||||
Position string `json:"position"`
|
||||
Nickname string `json:"nickname"`
|
||||
CreateAt int64 `json:"create_at"`
|
||||
Id string `json:"id"`
|
||||
Username string `json:"username"`
|
||||
FirstName string `json:"first_name"`
|
||||
LastName string `json:"last_name"`
|
||||
Position string `json:"position"`
|
||||
Nickname string `json:"nickname"`
|
||||
LastPictureUpdate int64 `json:"last_picture_update,omitempty"`
|
||||
CreateAt int64 `json:"create_at"`
|
||||
}
|
||||
|
||||
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")
|
||||
}
|
||||
|
||||
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)).
|
||||
Offset(uint64(offset))
|
||||
query, args, err = newTeamMembersBuilder.ToSql()
|
||||
|
||||
Ссылка в новой задаче
Block a user