浏览代码

fix: empty value update issue in settings

0xJacky 2 年之前
父节点
当前提交
bc6a25cd1f
共有 1 个文件被更改,包括 32 次插入39 次删除
  1. 32 39
      server/api/settings.go

+ 32 - 39
server/api/settings.go

@@ -1,49 +1,42 @@
 package api
 
 import (
-    "github.com/0xJacky/Nginx-UI/server/settings"
-    "github.com/gin-gonic/gin"
-    "net/http"
+	"github.com/0xJacky/Nginx-UI/server/settings"
+	"github.com/gin-gonic/gin"
+	"net/http"
 )
 
 func GetSettings(c *gin.Context) {
-    c.JSON(http.StatusOK, gin.H{
-        "server":    settings.ServerSettings,
-        "nginx_log": settings.NginxLogSettings,
-        "openai":    settings.OpenAISettings,
-        "git":       settings.GitSettings,
-    })
+	c.JSON(http.StatusOK, gin.H{
+		"server":    settings.ServerSettings,
+		"nginx_log": settings.NginxLogSettings,
+		"openai":    settings.OpenAISettings,
+		"git":       settings.GitSettings,
+	})
 }
 
 func SaveSettings(c *gin.Context) {
-    var json struct {
-        Server   settings.Server   `json:"server"`
-        NginxLog settings.NginxLog `json:"nginx_log"`
-        Openai   settings.OpenAI   `json:"openai"`
-    }
-
-    if !BindAndValid(c, &json) {
-        return
-    }
-
-    settings.Conf.Section("server").Key("Email").SetValue(json.Server.Email)
-    settings.Conf.Section("server").Key("HTTPChallengePort").SetValue(json.Server.HTTPChallengePort)
-    settings.Conf.Section("server").Key("GithubProxy").SetValue(json.Server.GithubProxy)
-    settings.Conf.Section("server").Key("CADir").SetValue(json.Server.CADir)
-
-    settings.Conf.Section("nginx_log").Key("AccessLogPath").SetValue(json.NginxLog.AccessLogPath)
-    settings.Conf.Section("nginx_log").Key("ErrorLogPath").SetValue(json.NginxLog.ErrorLogPath)
-
-    settings.Conf.Section("openai").Key("Model").SetValue(json.Openai.Model)
-    settings.Conf.Section("openai").Key("BaseUrl").SetValue(json.Openai.BaseUrl)
-    settings.Conf.Section("openai").Key("Proxy").SetValue(json.Openai.Proxy)
-    settings.Conf.Section("openai").Key("Token").SetValue(json.Openai.Token)
-
-    err := settings.Save()
-    if err != nil {
-        ErrHandler(c, err)
-        return
-    }
-
-    GetSettings(c)
+	var json struct {
+		Server   settings.Server   `json:"server"`
+		NginxLog settings.NginxLog `json:"nginx_log"`
+		Openai   settings.OpenAI   `json:"openai"`
+	}
+
+	if !BindAndValid(c, &json) {
+		return
+	}
+
+	settings.ServerSettings = &json.Server
+	settings.NginxLogSettings = &json.NginxLog
+	settings.OpenAISettings = &json.Openai
+
+	settings.ReflectFrom()
+
+	err := settings.Save()
+	if err != nil {
+		ErrHandler(c, err)
+		return
+	}
+
+	GetSettings(c)
 }