fix(sitestore): clean up sitestore for refactoring
This commit is contained in:
parent
9ff28ecce4
commit
b4dc30f824
14 changed files with 117 additions and 128 deletions
|
@ -4,8 +4,6 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
|
||||||
"github.com/ihexxa/quickshare/src/db/sitestore"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -16,6 +14,8 @@ const (
|
||||||
ShareIDNs = "sharingKey"
|
ShareIDNs = "sharingKey"
|
||||||
|
|
||||||
uploadsPrefix = "uploads"
|
uploadsPrefix = "uploads"
|
||||||
|
|
||||||
|
KeyInitTime = "keyInitTime"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -40,7 +40,7 @@ type Quota struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type Preferences struct {
|
type Preferences struct {
|
||||||
Bg *sitestore.BgConfig `json:"bg"`
|
Bg *BgConfig `json:"bg"`
|
||||||
CSSURL string `json:"cssURL"`
|
CSSURL string `json:"cssURL"`
|
||||||
LanPackURL string `json:"lanPackURL"`
|
LanPackURL string `json:"lanPackURL"`
|
||||||
Lan string `json:"lan"`
|
Lan string `json:"lan"`
|
||||||
|
@ -49,6 +49,20 @@ type Preferences struct {
|
||||||
Email string `json:"email"`
|
Email string `json:"email"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type ClientConfig struct {
|
||||||
|
SiteName string `json:"siteName" yaml:"siteName"`
|
||||||
|
SiteDesc string `json:"siteDesc" yaml:"siteDesc"`
|
||||||
|
Bg *BgConfig `json:"bg" yaml:"bg"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type BgConfig struct {
|
||||||
|
Url string `json:"url" yaml:"url"`
|
||||||
|
Repeat string `json:"repeat" yaml:"repeat"`
|
||||||
|
Position string `json:"position" yaml:"position"`
|
||||||
|
Align string `json:"align" yaml:"align"`
|
||||||
|
BgColor string `json:"bgColor" yaml:"bgColor"`
|
||||||
|
}
|
||||||
|
|
||||||
func ComparePreferences(p1, p2 *Preferences) bool {
|
func ComparePreferences(p1, p2 *Preferences) bool {
|
||||||
return p1.CSSURL == p2.CSSURL &&
|
return p1.CSSURL == p2.CSSURL &&
|
||||||
p1.LanPackURL == p2.LanPackURL &&
|
p1.LanPackURL == p2.LanPackURL &&
|
||||||
|
|
|
@ -30,10 +30,6 @@ var (
|
||||||
maxHashingTime = 10
|
maxHashingTime = 10
|
||||||
)
|
)
|
||||||
|
|
||||||
func IsNotFound(err error) bool {
|
|
||||||
return err == ErrNotFound
|
|
||||||
}
|
|
||||||
|
|
||||||
type IFileInfoStore interface {
|
type IFileInfoStore interface {
|
||||||
AddSharing(dirPath string) error
|
AddSharing(dirPath string) error
|
||||||
DelSharing(dirPath string) error
|
DelSharing(dirPath string) error
|
||||||
|
@ -89,7 +85,7 @@ func (fi *FileInfoStore) AddSharing(dirPath string) error {
|
||||||
|
|
||||||
info, err := fi.GetInfo(dirPath)
|
info, err := fi.GetInfo(dirPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !IsNotFound(err) {
|
if !errors.Is(err, ErrNotFound) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
info = &db.FileInfo{
|
info = &db.FileInfo{
|
||||||
|
@ -199,7 +195,7 @@ func (fi *FileInfoStore) GetInfos(itemPaths []string) (map[string]*db.FileInfo,
|
||||||
for _, itemPath := range itemPaths {
|
for _, itemPath := range itemPaths {
|
||||||
info, err := fi.GetInfo(itemPath)
|
info, err := fi.GetInfo(itemPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !IsNotFound(err) {
|
if !errors.Is(err, ErrNotFound) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
|
@ -233,7 +229,7 @@ func (fi *FileInfoStore) SetSha1(itemPath, sign string) error {
|
||||||
|
|
||||||
info, err := fi.GetInfo(itemPath)
|
info, err := fi.GetInfo(itemPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !IsNotFound(err) {
|
if !errors.Is(err, ErrNotFound) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
info = &db.FileInfo{
|
info = &db.FileInfo{
|
||||||
|
|
|
@ -3,49 +3,28 @@ package sitestore
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
|
||||||
|
|
||||||
|
"github.com/ihexxa/quickshare/src/db"
|
||||||
"github.com/ihexxa/quickshare/src/kvstore"
|
"github.com/ihexxa/quickshare/src/kvstore"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
InitNs = "SiteInit"
|
NsSite = "NsSite"
|
||||||
SiteNs = "Site"
|
KeySiteCfg = "KeySiteCfg"
|
||||||
InitTimeKey = "initTime"
|
|
||||||
SiteCfgKey = "siteCfg"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
ErrNotFound = errors.New("site config not found")
|
ErrNotFound = errors.New("site config not found")
|
||||||
)
|
)
|
||||||
|
|
||||||
func IsNotFound(err error) bool {
|
|
||||||
return err == ErrNotFound
|
|
||||||
}
|
|
||||||
|
|
||||||
type ISiteStore interface {
|
type ISiteStore interface {
|
||||||
SetClientCfg(cfg *ClientConfig) error
|
SetClientCfg(cfg *db.ClientConfig) error
|
||||||
GetCfg() (*SiteConfig, error)
|
GetCfg() (*SiteConfig, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type ClientConfig struct {
|
|
||||||
SiteName string `json:"siteName" yaml:"siteName"`
|
|
||||||
SiteDesc string `json:"siteDesc" yaml:"siteDesc"`
|
|
||||||
Bg *BgConfig `json:"bg" yaml:"bg"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type BgConfig struct {
|
|
||||||
Url string `json:"url" yaml:"url"`
|
|
||||||
Repeat string `json:"repeat" yaml:"repeat"`
|
|
||||||
Position string `json:"position" yaml:"position"`
|
|
||||||
Align string `json:"align" yaml:"align"`
|
|
||||||
BgColor string `json:"bgColor" yaml:"bgColor"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type SiteConfig struct {
|
type SiteConfig struct {
|
||||||
ClientCfg *ClientConfig `json:"clientCfg" yaml:"clientCfg"`
|
ClientCfg *db.ClientConfig `json:"clientCfg" yaml:"clientCfg"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type SiteStore struct {
|
type SiteStore struct {
|
||||||
|
@ -61,65 +40,59 @@ func NewSiteStore(store kvstore.IKVStore) (*SiteStore, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (st *SiteStore) Init(cfg *SiteConfig) error {
|
func (st *SiteStore) Init(cfg *SiteConfig) error {
|
||||||
_, ok := st.store.GetStringIn(InitNs, InitTimeKey)
|
_, ok := st.store.GetStringIn(NsSite, KeySiteCfg)
|
||||||
if !ok {
|
if !ok {
|
||||||
var err error
|
var err error
|
||||||
for _, nsName := range []string{
|
if err = st.store.AddNamespace(NsSite); err != nil {
|
||||||
InitNs,
|
|
||||||
SiteNs,
|
|
||||||
} {
|
|
||||||
if err = st.store.AddNamespace(nsName); err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: replace following with setConfig
|
err = st.setCfg(cfg)
|
||||||
err = st.SetClientCfg(cfg.ClientCfg)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
err = st.store.SetStringIn(InitNs, InitTimeKey, fmt.Sprintf("%d", time.Now().Unix()))
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (st *SiteStore) SetClientCfg(cfg *ClientConfig) error {
|
func (st *SiteStore) getCfg() (*SiteConfig, error) {
|
||||||
|
cfgStr, ok := st.store.GetStringIn(NsSite, KeySiteCfg)
|
||||||
|
if !ok {
|
||||||
|
return nil, ErrNotFound
|
||||||
|
}
|
||||||
|
|
||||||
|
cfg := &SiteConfig{}
|
||||||
|
err := json.Unmarshal([]byte(cfgStr), cfg)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return cfg, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (st *SiteStore) setCfg(cfg *SiteConfig) error {
|
||||||
|
cfgBytes, err := json.Marshal(cfg)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return st.store.SetStringIn(NsSite, KeySiteCfg, string(cfgBytes))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (st *SiteStore) SetClientCfg(cfg *db.ClientConfig) error {
|
||||||
st.mtx.Lock()
|
st.mtx.Lock()
|
||||||
defer st.mtx.Unlock()
|
defer st.mtx.Unlock()
|
||||||
|
|
||||||
siteCfg := &SiteConfig{}
|
siteCfg, err := st.getCfg()
|
||||||
cfgStr, ok := st.store.GetStringIn(SiteNs, SiteCfgKey)
|
|
||||||
if ok {
|
|
||||||
err := json.Unmarshal([]byte(cfgStr), siteCfg)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
|
||||||
siteCfg.ClientCfg = cfg
|
siteCfg.ClientCfg = cfg
|
||||||
|
|
||||||
cfgBytes, err := json.Marshal(siteCfg)
|
return st.setCfg(siteCfg)
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return st.store.SetStringIn(SiteNs, SiteCfgKey, string(cfgBytes))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (st *SiteStore) GetCfg() (*SiteConfig, error) {
|
func (st *SiteStore) GetCfg() (*SiteConfig, error) {
|
||||||
st.mtx.RLock()
|
st.mtx.RLock()
|
||||||
defer st.mtx.RUnlock()
|
defer st.mtx.RUnlock()
|
||||||
|
|
||||||
cfgStr, ok := st.store.GetStringIn(SiteNs, SiteCfgKey)
|
return st.getCfg()
|
||||||
if !ok {
|
|
||||||
return nil, ErrNotFound
|
|
||||||
}
|
|
||||||
siteCfg := &SiteConfig{}
|
|
||||||
err := json.Unmarshal([]byte(cfgStr), siteCfg)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return siteCfg, nil
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/ihexxa/quickshare/src/db"
|
||||||
"github.com/ihexxa/quickshare/src/kvstore/boltdbpvd"
|
"github.com/ihexxa/quickshare/src/kvstore/boltdbpvd"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -14,10 +15,10 @@ func TestSiteStore(t *testing.T) {
|
||||||
|
|
||||||
testSiteMethods := func(t *testing.T, store ISiteStore) {
|
testSiteMethods := func(t *testing.T, store ISiteStore) {
|
||||||
siteCfg := &SiteConfig{
|
siteCfg := &SiteConfig{
|
||||||
ClientCfg: &ClientConfig{
|
ClientCfg: &db.ClientConfig{
|
||||||
SiteName: "quickshare",
|
SiteName: "quickshare",
|
||||||
SiteDesc: "simpel file sharing",
|
SiteDesc: "simpel file sharing",
|
||||||
Bg: &BgConfig{
|
Bg: &db.BgConfig{
|
||||||
Url: "/imgs/bg.jpg",
|
Url: "/imgs/bg.jpg",
|
||||||
Repeat: "no-repeat",
|
Repeat: "no-repeat",
|
||||||
Position: "fixed",
|
Position: "fixed",
|
||||||
|
@ -55,10 +56,10 @@ func TestSiteStore(t *testing.T) {
|
||||||
t.Fatal("fail to new kvstore", err)
|
t.Fatal("fail to new kvstore", err)
|
||||||
}
|
}
|
||||||
err = store.Init(&SiteConfig{
|
err = store.Init(&SiteConfig{
|
||||||
ClientCfg: &ClientConfig{
|
ClientCfg: &db.ClientConfig{
|
||||||
SiteName: "",
|
SiteName: "",
|
||||||
SiteDesc: "",
|
SiteDesc: "",
|
||||||
Bg: &BgConfig{
|
Bg: &db.BgConfig{
|
||||||
Url: "",
|
Url: "",
|
||||||
Repeat: "",
|
Repeat: "",
|
||||||
Position: "",
|
Position: "",
|
||||||
|
|
|
@ -8,7 +8,6 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ihexxa/quickshare/src/db"
|
"github.com/ihexxa/quickshare/src/db"
|
||||||
"github.com/ihexxa/quickshare/src/db/sitestore"
|
|
||||||
"github.com/ihexxa/quickshare/src/kvstore"
|
"github.com/ihexxa/quickshare/src/kvstore"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -35,7 +34,7 @@ var (
|
||||||
ErrNotFound = errors.New("not found")
|
ErrNotFound = errors.New("not found")
|
||||||
|
|
||||||
DefaultPreferences = db.Preferences{
|
DefaultPreferences = db.Preferences{
|
||||||
Bg: &sitestore.BgConfig{
|
Bg: &db.BgConfig{
|
||||||
Url: "",
|
Url: "",
|
||||||
Repeat: "no-repeat",
|
Repeat: "no-repeat",
|
||||||
Position: "center",
|
Position: "center",
|
||||||
|
@ -51,14 +50,10 @@ var (
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
func IsReachedLimitErr(err error) bool {
|
|
||||||
return err == ErrReachedLimit
|
|
||||||
}
|
|
||||||
|
|
||||||
type UserCfg struct {
|
type UserCfg struct {
|
||||||
Name string `json:"name"`
|
Name string `json:"name" yaml:"name"`
|
||||||
Role string `json:"role"`
|
Role string `json:"role" yaml:"role"`
|
||||||
Pwd string `json:"pwd"`
|
Pwd string `json:"pwd" yaml:"pwd"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type IUserStore interface {
|
type IUserStore interface {
|
||||||
|
|
|
@ -186,7 +186,7 @@ func TestUserStores(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
newPrefer := &db.Preferences{
|
newPrefer := &db.Preferences{
|
||||||
Bg: &sitestore.BgConfig{
|
Bg: &db.BgConfig{
|
||||||
Url: "/url",
|
Url: "/url",
|
||||||
Repeat: "repeat",
|
Repeat: "repeat",
|
||||||
Position: "pos",
|
Position: "pos",
|
||||||
|
|
|
@ -6,7 +6,7 @@ import (
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/ihexxa/gocfg"
|
"github.com/ihexxa/gocfg"
|
||||||
|
|
||||||
"github.com/ihexxa/quickshare/src/db/sitestore"
|
"github.com/ihexxa/quickshare/src/db"
|
||||||
"github.com/ihexxa/quickshare/src/depidx"
|
"github.com/ihexxa/quickshare/src/depidx"
|
||||||
q "github.com/ihexxa/quickshare/src/handlers"
|
q "github.com/ihexxa/quickshare/src/handlers"
|
||||||
)
|
)
|
||||||
|
@ -31,7 +31,7 @@ func (h *SettingsSvc) Health(c *gin.Context) {
|
||||||
type ClientCfgMsg struct {
|
type ClientCfgMsg struct {
|
||||||
SiteName string `json:"siteName"`
|
SiteName string `json:"siteName"`
|
||||||
SiteDesc string `json:"siteDesc"`
|
SiteDesc string `json:"siteDesc"`
|
||||||
Bg *sitestore.BgConfig `json:"bg"`
|
Bg *db.BgConfig `json:"bg"`
|
||||||
CaptchaEnabled bool `json:"captchaEnabled"`
|
CaptchaEnabled bool `json:"captchaEnabled"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ func (h *SettingsSvc) SetClientCfg(c *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
clientCfg := &sitestore.ClientConfig{
|
clientCfg := &db.ClientConfig{
|
||||||
SiteName: req.SiteName,
|
SiteName: req.SiteName,
|
||||||
SiteDesc: req.SiteDesc,
|
SiteDesc: req.SiteDesc,
|
||||||
Bg: req.Bg,
|
Bg: req.Bg,
|
||||||
|
@ -78,7 +78,7 @@ func (h *SettingsSvc) SetClientCfg(c *gin.Context) {
|
||||||
c.JSON(q.Resp(200))
|
c.JSON(q.Resp(200))
|
||||||
}
|
}
|
||||||
|
|
||||||
func validateClientCfg(cfg *sitestore.ClientConfig) error {
|
func validateClientCfg(cfg *db.ClientConfig) error {
|
||||||
if cfg.SiteName == "" {
|
if cfg.SiteName == "" {
|
||||||
return errors.New("site name is empty")
|
return errors.New("site name is empty")
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ package server
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
|
||||||
|
"github.com/ihexxa/quickshare/src/db"
|
||||||
"github.com/ihexxa/quickshare/src/db/sitestore"
|
"github.com/ihexxa/quickshare/src/db/sitestore"
|
||||||
"github.com/ihexxa/quickshare/src/db/userstore"
|
"github.com/ihexxa/quickshare/src/db/userstore"
|
||||||
)
|
)
|
||||||
|
@ -120,10 +121,10 @@ func DefaultConfigStruct() *Config {
|
||||||
WorkerCount: 2,
|
WorkerCount: 2,
|
||||||
},
|
},
|
||||||
Site: &sitestore.SiteConfig{
|
Site: &sitestore.SiteConfig{
|
||||||
ClientCfg: &sitestore.ClientConfig{
|
ClientCfg: &db.ClientConfig{
|
||||||
SiteName: "Quickshare",
|
SiteName: "Quickshare",
|
||||||
SiteDesc: "quick and simple file sharing",
|
SiteDesc: "quick and simple file sharing",
|
||||||
Bg: &sitestore.BgConfig{
|
Bg: &db.BgConfig{
|
||||||
Url: "/static/img/textured_paper.png",
|
Url: "/static/img/textured_paper.png",
|
||||||
Repeat: "repeat",
|
Repeat: "repeat",
|
||||||
Position: "fixed",
|
Position: "fixed",
|
||||||
|
|
|
@ -2,6 +2,7 @@ package server
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
@ -41,6 +42,9 @@ func LoadCfg(args *Args) (*gocfg.Cfg, error) {
|
||||||
_, err := os.Stat(dbPath)
|
_, err := os.Stat(dbPath)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
cfg, err = mergeDbConfig(cfg, dbPath)
|
cfg, err = mergeDbConfig(cfg, dbPath)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
} else if err != nil {
|
} else if err != nil {
|
||||||
if !os.IsNotExist(err) {
|
if !os.IsNotExist(err) {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -64,8 +68,12 @@ func mergeDbConfig(cfg *gocfg.Cfg, dbPath string) (*gocfg.Cfg, error) {
|
||||||
|
|
||||||
clientCfg, err := siteStore.GetCfg()
|
clientCfg, err := siteStore.GetCfg()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if errors.Is(err, sitestore.ErrNotFound) {
|
||||||
|
return cfg, nil
|
||||||
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
clientCfgBytes, err := json.Marshal(clientCfg)
|
clientCfgBytes, err := json.Marshal(clientCfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
|
|
||||||
"github.com/ihexxa/gocfg"
|
"github.com/ihexxa/gocfg"
|
||||||
|
|
||||||
|
"github.com/ihexxa/quickshare/src/db"
|
||||||
"github.com/ihexxa/quickshare/src/db/sitestore"
|
"github.com/ihexxa/quickshare/src/db/sitestore"
|
||||||
"github.com/ihexxa/quickshare/src/db/userstore"
|
"github.com/ihexxa/quickshare/src/db/userstore"
|
||||||
)
|
)
|
||||||
|
@ -111,10 +112,10 @@ func TestLoadCfg(t *testing.T) {
|
||||||
WorkerCount: 1,
|
WorkerCount: 1,
|
||||||
},
|
},
|
||||||
Site: &sitestore.SiteConfig{
|
Site: &sitestore.SiteConfig{
|
||||||
ClientCfg: &sitestore.ClientConfig{
|
ClientCfg: &db.ClientConfig{
|
||||||
SiteName: "1",
|
SiteName: "1",
|
||||||
SiteDesc: "1",
|
SiteDesc: "1",
|
||||||
Bg: &sitestore.BgConfig{
|
Bg: &db.BgConfig{
|
||||||
Url: "1",
|
Url: "1",
|
||||||
Repeat: "1",
|
Repeat: "1",
|
||||||
Position: "1",
|
Position: "1",
|
||||||
|
@ -177,10 +178,10 @@ func TestLoadCfg(t *testing.T) {
|
||||||
WorkerCount: 4,
|
WorkerCount: 4,
|
||||||
},
|
},
|
||||||
Site: &sitestore.SiteConfig{
|
Site: &sitestore.SiteConfig{
|
||||||
ClientCfg: &sitestore.ClientConfig{
|
ClientCfg: &db.ClientConfig{
|
||||||
SiteName: "4",
|
SiteName: "4",
|
||||||
SiteDesc: "4",
|
SiteDesc: "4",
|
||||||
Bg: &sitestore.BgConfig{
|
Bg: &db.BgConfig{
|
||||||
Url: "4",
|
Url: "4",
|
||||||
Repeat: "4",
|
Repeat: "4",
|
||||||
Position: "4",
|
Position: "4",
|
||||||
|
@ -243,10 +244,10 @@ func TestLoadCfg(t *testing.T) {
|
||||||
WorkerCount: 4,
|
WorkerCount: 4,
|
||||||
},
|
},
|
||||||
Site: &sitestore.SiteConfig{
|
Site: &sitestore.SiteConfig{
|
||||||
ClientCfg: &sitestore.ClientConfig{
|
ClientCfg: &db.ClientConfig{
|
||||||
SiteName: "4",
|
SiteName: "4",
|
||||||
SiteDesc: "4",
|
SiteDesc: "4",
|
||||||
Bg: &sitestore.BgConfig{
|
Bg: &db.BgConfig{
|
||||||
Url: "4",
|
Url: "4",
|
||||||
Repeat: "4",
|
Repeat: "4",
|
||||||
Position: "4",
|
Position: "4",
|
||||||
|
@ -309,15 +310,15 @@ func TestLoadCfg(t *testing.T) {
|
||||||
WorkerCount: 4,
|
WorkerCount: 4,
|
||||||
},
|
},
|
||||||
Site: &sitestore.SiteConfig{
|
Site: &sitestore.SiteConfig{
|
||||||
ClientCfg: &sitestore.ClientConfig{
|
ClientCfg: &db.ClientConfig{
|
||||||
SiteName: "Quickshare",
|
SiteName: "4",
|
||||||
SiteDesc: "Quickshare",
|
SiteDesc: "4",
|
||||||
Bg: &sitestore.BgConfig{
|
Bg: &db.BgConfig{
|
||||||
Url: "test.png",
|
Url: "4",
|
||||||
Repeat: "no-repeat",
|
Repeat: "4",
|
||||||
Position: "top",
|
Position: "4",
|
||||||
Align: "scroll",
|
Align: "4",
|
||||||
BgColor: "", // the schema of the config from db is old
|
BgColor: "4",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -23,6 +23,7 @@ import (
|
||||||
"golang.org/x/crypto/bcrypt"
|
"golang.org/x/crypto/bcrypt"
|
||||||
|
|
||||||
"github.com/ihexxa/quickshare/src/cryptoutil/jwt"
|
"github.com/ihexxa/quickshare/src/cryptoutil/jwt"
|
||||||
|
"github.com/ihexxa/quickshare/src/db"
|
||||||
"github.com/ihexxa/quickshare/src/db/boltstore"
|
"github.com/ihexxa/quickshare/src/db/boltstore"
|
||||||
"github.com/ihexxa/quickshare/src/db/fileinfostore"
|
"github.com/ihexxa/quickshare/src/db/fileinfostore"
|
||||||
"github.com/ihexxa/quickshare/src/db/sitestore"
|
"github.com/ihexxa/quickshare/src/db/sitestore"
|
||||||
|
@ -162,10 +163,10 @@ func initDeps(cfg gocfg.ICfg) *depidx.Deps {
|
||||||
}
|
}
|
||||||
|
|
||||||
err = siteStore.Init(&sitestore.SiteConfig{
|
err = siteStore.Init(&sitestore.SiteConfig{
|
||||||
ClientCfg: &sitestore.ClientConfig{
|
ClientCfg: &db.ClientConfig{
|
||||||
SiteName: cfg.StringOr("Site.ClientCfg.SiteName", "Quickshare"),
|
SiteName: cfg.StringOr("Site.ClientCfg.SiteName", "Quickshare"),
|
||||||
SiteDesc: cfg.StringOr("Site.ClientCfg.SiteDesc", "quick and simple file sharing"),
|
SiteDesc: cfg.StringOr("Site.ClientCfg.SiteDesc", "quick and simple file sharing"),
|
||||||
Bg: &sitestore.BgConfig{
|
Bg: &db.BgConfig{
|
||||||
Url: cfg.StringOr("Site.ClientCfg.Bg.Url", "/static/img/textured_paper.png"),
|
Url: cfg.StringOr("Site.ClientCfg.Bg.Url", "/static/img/textured_paper.png"),
|
||||||
Repeat: cfg.StringOr("Site.ClientCfg.Bg.Repeat", "repeat"),
|
Repeat: cfg.StringOr("Site.ClientCfg.Bg.Repeat", "repeat"),
|
||||||
Position: cfg.StringOr("Site.ClientCfg.Bg.Position", "fixed"),
|
Position: cfg.StringOr("Site.ClientCfg.Bg.Position", "fixed"),
|
||||||
|
|
|
@ -10,7 +10,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ihexxa/quickshare/src/client"
|
"github.com/ihexxa/quickshare/src/client"
|
||||||
"github.com/ihexxa/quickshare/src/db/sitestore"
|
"github.com/ihexxa/quickshare/src/db"
|
||||||
q "github.com/ihexxa/quickshare/src/handlers"
|
q "github.com/ihexxa/quickshare/src/handlers"
|
||||||
"github.com/ihexxa/quickshare/src/handlers/settings"
|
"github.com/ihexxa/quickshare/src/handlers/settings"
|
||||||
)
|
)
|
||||||
|
@ -74,11 +74,11 @@ func TestSettingsHandlers(t *testing.T) {
|
||||||
|
|
||||||
t.Run("get/set client config", func(t *testing.T) {
|
t.Run("get/set client config", func(t *testing.T) {
|
||||||
settingsCl := client.NewSettingsClient(addr)
|
settingsCl := client.NewSettingsClient(addr)
|
||||||
cfgs := []*sitestore.ClientConfig{
|
cfgs := []*db.ClientConfig{
|
||||||
&sitestore.ClientConfig{
|
&db.ClientConfig{
|
||||||
SiteName: "quickshare",
|
SiteName: "quickshare",
|
||||||
SiteDesc: "quickshare",
|
SiteDesc: "quickshare",
|
||||||
Bg: &sitestore.BgConfig{
|
Bg: &db.BgConfig{
|
||||||
Url: "url",
|
Url: "url",
|
||||||
Repeat: "repeat",
|
Repeat: "repeat",
|
||||||
Position: "center",
|
Position: "center",
|
||||||
|
|
|
@ -9,7 +9,6 @@ import (
|
||||||
|
|
||||||
"github.com/ihexxa/quickshare/src/client"
|
"github.com/ihexxa/quickshare/src/client"
|
||||||
"github.com/ihexxa/quickshare/src/db"
|
"github.com/ihexxa/quickshare/src/db"
|
||||||
"github.com/ihexxa/quickshare/src/db/sitestore"
|
|
||||||
"github.com/ihexxa/quickshare/src/db/userstore"
|
"github.com/ihexxa/quickshare/src/db/userstore"
|
||||||
q "github.com/ihexxa/quickshare/src/handlers"
|
q "github.com/ihexxa/quickshare/src/handlers"
|
||||||
su "github.com/ihexxa/quickshare/src/handlers/singleuserhdr"
|
su "github.com/ihexxa/quickshare/src/handlers/singleuserhdr"
|
||||||
|
@ -448,7 +447,7 @@ func TestUsersHandlers(t *testing.T) {
|
||||||
|
|
||||||
prefers := []*db.Preferences{
|
prefers := []*db.Preferences{
|
||||||
&db.Preferences{
|
&db.Preferences{
|
||||||
Bg: &sitestore.BgConfig{
|
Bg: &db.BgConfig{
|
||||||
Url: "/bgurl",
|
Url: "/bgurl",
|
||||||
Repeat: "no-repeat",
|
Repeat: "no-repeat",
|
||||||
Position: "center",
|
Position: "center",
|
||||||
|
@ -461,7 +460,7 @@ func TestUsersHandlers(t *testing.T) {
|
||||||
Email: "email1",
|
Email: "email1",
|
||||||
},
|
},
|
||||||
&db.Preferences{
|
&db.Preferences{
|
||||||
Bg: &sitestore.BgConfig{
|
Bg: &db.BgConfig{
|
||||||
Url: "/bgurl2",
|
Url: "/bgurl2",
|
||||||
Repeat: "no-repeat2",
|
Repeat: "no-repeat2",
|
||||||
Position: "center2",
|
Position: "center2",
|
||||||
|
|
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