Files
WeKnora/internal/handler/system.go
2025-09-17 16:02:08 +08:00

50 lines
1.1 KiB
Go

package handler
import (
"github.com/Tencent/WeKnora/internal/logger"
"github.com/gin-gonic/gin"
)
// SystemHandler handles system-related requests
type SystemHandler struct{}
// NewSystemHandler creates a new system handler
func NewSystemHandler() *SystemHandler {
return &SystemHandler{}
}
// GetSystemInfoResponse defines the response structure for system info
type GetSystemInfoResponse struct {
Version string `json:"version"`
CommitID string `json:"commit_id,omitempty"`
BuildTime string `json:"build_time,omitempty"`
GoVersion string `json:"go_version,omitempty"`
}
// 编译时注入的版本信息
var (
Version = "unknown"
CommitID = "unknown"
BuildTime = "unknown"
GoVersion = "unknown"
)
// GetSystemInfo gets system information including version and commit ID
func (h *SystemHandler) GetSystemInfo(c *gin.Context) {
ctx := logger.CloneContext(c.Request.Context())
response := GetSystemInfoResponse{
Version: Version,
CommitID: CommitID,
BuildTime: BuildTime,
GoVersion: GoVersion,
}
logger.Info(ctx, "System info retrieved successfully")
c.JSON(200, gin.H{
"code": 0,
"msg": "success",
"data": response,
})
}