quickshare/src/depidx/deps.go

151 lines
3.2 KiB
Go

package depidx
import (
"github.com/ihexxa/gocfg"
"go.uber.org/zap"
"github.com/ihexxa/quickshare/src/cron"
"github.com/ihexxa/quickshare/src/cryptoutil"
"github.com/ihexxa/quickshare/src/db/boltstore"
"github.com/ihexxa/quickshare/src/db/fileinfostore"
"github.com/ihexxa/quickshare/src/db/sitestore"
"github.com/ihexxa/quickshare/src/db/userstore"
"github.com/ihexxa/quickshare/src/fs"
"github.com/ihexxa/quickshare/src/idgen"
"github.com/ihexxa/quickshare/src/iolimiter"
"github.com/ihexxa/quickshare/src/kvstore"
"github.com/ihexxa/quickshare/src/search/fileindex"
"github.com/ihexxa/quickshare/src/worker"
)
type IUploader interface {
Create(filePath string, size int64) error
WriteChunk(filePath string, chunk []byte, off int64) (int, error)
Status(filePath string) (int64, bool, error)
Close() error
Sync() error
}
type Deps struct {
fs fs.ISimpleFS
token cryptoutil.ITokenEncDec
kv kvstore.IKVStore
users userstore.IUserStore
fileInfos fileinfostore.IFileInfoStore
siteStore sitestore.ISiteStore
id idgen.IIDGen
logger *zap.SugaredLogger
limiter iolimiter.ILimiter
workers worker.IWorkerPool
boltStore *boltstore.BoltStore
cron cron.ICron
fileIndex fileindex.IFileIndex
}
func NewDeps(cfg gocfg.ICfg) *Deps {
return &Deps{}
}
func (deps *Deps) FS() fs.ISimpleFS {
return deps.fs
}
func (deps *Deps) SetFS(filesystem fs.ISimpleFS) {
deps.fs = filesystem
}
func (deps *Deps) Token() cryptoutil.ITokenEncDec {
return deps.token
}
func (deps *Deps) SetToken(tokenMaker cryptoutil.ITokenEncDec) {
deps.token = tokenMaker
}
func (deps *Deps) KV() kvstore.IKVStore {
return deps.kv
}
func (deps *Deps) SetKV(kvstore kvstore.IKVStore) {
deps.kv = kvstore
}
func (deps *Deps) ID() idgen.IIDGen {
return deps.id
}
func (deps *Deps) SetID(ider idgen.IIDGen) {
deps.id = ider
}
func (deps *Deps) Log() *zap.SugaredLogger {
return deps.logger
}
func (deps *Deps) SetLog(logger *zap.SugaredLogger) {
deps.logger = logger
}
func (deps *Deps) Users() userstore.IUserStore {
return deps.users
}
func (deps *Deps) SetUsers(users userstore.IUserStore) {
deps.users = users
}
func (deps *Deps) FileInfos() fileinfostore.IFileInfoStore {
return deps.fileInfos
}
func (deps *Deps) SetFileInfos(fileInfos fileinfostore.IFileInfoStore) {
deps.fileInfos = fileInfos
}
func (deps *Deps) SiteStore() sitestore.ISiteStore {
return deps.siteStore
}
func (deps *Deps) SetSiteStore(siteStore sitestore.ISiteStore) {
deps.siteStore = siteStore
}
func (deps *Deps) Limiter() iolimiter.ILimiter {
return deps.limiter
}
func (deps *Deps) SetLimiter(limiter iolimiter.ILimiter) {
deps.limiter = limiter
}
func (deps *Deps) Workers() worker.IWorkerPool {
return deps.workers
}
func (deps *Deps) SetWorkers(workers worker.IWorkerPool) {
deps.workers = workers
}
func (deps *Deps) BoltStore() *boltstore.BoltStore {
return deps.boltStore
}
func (deps *Deps) SetBoltStore(boltStore *boltstore.BoltStore) {
deps.boltStore = boltStore
}
func (deps *Deps) Cron() cron.ICron {
return deps.cron
}
func (deps *Deps) SetCron(cronImp cron.ICron) {
deps.cron = cronImp
}
func (deps *Deps) FileIndex() fileindex.IFileIndex {
return deps.fileIndex
}
func (deps *Deps) SetIFileIndex(index fileindex.IFileIndex) {
deps.fileIndex = index
}