41 lines
935 B
Go
41 lines
935 B
Go
// Filename: internal/handlers/log_handler.go
|
|
package handlers
|
|
|
|
import (
|
|
"gemini-balancer/internal/errors"
|
|
"gemini-balancer/internal/response"
|
|
"gemini-balancer/internal/service"
|
|
"strconv"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
type LogHandler struct {
|
|
logService *service.LogService
|
|
}
|
|
|
|
func NewLogHandler(logService *service.LogService) *LogHandler {
|
|
return &LogHandler{logService: logService}
|
|
}
|
|
|
|
func (h *LogHandler) GetLogs(c *gin.Context) {
|
|
// 调用新的服务函数,接收日志列表和总数
|
|
logs, total, err := h.logService.GetLogs(c)
|
|
if err != nil {
|
|
response.Error(c, errors.ErrDatabase)
|
|
return
|
|
}
|
|
|
|
// 解析分页参数用于响应体
|
|
page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
|
|
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", "20"))
|
|
|
|
// 使用标准的分页响应结构
|
|
response.Success(c, gin.H{
|
|
"items": logs,
|
|
"total": total,
|
|
"page": page,
|
|
"page_size": pageSize,
|
|
})
|
|
}
|