mirror of
https://github.com/OpenListTeam/OpenList.git
synced 2025-09-19 04:06:18 +08:00
feat: default settings api (#716)
* feat: default settings api * fix logic bug * chore
This commit is contained in:
@ -73,7 +73,7 @@ func attachHeader(w http.ResponseWriter, file model.Obj, header http.Header) {
|
||||
func GetEtag(file model.Obj) string {
|
||||
hash := ""
|
||||
for _, v := range file.GetHash().Export() {
|
||||
if strings.Compare(v, hash) > 0 {
|
||||
if v > hash {
|
||||
hash = v
|
||||
}
|
||||
}
|
||||
|
@ -1,9 +1,11 @@
|
||||
package handles
|
||||
|
||||
import (
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/OpenListTeam/OpenList/v4/internal/bootstrap/data"
|
||||
"github.com/OpenListTeam/OpenList/v4/internal/conf"
|
||||
"github.com/OpenListTeam/OpenList/v4/internal/model"
|
||||
"github.com/OpenListTeam/OpenList/v4/internal/op"
|
||||
@ -91,6 +93,46 @@ func ListSettings(c *gin.Context) {
|
||||
common.SuccessResp(c, settings)
|
||||
}
|
||||
|
||||
func DefaultSettings(c *gin.Context) {
|
||||
groupStr := c.Query("group")
|
||||
groupsStr := c.Query("groups")
|
||||
settings := data.InitialSettings()
|
||||
if groupsStr == "" && groupStr == "" {
|
||||
for i := range settings {
|
||||
(&settings[i]).Index = uint(i)
|
||||
}
|
||||
common.SuccessResp(c, settings)
|
||||
} else {
|
||||
var groupStrings []string
|
||||
if groupsStr != "" {
|
||||
groupStrings = strings.Split(groupsStr, ",")
|
||||
} else {
|
||||
groupStrings = append(groupStrings, groupStr)
|
||||
}
|
||||
var groups []int
|
||||
for _, str := range groupStrings {
|
||||
group, err := strconv.Atoi(str)
|
||||
if err != nil {
|
||||
common.ErrorResp(c, err, 400)
|
||||
return
|
||||
}
|
||||
groups = append(groups, group)
|
||||
}
|
||||
sort.Ints(groups)
|
||||
var resultItems []model.SettingItem
|
||||
for _, group := range groups {
|
||||
for i := range settings {
|
||||
item := settings[i]
|
||||
if group == item.Group {
|
||||
item.Index = uint(i)
|
||||
resultItems = append(resultItems, item)
|
||||
}
|
||||
}
|
||||
}
|
||||
common.SuccessResp(c, resultItems)
|
||||
}
|
||||
}
|
||||
|
||||
func DeleteSetting(c *gin.Context) {
|
||||
key := c.Query("key")
|
||||
if err := op.DeleteSettingItemByKey(key); err != nil {
|
||||
|
@ -140,6 +140,7 @@ func admin(g *gin.RouterGroup) {
|
||||
setting.GET("/list", handles.ListSettings)
|
||||
setting.POST("/save", handles.SaveSettings)
|
||||
setting.POST("/delete", handles.DeleteSetting)
|
||||
setting.POST("/default", handles.DefaultSettings)
|
||||
setting.POST("/reset_token", handles.ResetToken)
|
||||
setting.POST("/set_aria2", handles.SetAria2)
|
||||
setting.POST("/set_qbit", handles.SetQbittorrent)
|
||||
|
Reference in New Issue
Block a user