feat: key status

This commit is contained in:
tbphp
2025-07-07 15:50:47 +08:00
parent 0f85381082
commit 3228cdad64
4 changed files with 11 additions and 6 deletions

View File

@@ -103,7 +103,7 @@ func (s *Server) Login(c *gin.Context) {
func (s *Server) Health(c *gin.Context) { func (s *Server) Health(c *gin.Context) {
var totalKeys, healthyKeys int64 var totalKeys, healthyKeys int64
s.DB.Model(&models.APIKey{}).Count(&totalKeys) s.DB.Model(&models.APIKey{}).Count(&totalKeys)
s.DB.Model(&models.APIKey{}).Where("status = ?", "active").Count(&healthyKeys) s.DB.Model(&models.APIKey{}).Where("status = ?", models.KeyStatusActive).Count(&healthyKeys)
status := "healthy" status := "healthy"
httpStatus := http.StatusOK httpStatus := http.StatusOK

View File

@@ -108,7 +108,7 @@ func (s *Server) ListKeysInGroup(c *gin.Context) {
} }
statusFilter := c.Query("status") statusFilter := c.Query("status")
if statusFilter != "" && statusFilter != "active" && statusFilter != "inactive" { if statusFilter != "" && statusFilter != models.KeyStatusActive && statusFilter != models.KeyStatusInvalid {
response.Error(c, app_errors.NewAPIError(app_errors.ErrValidation, "Invalid status filter")) response.Error(c, app_errors.NewAPIError(app_errors.ErrValidation, "Invalid status filter"))
return return
} }
@@ -254,4 +254,3 @@ func (s *Server) ClearAllInvalidKeys(c *gin.Context) {
response.Success(c, gin.H{"message": fmt.Sprintf("%d invalid keys cleared.", rowsAffected)}) response.Success(c, gin.H{"message": fmt.Sprintf("%d invalid keys cleared.", rowsAffected)})
} }

View File

@@ -6,6 +6,12 @@ import (
"gorm.io/datatypes" "gorm.io/datatypes"
) )
// Key状态
const (
KeyStatusActive = "active"
KeyStatusInvalid = "invalid"
)
// SystemSetting 对应 system_settings 表 // SystemSetting 对应 system_settings 表
type SystemSetting struct { type SystemSetting struct {
ID uint `gorm:"primaryKey;autoIncrement" json:"id"` ID uint `gorm:"primaryKey;autoIncrement" json:"id"`

View File

@@ -172,14 +172,14 @@ func (s *KeyCronService) processResults() {
var newErrorReason string var newErrorReason string
if result.Error != nil { if result.Error != nil {
newStatus = "inactive" newStatus = models.KeyStatusInvalid
newErrorReason = result.Error.Error() newErrorReason = result.Error.Error()
} else { } else {
if result.IsValid { if result.IsValid {
newStatus = "active" newStatus = models.KeyStatusActive
newErrorReason = "" newErrorReason = ""
} else { } else {
newStatus = "inactive" newStatus = models.KeyStatusInvalid
newErrorReason = "Validation returned false without a specific error." newErrorReason = "Validation returned false without a specific error."
} }
} }