[MM-36792] limit number of threads returned from SQL store (#18260)
Summary Limit the number of threads returned in a single SQL store call by using the per_page query param instead of pageSize. Our param handling code automatically limits the number of records that can be requested. To support older mobile clients we continue to support the pageSize param until version 6.0 of the server is the minimum supported server version on mobile. Related PRs: [MM-36792] Consistent query param names mattermost-webapp#8700 [MM-36792] Consistent query param names mattermost-mobile#5643 Ticket Link https://mattermost.atlassian.net/browse/MM-36792
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
9fb8de7318
Коммит
b6564fec6d
11
api4/user.go
11
api4/user.go
@@ -2939,7 +2939,7 @@ func getThreadsForUser(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||
Since: 0,
|
||||
Before: "",
|
||||
After: "",
|
||||
PageSize: 30,
|
||||
PageSize: uint64(c.Params.PerPage),
|
||||
Unread: false,
|
||||
Extended: false,
|
||||
Deleted: false,
|
||||
@@ -2962,15 +2962,6 @@ func getThreadsForUser(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||
c.Err = model.NewAppError("api.getThreadsForUser", "api.getThreadsForUser.bad_params", nil, "", http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
pageSizeString := r.URL.Query().Get("pageSize")
|
||||
if pageSizeString != "" {
|
||||
pageSize, parseError := strconv.ParseUint(pageSizeString, 10, 64)
|
||||
if parseError != nil {
|
||||
c.SetInvalidParam("pageSize")
|
||||
return
|
||||
}
|
||||
options.PageSize = pageSize
|
||||
}
|
||||
|
||||
deletedStr := r.URL.Query().Get("deleted")
|
||||
unreadStr := r.URL.Query().Get("unread")
|
||||
|
||||
@@ -5621,7 +5621,8 @@ func TestGetThreadsForUser(t *testing.T) {
|
||||
defer th.App.Srv().Store.Post().PermanentDeleteByUser(th.BasicUser.Id)
|
||||
|
||||
uss, _, err := th.Client.GetUserThreads(th.BasicUser.Id, th.BasicTeam.Id, model.GetUserThreadsOpts{
|
||||
Deleted: false,
|
||||
Deleted: false,
|
||||
PageSize: 30,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, uss.Threads, 30)
|
||||
|
||||
Ссылка в новой задаче
Block a user