cf085770e7
- 新增 settings 表用于存储 public/private 两行 JSON 配置 - 添加 AdminSettings 相关类型定义和 API 接口 - 实现管理后台系统设置页面,支持可视化和 JSON 编辑模式 - 集成 CodeMirror 编辑器用于 JSON 配置编辑 - 添加系统设置相关的路由和接口 - 更新依赖包并修改相关样式和布局文件
46 lines
1.2 KiB
Go
46 lines
1.2 KiB
Go
package service
|
|
|
|
import (
|
|
"github.com/basketikun/infinite-canvas/model"
|
|
"github.com/basketikun/infinite-canvas/repository"
|
|
)
|
|
|
|
func PublicSettings() (model.PublicSetting, error) {
|
|
settings, err := repository.GetSettings()
|
|
return normalizePublicSetting(settings.Public), err
|
|
}
|
|
|
|
func AdminSettings() (model.Settings, error) {
|
|
settings, err := repository.GetSettings()
|
|
return normalizeSettings(settings), err
|
|
}
|
|
|
|
func SaveSettings(settings model.Settings) (model.Settings, error) {
|
|
return repository.SaveSettings(normalizeSettings(settings), now())
|
|
}
|
|
|
|
func normalizeSettings(settings model.Settings) model.Settings {
|
|
settings.Public = normalizePublicSetting(settings.Public)
|
|
settings.Private = normalizePrivateSetting(settings.Private)
|
|
return settings
|
|
}
|
|
|
|
func normalizePublicSetting(setting model.PublicSetting) model.PublicSetting {
|
|
if setting.AvailableModels == nil {
|
|
setting.AvailableModels = []string{}
|
|
}
|
|
return setting
|
|
}
|
|
|
|
func normalizePrivateSetting(setting model.PrivateSetting) model.PrivateSetting {
|
|
if setting.Channels == nil {
|
|
setting.Channels = []model.ModelChannel{}
|
|
}
|
|
for i := range setting.Channels {
|
|
if setting.Channels[i].Models == nil {
|
|
setting.Channels[i].Models = []string{}
|
|
}
|
|
}
|
|
return setting
|
|
}
|