| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | 
							- package v1
 
- import (
 
- 	"github.com/allanpk716/ChineseSubFinder/internal/pkg/settings"
 
- 	"github.com/allanpk716/ChineseSubFinder/internal/types/backend"
 
- 	"github.com/gin-gonic/gin"
 
- 	"net/http"
 
- )
 
- func (cb ControllerBase) SettingsHandler(c *gin.Context) {
 
- 	var err error
 
- 	defer func() {
 
- 		// 统一的异常处理
 
- 		cb.ErrorProcess(c, "SettingsHandler", err)
 
- 	}()
 
- 	switch c.Request.Method {
 
- 	case "GET":
 
- 		{
 
- 			// 回复没有密码的 settings
 
- 			c.JSON(http.StatusOK, settings.GetSettings().GetNoPasswordSettings())
 
- 		}
 
- 	case "PUT":
 
- 		{
 
- 			// 修改设置,这里不允许修改密码
 
- 			reqSetupInfo := settings.Settings{}
 
- 			err = c.ShouldBindJSON(&reqSetupInfo)
 
- 			if err != nil {
 
- 				return
 
- 			}
 
- 			// 需要去除 user 的 password 信息再保存,也就是继承之前的 password 即可
 
- 			err = settings.GetSettings().Read()
 
- 			if err != nil {
 
- 				return
 
- 			}
 
- 			nowPassword := settings.GetSettings().UserInfo.Password
 
- 			reqSetupInfo.UserInfo.Password = nowPassword
 
- 			err = settings.SetFullNewSettings(&reqSetupInfo)
 
- 			if err != nil {
 
- 				return
 
- 			}
 
- 			err = settings.GetSettings().Save()
 
- 			if err != nil {
 
- 				return
 
- 			}
 
- 			c.JSON(http.StatusOK, backend.ReplyCommon{Message: "Settings Save Success"})
 
- 		}
 
- 	default:
 
- 		c.JSON(http.StatusNoContent, backend.ReplyCommon{Message: "Settings Request.Method Error"})
 
- 	}
 
- }
 
 
  |