summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-05-16 00:37:44 +0300
committerPaul Buetow <paul@buetow.org>2024-05-16 00:37:44 +0300
commitdc6f16912693a7a95d7375f08d42600ea2ce130e (patch)
tree2339a41fab439764ec3cf138fc599c66c8de9789 /internal
parent4057c17487a6713adccad61da8a3a58a0863db37 (diff)
repository singleton is a pointer
Diffstat (limited to 'internal')
-rw-r--r--internal/server/handle/handle.go1
-rw-r--r--internal/server/repository/repository.go18
2 files changed, 11 insertions, 8 deletions
diff --git a/internal/server/handle/handle.go b/internal/server/handle/handle.go
index 0a0a1bb..14125e1 100644
--- a/internal/server/handle/handle.go
+++ b/internal/server/handle/handle.go
@@ -19,6 +19,7 @@ import (
var getIDRe = regexp.MustCompile(`^/[0-9]{4}/[a-z0-9]{64}\.json$`)
+// TODO: Use repository.Repository to store the file to the file system
func Submit(w http.ResponseWriter, r *http.Request, dataDir string) error {
if r.Method != "POST" {
return fmt.Errorf("expexted POST request")
diff --git a/internal/server/repository/repository.go b/internal/server/repository/repository.go
index 4146526..d2a9a9e 100644
--- a/internal/server/repository/repository.go
+++ b/internal/server/repository/repository.go
@@ -12,7 +12,7 @@ import (
)
var (
- instance Repository
+ instance *Repository
once sync.Once
)
@@ -27,19 +27,20 @@ type Repository struct {
mu *sync.Mutex
}
-func Instance(dataDir string) Repository {
+func Instance(dataDir string) *Repository {
once.Do(func() {
- instance.dataDir = dataDir
- instance.entries = make(map[string]types.Entry)
- instance.mu = &sync.Mutex{}
+ instance = &Repository{
+ dataDir: dataDir,
+ entries: make(map[string]types.Entry),
+ mu: &sync.Mutex{},
+ }
})
return instance
}
-func (r Repository) store(entry types.Entry) {
+func (r Repository) add(entry types.Entry) {
r.mu.Lock()
defer r.mu.Unlock()
-
r.entries[entry.ID] = entry
}
@@ -59,7 +60,7 @@ func (r Repository) load() error {
if err != err {
return err
}
- r.store(entry)
+ r.add(entry)
return nil
}
}
@@ -105,4 +106,5 @@ func (r Repository) Merge(new types.Entry) {
}
r.entries[new.ID] = old.Update(new)
+ panic("Not yet implemented: shoud write entry also to disk")
}