Changeset 0.8.3 (#46)
This commit is contained in:
@@ -648,14 +648,14 @@ type modelConfigResponse struct {
|
||||
ProviderName string `json:"provider_name"`
|
||||
ModelID string `json:"model_id"`
|
||||
DisplayName *string `json:"display_name"`
|
||||
IsEnabled bool `json:"is_enabled"`
|
||||
Visibility string `json:"visibility"`
|
||||
Capabilities map[string]interface{} `json:"capabilities"`
|
||||
CreatedAt string `json:"created_at"`
|
||||
UpdatedAt string `json:"updated_at"`
|
||||
}
|
||||
|
||||
type updateModelConfigRequest struct {
|
||||
IsEnabled *bool `json:"is_enabled"`
|
||||
Visibility *string `json:"visibility"`
|
||||
DisplayName *string `json:"display_name"`
|
||||
Capabilities map[string]interface{} `json:"capabilities"`
|
||||
}
|
||||
@@ -663,7 +663,7 @@ type updateModelConfigRequest struct {
|
||||
func (h *AdminHandler) ListModelConfigs(c *gin.Context) {
|
||||
rows, err := database.DB.Query(`
|
||||
SELECT mc.id, mc.api_config_id, ac.name, mc.model_id, mc.display_name,
|
||||
mc.is_enabled, mc.capabilities, mc.created_at, mc.updated_at
|
||||
mc.visibility, mc.capabilities, mc.created_at, mc.updated_at
|
||||
FROM model_configs mc
|
||||
JOIN api_configs ac ON mc.api_config_id = ac.id
|
||||
WHERE ac.user_id IS NULL
|
||||
@@ -681,7 +681,7 @@ func (h *AdminHandler) ListModelConfigs(c *gin.Context) {
|
||||
var capsJSON []byte
|
||||
if err := rows.Scan(
|
||||
&m.ID, &m.APIConfigID, &m.ProviderName, &m.ModelID, &m.DisplayName,
|
||||
&m.IsEnabled, &capsJSON, &m.CreatedAt, &m.UpdatedAt,
|
||||
&m.Visibility, &capsJSON, &m.CreatedAt, &m.UpdatedAt,
|
||||
); err != nil {
|
||||
continue
|
||||
}
|
||||
@@ -795,13 +795,18 @@ func (h *AdminHandler) UpdateModelConfig(c *gin.Context) {
|
||||
}
|
||||
|
||||
// Build dynamic update
|
||||
if req.IsEnabled != nil {
|
||||
if req.Visibility != nil {
|
||||
v := *req.Visibility
|
||||
if v != "enabled" && v != "disabled" && v != "team" {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": "visibility must be enabled, disabled, or team"})
|
||||
return
|
||||
}
|
||||
_, err := database.DB.Exec(
|
||||
`UPDATE model_configs SET is_enabled = $1, updated_at = NOW() WHERE id = $2`,
|
||||
*req.IsEnabled, modelID,
|
||||
`UPDATE model_configs SET visibility = $1, updated_at = NOW() WHERE id = $2`,
|
||||
v, modelID,
|
||||
)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": "failed to update enabled"})
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": "failed to update visibility"})
|
||||
return
|
||||
}
|
||||
}
|
||||
@@ -836,19 +841,24 @@ func (h *AdminHandler) UpdateModelConfig(c *gin.Context) {
|
||||
c.JSON(http.StatusOK, gin.H{"message": "model updated"})
|
||||
}
|
||||
|
||||
// BulkUpdateModels enables or disables all models at once
|
||||
// BulkUpdateModels sets visibility for all models at once
|
||||
func (h *AdminHandler) BulkUpdateModels(c *gin.Context) {
|
||||
var req struct {
|
||||
IsEnabled bool `json:"is_enabled"`
|
||||
Visibility string `json:"visibility"`
|
||||
}
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
if req.Visibility != "enabled" && req.Visibility != "disabled" && req.Visibility != "team" {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": "visibility must be enabled, disabled, or team"})
|
||||
return
|
||||
}
|
||||
|
||||
result, err := database.DB.Exec(
|
||||
`UPDATE model_configs SET is_enabled = $1, updated_at = NOW()`,
|
||||
req.IsEnabled,
|
||||
`UPDATE model_configs SET visibility = $1, updated_at = NOW()
|
||||
WHERE api_config_id IN (SELECT id FROM api_configs WHERE user_id IS NULL)`,
|
||||
req.Visibility,
|
||||
)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": "failed to bulk update models"})
|
||||
|
||||
Reference in New Issue
Block a user