Files
crawlab/core/controllers/stats.go
Marvin Zhang 23cad00d92 refactor: streamline controller methods and enhance parameter handling
- Refactored multiple controller methods to accept structured parameters for improved clarity and maintainability.
- Consolidated error handling and response generation across various endpoints.
- Updated function signatures to eliminate unnecessary context parameters and enhance type safety.
- Improved consistency in response formatting and error handling across controllers.
- Enhanced file handling methods to support multipart file uploads and directory operations more effectively.
2025-03-13 17:37:30 +08:00

67 lines
1.5 KiB
Go

package controllers
import (
"time"
"github.com/crawlab-team/crawlab/core/stats"
"github.com/gin-gonic/gin"
"go.mongodb.org/mongo-driver/bson"
)
var statsDefaultQuery = bson.M{
"created_ts": bson.M{
"$gte": time.Now().Add(-30 * 24 * time.Hour),
},
}
type GetStatsOverviewParams struct {
Query bson.M `json:"query"`
}
func GetStatsOverview(_ *gin.Context, params *GetStatsOverviewParams) (response *Response[bson.M], err error) {
query := statsDefaultQuery
if params.Query != nil {
query = params.Query
}
data, err := stats.GetStatsService().GetOverviewStats(query)
if err != nil {
return GetErrorResponse[bson.M](err)
}
return GetDataResponse(data.(bson.M))
}
type GetStatsDailyParams struct {
Query bson.M `json:"query"`
}
func GetStatsDaily(_ *gin.Context, params *GetStatsDailyParams) (response *Response[bson.M], err error) {
query := statsDefaultQuery
if params.Query != nil {
query = params.Query
}
data, err := stats.GetStatsService().GetDailyStats(query)
if err != nil {
return GetErrorResponse[bson.M](err)
}
return GetDataResponse(data.(bson.M))
}
type GetStatsTasksParams struct {
Query bson.M `json:"query"`
}
func GetStatsTasks(_ *gin.Context, params *GetStatsTasksParams) (response *Response[bson.M], err error) {
query := statsDefaultQuery
if params.Query != nil {
query = params.Query
}
data, err := stats.GetStatsService().GetTaskStats(query)
if err != nil {
return GetErrorResponse[bson.M](err)
}
return GetDataResponse(data.(bson.M))
}