[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>
Этот коммит содержится в:
Konstantinos Pittas
2022-12-07 11:16:56 +02:00
коммит произвёл GitHub
родитель 617c024476
Коммит 6e9dbbd237
3 изменённых файлов: 48 добавлений и 10 удалений

Просмотреть файл

@@ -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()