Skip to content

Commit 998022e

Browse files
committed
feat(settings): Add SetToken endpoint for updating token settings
- Introduced `SetToken` handler to allow manual token updates via API - Added `SetTokenReq` struct for request validation
1 parent b4d9beb commit 998022e

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

‎server/handles/setting.go‎

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,13 @@ func getRoleOptions() string {
2929
return strings.Join(names, ",")
3030
}
3131

32+
type SetTokenReq struct {
33+
Token string `json:"token" form:"token" binding:"required"`
34+
}
35+
3236
func ResetToken(c *gin.Context) {
3337
token := random.Token()
34-
item := model.SettingItem{Key: "token", Value: token, Type: conf.TypeString, Group: model.SINGLE, Flag: model.PRIVATE}
38+
item := model.SettingItem{Key: conf.Token, Value: token, Type: conf.TypeString, Group: model.SINGLE, Flag: model.PRIVATE}
3539
if err := op.SaveSettingItem(&item); err != nil {
3640
common.ErrorResp(c, err, 500)
3741
return
@@ -40,6 +44,21 @@ func ResetToken(c *gin.Context) {
4044
common.SuccessResp(c, token)
4145
}
4246

47+
func SetToken(c *gin.Context) {
48+
var req SetTokenReq
49+
if err := c.ShouldBind(&req); err != nil {
50+
common.ErrorResp(c, err, 400)
51+
return
52+
}
53+
item := model.SettingItem{Key: conf.Token, Value: req.Token, Type: conf.TypeString, Group: model.SINGLE, Flag: model.PRIVATE}
54+
if err := op.SaveSettingItem(&item); err != nil {
55+
common.ErrorResp(c, err, 500)
56+
return
57+
}
58+
sign.Instance()
59+
common.SuccessResp(c, req.Token)
60+
}
61+
4362
func GetSetting(c *gin.Context) {
4463
key := c.Query("key")
4564
keys := c.Query("keys")

‎server/router.go‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ func admin(g *gin.RouterGroup) {
154154
setting.POST("/save", handles.SaveSettings)
155155
setting.POST("/delete", handles.DeleteSetting)
156156
setting.POST("/reset_token", handles.ResetToken)
157+
setting.POST("/set_token", handles.SetToken)
157158
setting.POST("/set_aria2", handles.SetAria2)
158159
setting.POST("/set_qbit", handles.SetQbittorrent)
159160
setting.POST("/set_transmission", handles.SetTransmission)

0 commit comments

Comments
 (0)