- go.mod module path matches repo zkcoi/Meshray-Manager (case-distinct from zkcoi/Meshray/core)
- rewrite internal imports meshray/{internal,web,pkg} -> Meshray-Manager/... (core refs kept)
- sync README.md / install.sh repo URLs; add CHANGELOG entry
66 lines
1.5 KiB
Go
66 lines
1.5 KiB
Go
package handler
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"git.zkcoi.com/zkcoi/Meshray-Manager/internal/service"
|
|
"github.com/gin-gonic/gin"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
// SettingsHandler 系统设置 Handler
|
|
type SettingsHandler struct {
|
|
logger *zap.Logger
|
|
settingsService *service.SettingsService
|
|
}
|
|
|
|
// NewSettingsHandler 创建系统设置 Handler
|
|
func NewSettingsHandler(settingsService *service.SettingsService, logger *zap.Logger) *SettingsHandler {
|
|
return &SettingsHandler{
|
|
logger: logger,
|
|
settingsService: settingsService,
|
|
}
|
|
}
|
|
|
|
// GetSettings 获取系统设置
|
|
func (h *SettingsHandler) GetSettings(c *gin.Context) {
|
|
setting, err := h.settingsService.GetSettings()
|
|
if err != nil {
|
|
h.logger.Error("获取系统设置失败", zap.Error(err))
|
|
c.JSON(http.StatusInternalServerError, gin.H{
|
|
"error": "获取设置失败",
|
|
})
|
|
return
|
|
}
|
|
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"data": setting,
|
|
})
|
|
}
|
|
|
|
// UpdateSettings 更新系统设置
|
|
func (h *SettingsHandler) UpdateSettings(c *gin.Context) {
|
|
var updates map[string]interface{}
|
|
if err := c.ShouldBindJSON(&updates); err != nil {
|
|
c.JSON(http.StatusBadRequest, gin.H{
|
|
"error": "参数错误",
|
|
})
|
|
return
|
|
}
|
|
|
|
updatedSetting, err := h.settingsService.UpdateSettings(updates)
|
|
if err != nil {
|
|
h.logger.Error("更新系统设置失败", zap.Error(err))
|
|
c.JSON(http.StatusInternalServerError, gin.H{
|
|
"error": "更新失败",
|
|
})
|
|
return
|
|
}
|
|
|
|
h.logger.Info("系统设置已更新", zap.Any("updates", updates))
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"message": "设置已保存",
|
|
"data": updatedSetting,
|
|
})
|
|
}
|