Files
infinite-canvas/handler/settings.go
T
HouYunFei db5d114428 feat(admin): 新增管理后台模型渠道配置功能
- 实现了管理后台模型渠道的增删改查功能
- 将前端直接调用API改为通过后端接口代理获取模型列表
- 添加了渠道测试连接和模型可用性检测功能
- 实现了API Key安全存储机制,前端不再明文显示
- 更新了管理后台设置页面的渠道配置界面
- 添加了表格选中行背景色主题配置支持
- 重构了错误处理机制,统一返回安全错误信息
- 整理了后端模型代理路径为OpenAI风格的/api/v1/*
2026-05-22 15:29:31 +08:00

67 lines
1.5 KiB
Go

package handler
import (
"encoding/json"
"net/http"
"github.com/basketikun/infinite-canvas/model"
"github.com/basketikun/infinite-canvas/service"
)
type adminChannelActionRequest struct {
Index *int `json:"index"`
Channel model.ModelChannel `json:"channel"`
Model string `json:"model"`
}
func Settings(w http.ResponseWriter, r *http.Request) {
settings, err := service.PublicSettings()
if err != nil {
FailError(w, err)
return
}
OK(w, settings)
}
func AdminSettings(w http.ResponseWriter, r *http.Request) {
settings, err := service.AdminSettings()
if err != nil {
FailError(w, err)
return
}
OK(w, settings)
}
func AdminSaveSettings(w http.ResponseWriter, r *http.Request) {
var settings model.Settings
_ = json.NewDecoder(r.Body).Decode(&settings)
result, err := service.SaveSettings(settings)
if err != nil {
FailError(w, err)
return
}
OK(w, result)
}
func AdminChannelModels(w http.ResponseWriter, r *http.Request) {
var request adminChannelActionRequest
_ = json.NewDecoder(r.Body).Decode(&request)
models, err := service.AdminChannelModels(request.Index, request.Channel)
if err != nil {
FailError(w, err)
return
}
OK(w, models)
}
func AdminTestChannelModel(w http.ResponseWriter, r *http.Request) {
var request adminChannelActionRequest
_ = json.NewDecoder(r.Body).Decode(&request)
result, err := service.AdminTestChannelModel(request.Index, request.Channel, request.Model)
if err != nil {
FailError(w, err)
return
}
OK(w, result)
}