Files
Message-Push-Nest/routers/api/v1/user_settings.go
T

104 lines
2.5 KiB
Go
Raw Normal View History

2023-12-30 17:40:20 +08:00
package v1
import (
"fmt"
"github.com/gin-gonic/gin"
"message-nest/pkg/app"
"message-nest/pkg/e"
"message-nest/service/settings_service"
"net/http"
)
2023-12-31 21:31:56 +08:00
type GetSettingReq struct {
Section string `json:"section" validate:"required,max=50" label:"节点"`
}
// GetUserSetting 用户重设密码
func GetUserSetting(c *gin.Context) {
var (
appG = app.Gin{C: c}
)
section := c.Query("section")
settingService := settings_service.UserSettings{}
settings, err := settingService.GetUserSetting(section)
if err != nil {
appG.CResponse(http.StatusBadRequest, fmt.Sprintf("获取失败!错误原因:%s", err), nil)
return
}
appG.CResponse(http.StatusOK, "获取成功!", settings)
}
// EditUserPasswdReq 编辑设置请求
type EditUserPasswdReq struct {
2023-12-30 17:40:20 +08:00
OldPassword string `json:"old_passwd" validate:"required,max=50" label:"旧密码"`
NewPassword string `json:"new_passwd" validate:"required,max=50" label:"新密码"`
}
// EditPasswd 用户重设密码
func EditPasswd(c *gin.Context) {
var (
appG = app.Gin{C: c}
2023-12-31 21:31:56 +08:00
req EditUserPasswdReq
2023-12-30 17:40:20 +08:00
)
currentUser := app.GetCurrentUserName(c)
errCode, errStr := app.BindJsonAndPlayValid(c, &req)
if errCode != e.SUCCESS {
appG.CResponse(errCode, errStr, nil)
return
}
2023-12-31 21:31:56 +08:00
settingService := settings_service.UserSettings{
2023-12-30 17:40:20 +08:00
UserName: currentUser,
OldPassword: req.OldPassword,
NewPassword: req.NewPassword,
}
2023-12-31 21:31:56 +08:00
err := settingService.EditUserPasswd()
2023-12-30 17:40:20 +08:00
if err != nil {
appG.CResponse(http.StatusBadRequest, fmt.Sprintf("修改密码失败!错误原因:%s", err), nil)
return
}
appG.CResponse(http.StatusOK, "修改成功!", nil)
}
2023-12-31 21:31:56 +08:00
type SettingReq struct {
Section string `json:"section" validate:"required,max=50" label:"一级分类"`
Data map[string]string
}
// EditSettings 编辑设置
func EditSettings(c *gin.Context) {
var (
appG = app.Gin{C: c}
req SettingReq
)
errCode, errStr := app.BindJsonAndPlayValid(c, &req)
if errCode != e.SUCCESS {
appG.CResponse(errCode, errStr, nil)
return
}
currentUser := app.GetCurrentUserName(c)
settingService := settings_service.UserSettings{}
diffStr := settingService.ValidateDiffSetting(req.Section, req.Data)
if diffStr != "" {
appG.CResponse(http.StatusBadRequest, diffStr, nil)
return
}
for key, value := range req.Data {
err := settingService.EditSettings(req.Section, key, value, currentUser)
if err != nil {
appG.CResponse(http.StatusBadRequest, fmt.Sprintf("修改密码失败!错误原因:%s", err), nil)
return
}
}
appG.CResponse(http.StatusOK, "修改成功!", nil)
}