fix(site_store): refactor site store
This commit is contained in:
parent
b4dc30f824
commit
c3a3b2dc5b
3 changed files with 79 additions and 5 deletions
|
@ -14,6 +14,17 @@ const (
|
||||||
KeySiteCfg = "KeySiteCfg"
|
KeySiteCfg = "KeySiteCfg"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
DefaultSiteName = "Quickshare"
|
||||||
|
DefaultSiteDesc = "Quickshare"
|
||||||
|
DefaultBgConfig = &db.BgConfig{
|
||||||
|
Repeat: "repeated",
|
||||||
|
Position: "top",
|
||||||
|
Align: "fixed",
|
||||||
|
BgColor: "#ccc",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
ErrNotFound = errors.New("site config not found")
|
ErrNotFound = errors.New("site config not found")
|
||||||
)
|
)
|
||||||
|
@ -47,10 +58,7 @@ func (st *SiteStore) Init(cfg *SiteConfig) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = st.setCfg(cfg)
|
return st.setCfg(cfg)
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -66,10 +74,18 @@ func (st *SiteStore) getCfg() (*SiteConfig, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err = CheckCfg(cfg, true); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
return cfg, nil
|
return cfg, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (st *SiteStore) setCfg(cfg *SiteConfig) error {
|
func (st *SiteStore) setCfg(cfg *SiteConfig) error {
|
||||||
|
if err := CheckCfg(cfg, false); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
cfgBytes, err := json.Marshal(cfg)
|
cfgBytes, err := json.Marshal(cfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -96,3 +112,58 @@ func (st *SiteStore) GetCfg() (*SiteConfig, error) {
|
||||||
|
|
||||||
return st.getCfg()
|
return st.getCfg()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func CheckCfg(cfg *SiteConfig, autoFill bool) error {
|
||||||
|
if cfg.ClientCfg == nil {
|
||||||
|
if !autoFill {
|
||||||
|
return errors.New("cfg.ClientCfg not defined")
|
||||||
|
}
|
||||||
|
cfg.ClientCfg = &db.ClientConfig{
|
||||||
|
SiteName: DefaultSiteName,
|
||||||
|
SiteDesc: DefaultSiteDesc,
|
||||||
|
Bg: &db.BgConfig{
|
||||||
|
Url: DefaultBgConfig.Url,
|
||||||
|
Repeat: DefaultBgConfig.Repeat,
|
||||||
|
Position: DefaultBgConfig.Position,
|
||||||
|
Align: DefaultBgConfig.Align,
|
||||||
|
BgColor: DefaultBgConfig.BgColor,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if cfg.ClientCfg.SiteName == "" {
|
||||||
|
cfg.ClientCfg.SiteName = DefaultSiteName
|
||||||
|
}
|
||||||
|
if cfg.ClientCfg.SiteDesc == "" {
|
||||||
|
cfg.ClientCfg.SiteDesc = DefaultSiteDesc
|
||||||
|
}
|
||||||
|
|
||||||
|
if cfg.ClientCfg.Bg == nil {
|
||||||
|
if !autoFill {
|
||||||
|
return errors.New("cfg.ClientCfg.Bg not defined")
|
||||||
|
}
|
||||||
|
cfg.ClientCfg.Bg = DefaultBgConfig
|
||||||
|
}
|
||||||
|
if cfg.ClientCfg.Bg.Url == "" && cfg.ClientCfg.Bg.BgColor == "" {
|
||||||
|
if !autoFill {
|
||||||
|
return errors.New("one of Bg.Url or Bg.BgColor must be defined")
|
||||||
|
}
|
||||||
|
cfg.ClientCfg.Bg.BgColor = DefaultBgConfig.BgColor
|
||||||
|
}
|
||||||
|
if cfg.ClientCfg.Bg.Repeat == "" {
|
||||||
|
cfg.ClientCfg.Bg.Repeat = DefaultBgConfig.Repeat
|
||||||
|
}
|
||||||
|
if cfg.ClientCfg.Bg.Position == "" {
|
||||||
|
cfg.ClientCfg.Bg.Position = DefaultBgConfig.Position
|
||||||
|
}
|
||||||
|
if cfg.ClientCfg.Bg.Align == "" {
|
||||||
|
cfg.ClientCfg.Bg.Align = DefaultBgConfig.Align
|
||||||
|
}
|
||||||
|
if cfg.ClientCfg.Bg.BgColor == "" {
|
||||||
|
cfg.ClientCfg.Bg.BgColor = DefaultBgConfig.BgColor
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
|
@ -64,10 +64,13 @@ func TestSiteStore(t *testing.T) {
|
||||||
Repeat: "",
|
Repeat: "",
|
||||||
Position: "",
|
Position: "",
|
||||||
Align: "",
|
Align: "",
|
||||||
BgColor: "",
|
BgColor: "#ccc",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
testSiteMethods(t, store)
|
testSiteMethods(t, store)
|
||||||
})
|
})
|
||||||
|
|
BIN
src/server/testdata/test_quickshare.db
vendored
BIN
src/server/testdata/test_quickshare.db
vendored
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue