fix: json marshal/unmarshal

This commit is contained in:
yusing
2025-04-24 19:57:27 +08:00
parent 080bbc18eb
commit 8363dfe257
5 changed files with 117 additions and 43 deletions

View File

@@ -1,6 +1,7 @@
package homepage
import (
"maps"
"sync"
"github.com/yusing/go-proxy/internal/common"
@@ -15,12 +16,19 @@ type OverrideConfig struct {
mu sync.RWMutex
}
var overrideConfigInstance = jsonstore.Object[OverrideConfig](common.NamespaceHomepageOverrides)
var overrideConfigInstance = jsonstore.Object[*OverrideConfig](common.NamespaceHomepageOverrides)
func GetOverrideConfig() *OverrideConfig {
return overrideConfigInstance
}
func (c *OverrideConfig) Initialize() {
c.ItemOverrides = make(map[string]*ItemConfig)
c.DisplayOrder = make(map[string]int)
c.CategoryOrder = make(map[string]int)
c.ItemVisibility = make(map[string]bool)
}
func (c *OverrideConfig) OverrideItem(alias string, override *ItemConfig) {
c.mu.Lock()
defer c.mu.Unlock()
@@ -30,9 +38,7 @@ func (c *OverrideConfig) OverrideItem(alias string, override *ItemConfig) {
func (c *OverrideConfig) OverrideItems(items map[string]*ItemConfig) {
c.mu.Lock()
defer c.mu.Unlock()
for key, value := range items {
c.ItemOverrides[key] = value
}
maps.Copy(c.ItemOverrides, items)
}
func (c *OverrideConfig) GetOverride(alias string, item *ItemConfig) *ItemConfig {