MCPcopy Create free account
hub / github.com/OpenListTeam/OpenList / initSettings

Function initSettings

internal/bootstrap/data/setting.go:20–94  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

18)
19
20func initSettings() {
21 initialSettingItems := InitialSettings()
22 isActive := func(key string) bool {
23 for _, item := range initialSettingItems {
24 if item.Key == key {
25 return true
26 }
27 }
28 return false
29 }
30 // check deprecated
31 settings, err := op.GetSettingItems()
32 if err != nil {
33 utils.Log.Fatalf("failed get settings: %+v", err)
34 }
35 settingMap := map[string]*model.SettingItem{}
36 for _, v := range settings {
37 if v.Key == "" {
38 err := db.DeleteSettingItemByKey(v.Key)
39 if err != nil {
40 utils.Log.Errorf("failed delete setting with empty key: %+v", err)
41 }
42 continue
43 }
44 if !isActive(v.Key) && v.Flag != model.DEPRECATED {
45 v.Flag = model.DEPRECATED
46 err = op.SaveSettingItem(&v)
47 if err != nil {
48 utils.Log.Fatalf("failed save setting: %+v", err)
49 }
50 }
51 settingMap[v.Key] = &v
52 }
53 op.MigrationSettingItems = map[string]op.MigrationValueItem{}
54 // create or save setting
55 var saveItems []model.SettingItem
56 for i := range initialSettingItems {
57 item := &initialSettingItems[i]
58 item.Index = uint(i)
59 migrationValue := item.MigrationValue
60 if len(migrationValue) > 0 {
61 op.MigrationSettingItems[item.Key] = op.MigrationValueItem{MigrationValue: item.MigrationValue, Value: item.Value}
62 item.MigrationValue = ""
63 }
64 // err
65 stored, ok := settingMap[item.Key]
66 if !ok {
67 stored, err = op.GetSettingItemByKey(item.Key)
68 if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
69 utils.Log.Fatalf("failed get setting: %+v", err)
70 continue
71 }
72 }
73 if item.Key != conf.VERSION && stored != nil &&
74 (len(migrationValue) == 0 || stored.Value != migrationValue) {
75 item.Value = stored.Value
76 }
77 _, err = op.HandleSettingItemHook(item)

Callers 1

InitDataFunction · 0.85

Calls 8

GetSettingItemsFunction · 0.92
DeleteSettingItemByKeyFunction · 0.92
SaveSettingItemFunction · 0.92
GetSettingItemByKeyFunction · 0.92
HandleSettingItemHookFunction · 0.92
SaveSettingItemsFunction · 0.92
SettingCacheUpdateFunction · 0.92
InitialSettingsFunction · 0.85

Tested by

no test coverage detected