[MM-38131] Remove deprecated pageSize query parameter (#27957)

This commit is contained in:
Ben Schumacher
2024-08-13 22:18:22 +02:00
committed by GitHub
parent 6229b784eb
commit fc1a111b06
3 changed files with 19 additions and 54 deletions

View File

@@ -2618,16 +2618,16 @@
type: string type: string
- name: page - name: page
in: query in: query
description: Page specifies which part of the results to return, by PageSize. description: Page specifies which part of the results to return, by perPage.
required: false required: false
schema: schema:
type: integer type: integer
- name: pageSize - name: per_page
in: query in: query
description: PageSize specifies the size of the returned chunk of results. description: The size of the returned chunk of results.
required: false
schema: schema:
type: integer type: integer
default: 60
responses: responses:
"200": "200":
description: User's uploads retrieval successful description: User's uploads retrieval successful
@@ -2787,18 +2787,17 @@
default: false default: false
- name: page - name: page
in: query in: query
description: Page specifies which part of the results to return, by PageSize. description: Page specifies which part of the results to return, by per_page.
required: false required: false
schema: schema:
type: integer type: integer
default: 0 default: 0
- name: pageSize - name: per_page
in: query in: query
description: PageSize specifies the size of the returned chunk of results. description: The size of the returned chunk of results.
required: false
schema: schema:
default: 30 type: integer
type: integer default: 60
- name: totalsOnly - name: totalsOnly
in: query in: query
description: Setting this to true will only return the total counts. description: Setting this to true will only return the total counts.

View File

@@ -5,7 +5,6 @@ package web
import ( import (
"net/http" "net/http"
"net/url"
"strconv" "strconv"
"strings" "strings"
@@ -187,7 +186,15 @@ func ParamsFromRequest(r *http.Request) *Params {
params.TimeRange = query.Get("time_range") params.TimeRange = query.Get("time_range")
params.Permanent, _ = strconv.ParseBool(query.Get("permanent")) params.Permanent, _ = strconv.ParseBool(query.Get("permanent"))
params.PerPage = getPerPageFromQuery(query)
val, err := strconv.Atoi(query.Get("per_page"))
if err != nil || val < 0 {
params.PerPage = PerPageDefault
} else if val > PerPageMaximum {
params.PerPage = PerPageMaximum
} else {
params.PerPage = val
}
if val, err := strconv.Atoi(query.Get("logs_per_page")); err != nil || val < 0 { if val, err := strconv.Atoi(query.Get("logs_per_page")); err != nil || val < 0 {
params.LogsPerPage = LogsPerPageDefault params.LogsPerPage = LogsPerPageDefault
@@ -273,20 +280,3 @@ func ParamsFromRequest(r *http.Request) *Params {
return params return params
} }
// getPerPageFromQuery returns the PerPage value from the given query.
// This function should be removed and the support for `pageSize`
// should be dropped after v1.46 of the mobile app is no longer supported
// https://mattermost.atlassian.net/browse/MM-38131
func getPerPageFromQuery(query url.Values) int {
val, err := strconv.Atoi(query.Get("per_page"))
if err != nil {
val, err = strconv.Atoi(query.Get("pageSize"))
}
if err != nil || val < 0 {
return PerPageDefault
} else if val > PerPageMaximum {
return PerPageMaximum
}
return val
}

View File

@@ -13,30 +13,6 @@ import (
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
) )
func TestGetPerPageFromQuery(t *testing.T) {
t.Run("defaults should be set", func(t *testing.T) {
query := make(url.Values)
perPage := getPerPageFromQuery(query)
require.Equal(t, PerPageDefault, perPage)
})
t.Run("per_page should take priority", func(t *testing.T) {
query := make(url.Values)
query.Add("pageSize", "100")
query.Add("per_page", "50")
perPage := getPerPageFromQuery(query)
require.Equal(t, 50, perPage)
})
t.Run("pageSize should be used only if per_page is incorrectly set", func(t *testing.T) {
query := make(url.Values)
query.Add("pageSize", "100")
query.Add("per_page", "BAD VALUE")
perPage := getPerPageFromQuery(query)
require.Equal(t, 100, perPage)
})
}
func TestParamsFromRequest(t *testing.T) { func TestParamsFromRequest(t *testing.T) {
testCases := []struct { testCases := []struct {
Description string Description string