mirror of
https://github.com/coder/coder.git
synced 2025-07-03 16:13:58 +00:00
There isn't a use-case for querying a limit of zero. Using -1 led to issues when using default parameters for querying.
33 lines
941 B
Go
33 lines
941 B
Go
package coderd
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/google/uuid"
|
|
|
|
"github.com/coder/coder/coderd/httpapi"
|
|
"github.com/coder/coder/codersdk"
|
|
)
|
|
|
|
// parsePagination extracts pagination query params from the http request.
|
|
// If an error is encountered, the error is written to w and ok is set to false.
|
|
func parsePagination(w http.ResponseWriter, r *http.Request) (p codersdk.Pagination, ok bool) {
|
|
queryParams := r.URL.Query()
|
|
parser := httpapi.NewQueryParamParser()
|
|
params := codersdk.Pagination{
|
|
AfterID: parser.UUID(queryParams, uuid.Nil, "after_id"),
|
|
// Limit default to "-1" which returns all results
|
|
Limit: parser.Int(queryParams, 0, "limit"),
|
|
Offset: parser.Int(queryParams, 0, "offset"),
|
|
}
|
|
if len(parser.Errors) > 0 {
|
|
httpapi.Write(w, http.StatusBadRequest, httpapi.Response{
|
|
Message: "Query parameters have invalid values.",
|
|
Validations: parser.Errors,
|
|
})
|
|
return params, false
|
|
}
|
|
|
|
return params, true
|
|
}
|