summaryrefslogtreecommitdiff
path: root/internal/server
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-05-27 09:20:49 +0300
committerPaul Buetow <paul@buetow.org>2024-05-27 09:20:49 +0300
commit11788abad75c0d4920ed4f7797febd7d36569a66 (patch)
tree1432a50e82c5db81c1c2d33461a7c25ebacc258a /internal/server
parent9be6694a4a70e06be713033145f763e9d7f86295 (diff)
move the interface to the client
Diffstat (limited to 'internal/server')
-rw-r--r--internal/server/repository/repository.go14
1 files changed, 10 insertions, 4 deletions
diff --git a/internal/server/repository/repository.go b/internal/server/repository/repository.go
index fa9a5f4..b98ccfa 100644
--- a/internal/server/repository/repository.go
+++ b/internal/server/repository/repository.go
@@ -15,6 +15,12 @@ var (
once sync.Once
)
+type fs interface {
+ ReadFile(name string) ([]byte, error)
+ WriteFile(filePath string, bytes []byte) error
+ FindFiles(dataPath, suffix string) ([]string, error)
+}
+
// Contains an Entry ID and its checksumm, for the list and merge operations.
type EntryPair struct {
ID, Checksum string
@@ -24,7 +30,7 @@ type Repository struct {
dataDir string
entries map[string]types.Entry
mu *sync.Mutex
- vfs vfs.VFS
+ fs fs
}
func Instance(dataDir string) *Repository {
@@ -33,7 +39,7 @@ func Instance(dataDir string) *Repository {
dataDir: dataDir,
entries: make(map[string]types.Entry),
mu: &sync.Mutex{},
- vfs: vfs.RealFS{},
+ fs: vfs.RealFS{},
}
})
return instance
@@ -47,7 +53,7 @@ func (r Repository) add(entry types.Entry) {
// Load repository into memory
func (r Repository) load() error {
- filePaths, err := r.vfs.FindFiles(r.dataDir, ".json")
+ filePaths, err := r.fs.FindFiles(r.dataDir, ".json")
if err != nil {
return err
}
@@ -80,7 +86,7 @@ func (r Repository) List() ([]byte, error) {
}
func (r Repository) Get(id string) ([]byte, error) {
- return r.vfs.ReadFile(fmt.Sprintf("%s/%s", r.dataDir, id))
+ return r.fs.ReadFile(fmt.Sprintf("%s/%s", r.dataDir, id))
}
func (r Repository) HasSameEntry(pair EntryPair) bool {