Fixed a bug when no per page number was supplied

This commit is contained in:
kolaente 2019-10-23 21:04:15 +02:00
parent bce8b50520
commit 502bbbbd9d
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
1 changed files with 11 additions and 6 deletions

View File

@ -47,22 +47,27 @@ func (c *WebHandler) ReadAllWeb(ctx echo.Context) error {
return echo.NewHTTPError(http.StatusBadRequest, "Bad page requested.") return echo.NewHTTPError(http.StatusBadRequest, "Bad page requested.")
} }
if pageNumber < 0 { if pageNumber < 0 {
return echo.NewHTTPError(http.StatusBadRequest, "Bad page requested.") return echo.NewHTTPError(http.StatusBadRequest, "Page number cannot be negative.")
} }
// Items per page // Items per page
var perPageNumber int
perPage := ctx.QueryParam("per_page") perPage := ctx.QueryParam("per_page")
perPageNumber, err := strconv.Atoi(perPage) // If we dont have an "items per page" parameter, we want to use the default.
if err != nil { // To prevent Atoi from failing, we check this here.
config.LoggingProvider.Error(err.Error()) if perPage != "" {
return echo.NewHTTPError(http.StatusBadRequest, "Bad per page amount requested.") perPageNumber, err = strconv.Atoi(perPage)
if err != nil {
config.LoggingProvider.Error(err.Error())
return echo.NewHTTPError(http.StatusBadRequest, "Bad per page amount requested.")
}
} }
// Set default page count // Set default page count
if perPageNumber == 0 { if perPageNumber == 0 {
perPageNumber = config.MaxItemsPerPage perPageNumber = config.MaxItemsPerPage
} }
if perPageNumber < 1 { if perPageNumber < 1 {
return echo.NewHTTPError(http.StatusBadRequest, "Bad per page amount requested.") return echo.NewHTTPError(http.StatusBadRequest, "Per page amount cannot be negative.")
} }
if perPageNumber > config.MaxItemsPerPage { if perPageNumber > config.MaxItemsPerPage {
perPageNumber = config.MaxItemsPerPage perPageNumber = config.MaxItemsPerPage