New report router and user reporting refactoring (#25713)
* Added materialized view migration * Renamed mat view * Added channel membership mat view and indexes * Added channel membership mat view and indexes * Added new index * WIP * Simplifying user reporting code * Created app and API layer for cahnnel reporting, reporting refactoring in general * New router * Remobved channel reporting meanwhile * Upodated autogenerated stuff * Lint fix * Fixed typo * api vet * i18n fix * Fixed API vetting and removed channel reporting constants * yaml * removed app pagination tests
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
32880efa25
Коммит
97a23d791e
@@ -6247,7 +6247,7 @@ func testGetUserReport(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
|
||||
t.Run("should return info for all the users", func(t *testing.T) {
|
||||
userReport, err := ss.User().GetUserReport(&model.UserReportOptions{
|
||||
UserReportOptionsWithoutDateRange: model.UserReportOptionsWithoutDateRange{
|
||||
ReportingBaseOptions: model.ReportingBaseOptions{
|
||||
SortColumn: "Username",
|
||||
PageSize: 50,
|
||||
},
|
||||
@@ -6268,7 +6268,7 @@ func testGetUserReport(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
|
||||
t.Run("should return in the correct order", func(t *testing.T) {
|
||||
userReport, err := ss.User().GetUserReport(&model.UserReportOptions{
|
||||
UserReportOptionsWithoutDateRange: model.UserReportOptionsWithoutDateRange{
|
||||
ReportingBaseOptions: model.ReportingBaseOptions{
|
||||
SortColumn: "Username",
|
||||
SortDesc: true,
|
||||
PageSize: 50,
|
||||
@@ -6290,7 +6290,7 @@ func testGetUserReport(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
|
||||
t.Run("should fail on invalid sort column", func(t *testing.T) {
|
||||
userReport, err := ss.User().GetUserReport(&model.UserReportOptions{
|
||||
UserReportOptionsWithoutDateRange: model.UserReportOptionsWithoutDateRange{
|
||||
ReportingBaseOptions: model.ReportingBaseOptions{
|
||||
SortColumn: "FakeColumn",
|
||||
SortDesc: true,
|
||||
PageSize: 50,
|
||||
@@ -6302,7 +6302,7 @@ func testGetUserReport(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
|
||||
t.Run("should only return amount of users in page", func(t *testing.T) {
|
||||
userReport, err := ss.User().GetUserReport(&model.UserReportOptions{
|
||||
UserReportOptionsWithoutDateRange: model.UserReportOptionsWithoutDateRange{
|
||||
ReportingBaseOptions: model.ReportingBaseOptions{
|
||||
SortColumn: "Username",
|
||||
PageSize: 2,
|
||||
},
|
||||
@@ -6320,12 +6320,12 @@ func testGetUserReport(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
|
||||
t.Run("should return correct paging", func(t *testing.T) {
|
||||
userReport, err := ss.User().GetUserReport(&model.UserReportOptions{
|
||||
UserReportOptionsWithoutDateRange: model.UserReportOptionsWithoutDateRange{
|
||||
ReportingBaseOptions: model.ReportingBaseOptions{
|
||||
SortColumn: "Username",
|
||||
PageSize: 50,
|
||||
LastSortColumnValue: u2.Username,
|
||||
LastUserId: u2.Id,
|
||||
},
|
||||
LastUserId: u2.Id,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, userReport)
|
||||
@@ -6337,7 +6337,7 @@ func testGetUserReport(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
|
||||
t.Run("should return accurate post stats for various date ranges", func(t *testing.T) {
|
||||
userReport, err := ss.User().GetUserReport(&model.UserReportOptions{
|
||||
UserReportOptionsWithoutDateRange: model.UserReportOptionsWithoutDateRange{
|
||||
ReportingBaseOptions: model.ReportingBaseOptions{
|
||||
SortColumn: "Username",
|
||||
PageSize: 50,
|
||||
},
|
||||
@@ -6356,11 +6356,11 @@ func testGetUserReport(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
require.Equal(t, now.UnixMilli(), *userReport[2].LastPostDate)
|
||||
|
||||
userReport, err = ss.User().GetUserReport(&model.UserReportOptions{
|
||||
UserReportOptionsWithoutDateRange: model.UserReportOptionsWithoutDateRange{
|
||||
ReportingBaseOptions: model.ReportingBaseOptions{
|
||||
SortColumn: "Username",
|
||||
PageSize: 50,
|
||||
StartAt: now.AddDate(0, 0, -2).UnixMilli(),
|
||||
},
|
||||
StartAt: now.AddDate(0, 0, -2).UnixMilli(),
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, userReport, 3)
|
||||
@@ -6376,11 +6376,11 @@ func testGetUserReport(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
require.Equal(t, now.UnixMilli(), *userReport[2].LastPostDate)
|
||||
|
||||
userReport, err = ss.User().GetUserReport(&model.UserReportOptions{
|
||||
UserReportOptionsWithoutDateRange: model.UserReportOptionsWithoutDateRange{
|
||||
ReportingBaseOptions: model.ReportingBaseOptions{
|
||||
SortColumn: "Username",
|
||||
PageSize: 50,
|
||||
EndAt: now.AddDate(0, 0, -2).UnixMilli(),
|
||||
},
|
||||
EndAt: now.AddDate(0, 0, -2).UnixMilli(),
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, userReport, 3)
|
||||
@@ -6396,12 +6396,12 @@ func testGetUserReport(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
require.Equal(t, now.AddDate(0, 0, -3).UnixMilli(), *userReport[2].LastPostDate)
|
||||
|
||||
userReport, err = ss.User().GetUserReport(&model.UserReportOptions{
|
||||
UserReportOptionsWithoutDateRange: model.UserReportOptionsWithoutDateRange{
|
||||
ReportingBaseOptions: model.ReportingBaseOptions{
|
||||
SortColumn: "Username",
|
||||
PageSize: 50,
|
||||
StartAt: now.AddDate(0, 0, -3).UnixMilli(),
|
||||
EndAt: now.AddDate(0, 0, -2).UnixMilli(),
|
||||
},
|
||||
StartAt: now.AddDate(0, 0, -3).UnixMilli(),
|
||||
EndAt: now.AddDate(0, 0, -2).UnixMilli(),
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, userReport, 3)
|
||||
@@ -6419,11 +6419,11 @@ func testGetUserReport(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
|
||||
t.Run("should filter on roles", func(t *testing.T) {
|
||||
userReport, err := ss.User().GetUserReport(&model.UserReportOptions{
|
||||
UserReportOptionsWithoutDateRange: model.UserReportOptionsWithoutDateRange{
|
||||
ReportingBaseOptions: model.ReportingBaseOptions{
|
||||
SortColumn: "Username",
|
||||
PageSize: 50,
|
||||
Role: "system",
|
||||
},
|
||||
Role: "system",
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, userReport, 1)
|
||||
@@ -6433,11 +6433,11 @@ func testGetUserReport(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
|
||||
t.Run("should filter on teams", func(t *testing.T) {
|
||||
userReport, err := ss.User().GetUserReport(&model.UserReportOptions{
|
||||
UserReportOptionsWithoutDateRange: model.UserReportOptionsWithoutDateRange{
|
||||
ReportingBaseOptions: model.ReportingBaseOptions{
|
||||
SortColumn: "Username",
|
||||
PageSize: 50,
|
||||
HasNoTeam: true,
|
||||
},
|
||||
HasNoTeam: true,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, userReport, 2)
|
||||
@@ -6445,11 +6445,11 @@ func testGetUserReport(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
require.Equal(t, u2.Id, userReport[1].Id)
|
||||
|
||||
userReport, err = ss.User().GetUserReport(&model.UserReportOptions{
|
||||
UserReportOptionsWithoutDateRange: model.UserReportOptionsWithoutDateRange{
|
||||
ReportingBaseOptions: model.ReportingBaseOptions{
|
||||
SortColumn: "Username",
|
||||
PageSize: 50,
|
||||
Team: team.Id,
|
||||
},
|
||||
Team: team.Id,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, userReport, 1)
|
||||
@@ -6458,11 +6458,11 @@ func testGetUserReport(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
|
||||
t.Run("should filter on activation", func(t *testing.T) {
|
||||
userReport, err := ss.User().GetUserReport(&model.UserReportOptions{
|
||||
UserReportOptionsWithoutDateRange: model.UserReportOptionsWithoutDateRange{
|
||||
SortColumn: "Username",
|
||||
PageSize: 50,
|
||||
HideInactive: true,
|
||||
ReportingBaseOptions: model.ReportingBaseOptions{
|
||||
SortColumn: "Username",
|
||||
PageSize: 50,
|
||||
},
|
||||
HideInactive: true,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, userReport, 2)
|
||||
@@ -6470,11 +6470,11 @@ func testGetUserReport(t *testing.T, rctx request.CTX, ss store.Store) {
|
||||
require.Equal(t, u2.Id, userReport[1].Id)
|
||||
|
||||
userReport, err = ss.User().GetUserReport(&model.UserReportOptions{
|
||||
UserReportOptionsWithoutDateRange: model.UserReportOptionsWithoutDateRange{
|
||||
ReportingBaseOptions: model.ReportingBaseOptions{
|
||||
SortColumn: "Username",
|
||||
PageSize: 50,
|
||||
HideActive: true,
|
||||
},
|
||||
HideActive: true,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, userReport, 1)
|
||||
|
||||
Ссылка в новой задаче
Block a user