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"
|
||||
)
|
||||
|
||||
var (
|
||||
DefaultSiteName = "Quickshare"
|
||||
DefaultSiteDesc = "Quickshare"
|
||||
DefaultBgConfig = &db.BgConfig{
|
||||
Repeat: "repeated",
|
||||
Position: "top",
|
||||
Align: "fixed",
|
||||
BgColor: "#ccc",
|
||||
}
|
||||
)
|
||||
|
||||
var (
|
||||
ErrNotFound = errors.New("site config not found")
|
||||
)
|
||||
|
@ -47,10 +58,7 @@ func (st *SiteStore) Init(cfg *SiteConfig) error {
|
|||
return err
|
||||
}
|
||||
|
||||
err = st.setCfg(cfg)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return st.setCfg(cfg)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
@ -66,10 +74,18 @@ func (st *SiteStore) getCfg() (*SiteConfig, error) {
|
|||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if err = CheckCfg(cfg, true); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return cfg, nil
|
||||
}
|
||||
|
||||
func (st *SiteStore) setCfg(cfg *SiteConfig) error {
|
||||
if err := CheckCfg(cfg, false); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
cfgBytes, err := json.Marshal(cfg)
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -96,3 +112,58 @@ func (st *SiteStore) GetCfg() (*SiteConfig, error) {
|
|||
|
||||
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: "",
|
||||
Position: "",
|
||||
Align: "",
|
||||
BgColor: "",
|
||||
BgColor: "#ccc",
|
||||
},
|
||||
},
|
||||
})
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
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