diff --git a/handler/read_all.go b/handler/read_all.go index 36c4483..7f0e736 100644 --- a/handler/read_all.go +++ b/handler/read_all.go @@ -47,22 +47,27 @@ func (c *WebHandler) ReadAllWeb(ctx echo.Context) error { return echo.NewHTTPError(http.StatusBadRequest, "Bad page requested.") } if pageNumber < 0 { - return echo.NewHTTPError(http.StatusBadRequest, "Bad page requested.") + return echo.NewHTTPError(http.StatusBadRequest, "Page number cannot be negative.") } // Items per page + var perPageNumber int perPage := ctx.QueryParam("per_page") - perPageNumber, err := strconv.Atoi(perPage) - if err != nil { - config.LoggingProvider.Error(err.Error()) - return echo.NewHTTPError(http.StatusBadRequest, "Bad per page amount requested.") + // If we dont have an "items per page" parameter, we want to use the default. + // To prevent Atoi from failing, we check this here. + if perPage != "" { + 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 if perPageNumber == 0 { perPageNumber = config.MaxItemsPerPage } 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 { perPageNumber = config.MaxItemsPerPage