Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alist-org
GitHub Repository: alist-org/alist
Path: blob/main/internal/db/settingitem.go
1560 views
1
package db
2
3
import (
4
"fmt"
5
6
"github.com/alist-org/alist/v3/internal/model"
7
"github.com/pkg/errors"
8
)
9
10
func GetSettingItems() ([]model.SettingItem, error) {
11
var settingItems []model.SettingItem
12
if err := db.Find(&settingItems).Error; err != nil {
13
return nil, errors.WithStack(err)
14
}
15
return settingItems, nil
16
}
17
18
func GetSettingItemByKey(key string) (*model.SettingItem, error) {
19
var settingItem model.SettingItem
20
if err := db.Where(fmt.Sprintf("%s = ?", columnName("key")), key).First(&settingItem).Error; err != nil {
21
return nil, errors.WithStack(err)
22
}
23
return &settingItem, nil
24
}
25
26
// func GetSettingItemInKeys(keys []string) ([]model.SettingItem, error) {
27
// var settingItem []model.SettingItem
28
// if err := db.Where(fmt.Sprintf("%s in ?", columnName("key")), keys).Find(&settingItem).Error; err != nil {
29
// return nil, errors.WithStack(err)
30
// }
31
// return settingItem, nil
32
// }
33
34
func GetPublicSettingItems() ([]model.SettingItem, error) {
35
var settingItems []model.SettingItem
36
if err := db.Where(fmt.Sprintf("%s in ?", columnName("flag")), []int{model.PUBLIC, model.READONLY}).Find(&settingItems).Error; err != nil {
37
return nil, errors.WithStack(err)
38
}
39
return settingItems, nil
40
}
41
42
func GetSettingItemsByGroup(group int) ([]model.SettingItem, error) {
43
var settingItems []model.SettingItem
44
if err := db.Where(fmt.Sprintf("%s = ?", columnName("group")), group).Find(&settingItems).Error; err != nil {
45
return nil, errors.WithStack(err)
46
}
47
return settingItems, nil
48
}
49
50
func GetSettingItemsInGroups(groups []int) ([]model.SettingItem, error) {
51
var settingItems []model.SettingItem
52
err := db.Order(columnName("index")).Where(fmt.Sprintf("%s in ?", columnName("group")), groups).Find(&settingItems).Error
53
if err != nil {
54
return nil, errors.WithStack(err)
55
}
56
return settingItems, nil
57
}
58
59
func SaveSettingItems(items []model.SettingItem) (err error) {
60
return errors.WithStack(db.Save(items).Error)
61
}
62
63
func SaveSettingItem(item *model.SettingItem) error {
64
return errors.WithStack(db.Save(item).Error)
65
}
66
67
func DeleteSettingItemByKey(key string) error {
68
return errors.WithStack(db.Delete(&model.SettingItem{Key: key}).Error)
69
}
70
71