refactor: 使用 pagination.ClampPageSize 简化 handler 分页代码

- device/log/webhook handler: 替换 if/else 分页限制为 ClampPageSize
- 统一添加 page < 1 检查(device/log handler 缺失)
This commit is contained in:
2026-05-08 12:45:56 +08:00
parent 2ecd1fef1e
commit b3374dccf4
3 changed files with 18 additions and 16 deletions

View File

@@ -89,10 +89,11 @@ func (h *DeviceHandler) GetMyDevices(c *gin.Context) {
} }
page, _ := strconv.Atoi(c.DefaultQuery("page", "1")) page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", strconv.Itoa(pagination.DefaultPageSize))) if page < 1 {
if pageSize < 1 || pageSize > pagination.MaxPageSize { page = 1
pageSize = pagination.DefaultPageSize
} }
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", strconv.Itoa(pagination.DefaultPageSize)))
pageSize = pagination.ClampPageSize(pageSize)
devices, total, err := h.deviceService.GetUserDevices(c.Request.Context(), userID, page, pageSize) devices, total, err := h.deviceService.GetUserDevices(c.Request.Context(), userID, page, pageSize)
if err != nil { if err != nil {
@@ -317,10 +318,11 @@ func (h *DeviceHandler) GetUserDevices(c *gin.Context) {
} }
page, _ := strconv.Atoi(c.DefaultQuery("page", "1")) page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", strconv.Itoa(pagination.DefaultPageSize))) if page < 1 {
if pageSize < 1 || pageSize > pagination.MaxPageSize { page = 1
pageSize = pagination.DefaultPageSize
} }
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", strconv.Itoa(pagination.DefaultPageSize)))
pageSize = pagination.ClampPageSize(pageSize)
devices, total, err := h.deviceService.GetUserDevices(c.Request.Context(), userID, page, pageSize) devices, total, err := h.deviceService.GetUserDevices(c.Request.Context(), userID, page, pageSize)
if err != nil { if err != nil {

View File

@@ -44,10 +44,11 @@ func (h *LogHandler) GetMyLoginLogs(c *gin.Context) {
} }
page, _ := strconv.Atoi(c.DefaultQuery("page", "1")) page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", strconv.Itoa(pagination.DefaultPageSize))) if page < 1 {
if pageSize < 1 || pageSize > pagination.MaxPageSize { page = 1
pageSize = pagination.DefaultPageSize
} }
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", strconv.Itoa(pagination.DefaultPageSize)))
pageSize = pagination.ClampPageSize(pageSize)
logs, total, err := h.loginLogService.GetMyLoginLogs(c.Request.Context(), userID, page, pageSize) logs, total, err := h.loginLogService.GetMyLoginLogs(c.Request.Context(), userID, page, pageSize)
if err != nil { if err != nil {
@@ -86,10 +87,11 @@ func (h *LogHandler) GetMyOperationLogs(c *gin.Context) {
} }
page, _ := strconv.Atoi(c.DefaultQuery("page", "1")) page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", strconv.Itoa(pagination.DefaultPageSize))) if page < 1 {
if pageSize < 1 || pageSize > pagination.MaxPageSize { page = 1
pageSize = pagination.DefaultPageSize
} }
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", strconv.Itoa(pagination.DefaultPageSize)))
pageSize = pagination.ClampPageSize(pageSize)
logs, total, err := h.operationLogService.GetMyOperationLogs(c.Request.Context(), userID, page, pageSize) logs, total, err := h.operationLogService.GetMyOperationLogs(c.Request.Context(), userID, page, pageSize)
if err != nil { if err != nil {

View File

@@ -67,13 +67,11 @@ func (h *WebhookHandler) CreateWebhook(c *gin.Context) {
// @Router /api/v1/webhooks [get] // @Router /api/v1/webhooks [get]
func (h *WebhookHandler) ListWebhooks(c *gin.Context) { func (h *WebhookHandler) ListWebhooks(c *gin.Context) {
page, _ := strconv.Atoi(c.DefaultQuery("page", "1")) page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", strconv.Itoa(pagination.DefaultPageSize)))
if page < 1 { if page < 1 {
page = 1 page = 1
} }
if pageSize < 1 || pageSize > pagination.MaxPageSize { pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", strconv.Itoa(pagination.DefaultPageSize)))
pageSize = pagination.DefaultPageSize pageSize = pagination.ClampPageSize(pageSize)
}
offset := (page - 1) * pageSize offset := (page - 1) * pageSize
userID, _ := c.Get("user_id") userID, _ := c.Get("user_id")