fix: 过滤分组字段
This commit is contained in:
@@ -13,6 +13,7 @@ import (
|
|||||||
"regexp"
|
"regexp"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
"gpt-load/internal/channel"
|
"gpt-load/internal/channel"
|
||||||
|
|
||||||
@@ -207,7 +208,7 @@ func (s *Server) CreateGroup(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
response.Success(c, group)
|
response.Success(c, newGroupResponse(&group))
|
||||||
}
|
}
|
||||||
|
|
||||||
// ListGroups handles listing all groups.
|
// ListGroups handles listing all groups.
|
||||||
@@ -217,7 +218,13 @@ func (s *Server) ListGroups(c *gin.Context) {
|
|||||||
response.Error(c, app_errors.ParseDBError(err))
|
response.Error(c, app_errors.ParseDBError(err))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
response.Success(c, groups)
|
|
||||||
|
var groupResponses []GroupResponse
|
||||||
|
for _, group := range groups {
|
||||||
|
groupResponses = append(groupResponses, *newGroupResponse(&group))
|
||||||
|
}
|
||||||
|
|
||||||
|
response.Success(c, groupResponses)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GroupUpdateRequest defines the payload for updating a group.
|
// GroupUpdateRequest defines the payload for updating a group.
|
||||||
@@ -332,9 +339,46 @@ func (s *Server) UpdateGroup(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
response.Success(c, group)
|
response.Success(c, newGroupResponse(&group))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GroupResponse defines the structure for a group response, excluding sensitive or large fields.
|
||||||
|
type GroupResponse struct {
|
||||||
|
ID uint `json:"id"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
DisplayName string `json:"display_name"`
|
||||||
|
Description string `json:"description"`
|
||||||
|
Upstreams datatypes.JSON `json:"upstreams"`
|
||||||
|
ChannelType string `json:"channel_type"`
|
||||||
|
Sort int `json:"sort"`
|
||||||
|
TestModel string `json:"test_model"`
|
||||||
|
ParamOverrides datatypes.JSONMap `json:"param_overrides"`
|
||||||
|
Config datatypes.JSONMap `json:"config"`
|
||||||
|
LastValidatedAt *time.Time `json:"last_validated_at"`
|
||||||
|
CreatedAt time.Time `json:"created_at"`
|
||||||
|
UpdatedAt time.Time `json:"updated_at"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// newGroupResponse creates a new GroupResponse from a models.Group.
|
||||||
|
func newGroupResponse(group *models.Group) *GroupResponse {
|
||||||
|
return &GroupResponse{
|
||||||
|
ID: group.ID,
|
||||||
|
Name: group.Name,
|
||||||
|
DisplayName: group.DisplayName,
|
||||||
|
Description: group.Description,
|
||||||
|
Upstreams: group.Upstreams,
|
||||||
|
ChannelType: group.ChannelType,
|
||||||
|
Sort: group.Sort,
|
||||||
|
TestModel: group.TestModel,
|
||||||
|
ParamOverrides: group.ParamOverrides,
|
||||||
|
Config: group.Config,
|
||||||
|
LastValidatedAt: group.LastValidatedAt,
|
||||||
|
CreatedAt: group.CreatedAt,
|
||||||
|
UpdatedAt: group.UpdatedAt,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// DeleteGroup handles deleting a group.
|
// DeleteGroup handles deleting a group.
|
||||||
func (s *Server) DeleteGroup(c *gin.Context) {
|
func (s *Server) DeleteGroup(c *gin.Context) {
|
||||||
id, err := strconv.Atoi(c.Param("id"))
|
id, err := strconv.Atoi(c.Param("id"))
|
||||||
@@ -383,10 +427,10 @@ func (s *Server) DeleteGroup(c *gin.Context) {
|
|||||||
|
|
||||||
// ConfigOption represents a single configurable option for a group.
|
// ConfigOption represents a single configurable option for a group.
|
||||||
type ConfigOption struct {
|
type ConfigOption struct {
|
||||||
Key string `json:"key"`
|
Key string `json:"key"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Description string `json:"description"`
|
Description string `json:"description"`
|
||||||
DefaultValue any `json:"default_value"`
|
DefaultValue any `json:"default_value"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetGroupConfigOptions returns a list of available configuration options for groups.
|
// GetGroupConfigOptions returns a list of available configuration options for groups.
|
||||||
|
Reference in New Issue
Block a user