Files
crawlab/core/controllers/stats.go
Marvin Zhang 931a36c8bf refactor: enhance parameter descriptions and standardize model fields
- Added descriptive annotations to various parameters across controllers to improve API documentation clarity.
- Standardized field definitions in models by including descriptions for better understanding of their purpose.
- Updated validation patterns for ID fields to ensure consistency and improve data integrity.
- Enhanced overall code readability and maintainability by aligning naming conventions and adding necessary comments.
2025-03-19 13:39:02 +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" description:"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" description:"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" description:"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))
}