mirror of https://github.com/Xhofe/alist
				
				
				
			
		
			
				
	
	
		
			106 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Go
		
	
	
| package handles
 | |
| 
 | |
| import (
 | |
| 	"strconv"
 | |
| 	"strings"
 | |
| 
 | |
| 	"github.com/alist-org/alist/v3/internal/conf"
 | |
| 	"github.com/alist-org/alist/v3/internal/model"
 | |
| 	"github.com/alist-org/alist/v3/internal/op"
 | |
| 	"github.com/alist-org/alist/v3/internal/sign"
 | |
| 	"github.com/alist-org/alist/v3/pkg/utils/random"
 | |
| 	"github.com/alist-org/alist/v3/server/common"
 | |
| 	"github.com/alist-org/alist/v3/server/static"
 | |
| 	"github.com/gin-gonic/gin"
 | |
| )
 | |
| 
 | |
| func ResetToken(c *gin.Context) {
 | |
| 	token := random.Token()
 | |
| 	item := model.SettingItem{Key: "token", Value: token, Type: conf.TypeString, Group: model.SINGLE, Flag: model.PRIVATE}
 | |
| 	if err := op.SaveSettingItem(&item); err != nil {
 | |
| 		common.ErrorResp(c, err, 500)
 | |
| 		return
 | |
| 	}
 | |
| 	sign.Instance()
 | |
| 	common.SuccessResp(c, token)
 | |
| }
 | |
| 
 | |
| func GetSetting(c *gin.Context) {
 | |
| 	key := c.Query("key")
 | |
| 	keys := c.Query("keys")
 | |
| 	if key != "" {
 | |
| 		item, err := op.GetSettingItemByKey(key)
 | |
| 		if err != nil {
 | |
| 			common.ErrorResp(c, err, 400)
 | |
| 			return
 | |
| 		}
 | |
| 		common.SuccessResp(c, item)
 | |
| 	} else {
 | |
| 		items, err := op.GetSettingItemInKeys(strings.Split(keys, ","))
 | |
| 		if err != nil {
 | |
| 			common.ErrorResp(c, err, 400)
 | |
| 			return
 | |
| 		}
 | |
| 		common.SuccessResp(c, items)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func SaveSettings(c *gin.Context) {
 | |
| 	var req []model.SettingItem
 | |
| 	if err := c.ShouldBind(&req); err != nil {
 | |
| 		common.ErrorResp(c, err, 400)
 | |
| 		return
 | |
| 	}
 | |
| 	if err := op.SaveSettingItems(req); err != nil {
 | |
| 		common.ErrorResp(c, err, 500)
 | |
| 	} else {
 | |
| 		common.SuccessResp(c)
 | |
| 		static.UpdateIndex()
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func ListSettings(c *gin.Context) {
 | |
| 	groupStr := c.Query("group")
 | |
| 	groupsStr := c.Query("groups")
 | |
| 	var settings []model.SettingItem
 | |
| 	var err error
 | |
| 	if groupsStr == "" && groupStr == "" {
 | |
| 		settings, err = op.GetSettingItems()
 | |
| 	} 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)
 | |
| 		}
 | |
| 		settings, err = op.GetSettingItemsInGroups(groups)
 | |
| 	}
 | |
| 	if err != nil {
 | |
| 		common.ErrorResp(c, err, 400)
 | |
| 		return
 | |
| 	}
 | |
| 	common.SuccessResp(c, settings)
 | |
| }
 | |
| 
 | |
| func DeleteSetting(c *gin.Context) {
 | |
| 	key := c.Query("key")
 | |
| 	if err := op.DeleteSettingItemByKey(key); err != nil {
 | |
| 		common.ErrorResp(c, err, 500)
 | |
| 		return
 | |
| 	}
 | |
| 	common.SuccessResp(c)
 | |
| }
 | |
| 
 | |
| func PublicSettings(c *gin.Context) {
 | |
| 	common.SuccessResp(c, op.GetPublicSettingsMap())
 | |
| }
 |