diff options
Diffstat (limited to 'internal/server')
| -rw-r--r-- | internal/server/handler/handler.go | 20 | ||||
| -rw-r--r-- | internal/server/repository/repository.go | 42 | ||||
| -rw-r--r-- | internal/server/repository/repository_test.go | 82 |
3 files changed, 72 insertions, 72 deletions
diff --git a/internal/server/handler/handler.go b/internal/server/handler/handler.go index eabffa3..835f3fb 100644 --- a/internal/server/handler/handler.go +++ b/internal/server/handler/handler.go @@ -36,11 +36,11 @@ func (h Handler) Submit(ctx context.Context, w http.ResponseWriter, r *http.Requ return err } - entry, err := types.NewEntry(bytes) + ent, err := types.NewEntry(bytes) if err != nil { return err } - return repository.Instance(h.conf.DataDir).Merge(entry) + return repository.Instance(h.conf.DataDir).Merge(ent) } func (h Handler) List(w http.ResponseWriter, r *http.Request) error { @@ -63,12 +63,12 @@ func (h Handler) Get(w http.ResponseWriter, r *http.Request) error { return fmt.Errorf("invalid id %s", id) } - entry, ok := repository.Instance(h.conf.DataDir).Get(id) + ent, ok := repository.Instance(h.conf.DataDir).Get(id) if !ok { return fmt.Errorf("no entry with id %s found", id) } - fmt.Fprint(w, entry.String()) + fmt.Fprint(w, ent.String()) return nil } @@ -107,22 +107,22 @@ func (h Handler) mergeFromPartner(ctx context.Context, partner string) error { } var ( - entry types.Entry - uri = fmt.Sprintf("%s/get?id=%s", partner, pair.ID) + ent types.Entry + uri = fmt.Sprintf("%s/get?id=%s", partner, pair.ID) ) - if err := easyhttp.GetData(ctx, uri, h.conf.APIKey, &entry); err != nil { + if err := easyhttp.GetData(ctx, uri, h.conf.APIKey, &ent); err != nil { errs = append(errs, err) continue } // In theory, this should never happen - if pair.ID != entry.ID { - errs = append(errs, fmt.Errorf("pair ID %s does not match entry id %s", pair.ID, entry.ID)) + if pair.ID != ent.ID { + errs = append(errs, fmt.Errorf("pair ID %s does not match entry id %s", pair.ID, ent.ID)) continue } - errs = append(errs, repo.Merge(entry)) + errs = append(errs, repo.Merge(ent)) } return errors.Join(errs...) diff --git a/internal/server/repository/repository.go b/internal/server/repository/repository.go index 0b7d162..90b64bc 100644 --- a/internal/server/repository/repository.go +++ b/internal/server/repository/repository.go @@ -55,16 +55,16 @@ func newRepository(dataDir string, fs fs) Repository { } } -func (r Repository) put(entry types.Entry) error { +func (r Repository) put(ent types.Entry) error { r.mu.Lock() defer r.mu.Unlock() - r.entries[entry.ID] = entry + r.entries[ent.ID] = ent - bytes, err := entry.Serialize() + bytes, err := ent.Serialize() if err != err { return err } - return r.fs.WriteFile(r.entryPath(entry), bytes) + return r.fs.WriteFile(r.entryPath(ent), bytes) } // Load repository into memory if not done yet. @@ -87,12 +87,12 @@ func (r Repository) load() error { continue } - entry, err := types.NewEntry(bytes) + ent, err := types.NewEntry(bytes) if err != err { continue } - if err := r.put(entry); err != nil { + if err := r.put(ent); err != nil { errs = append(errs, err) } } @@ -113,8 +113,8 @@ func (r Repository) List() ([]EntryPair, error) { r.mu.Lock() defer r.mu.Unlock() - for _, entry := range r.entries { - pairs = append(pairs, EntryPair{entry.ID, entry.Checksum()}) + for _, ent := range r.entries { + pairs = append(pairs, EntryPair{ent.ID, ent.Checksum()}) } return pairs, nil @@ -133,8 +133,8 @@ func (r Repository) Get(id string) (types.Entry, bool) { r.mu.Lock() defer r.mu.Unlock() - entry, ok := r.entries[id] - return entry, ok + ent, ok := r.entries[id] + return ent, ok } func (r Repository) HasSameEntry(pair EntryPair) bool { @@ -149,34 +149,34 @@ func (r Repository) HasSameEntry(pair EntryPair) bool { return true } -func (r Repository) entryPath(entry types.Entry) string { - return fmt.Sprintf("%s/%s/%s.json", r.dataDir, time.Now().Format("2006"), entry.ID) +func (r Repository) entryPath(ent types.Entry) string { + return fmt.Sprintf("%s/%s/%s.json", r.dataDir, time.Now().Format("2006"), ent.ID) } -func (r Repository) Merge(otherEntry types.Entry) error { +func (r Repository) Merge(otherEnt types.Entry) error { _ = r.load() r.mu.Lock() defer r.mu.Unlock() - entry, ok := r.entries[otherEntry.ID] + ent, ok := r.entries[otherEnt.ID] if !ok { - log.Println("can't find entry with ID", otherEntry.ID, "in local db, create new from copy") + log.Println("can't find entry with ID", otherEnt.ID, "in local db, create new from copy") var err error - if entry, err = types.NewEntryFromCopy(otherEntry); err != nil { + if ent, err = types.NewEntryFromCopy(otherEnt); err != nil { return err } } - entry, _ = entry.Update(otherEntry) - r.entries[otherEntry.ID] = entry + ent, _ = ent.Update(otherEnt) + r.entries[otherEnt.ID] = ent - if !entry.Changed { + if !ent.Changed { return nil } - bytes, err := entry.Serialize() + bytes, err := ent.Serialize() if err != err { return err } - return r.fs.WriteFile(r.entryPath(entry), bytes) + return r.fs.WriteFile(r.entryPath(ent), bytes) } diff --git a/internal/server/repository/repository_test.go b/internal/server/repository/repository_test.go index a27108c..01babcb 100644 --- a/internal/server/repository/repository_test.go +++ b/internal/server/repository/repository_test.go @@ -13,15 +13,15 @@ func TestRepositoryPutGet(t *testing.T) { fs := make(vfs.MemoryFS) repo := newRepository("./data", fs) - for _, entry := range makeEntries(t) { - t.Run(entry.ID, func(t *testing.T) { - _ = repo.put(entry) - entryGot, ok := repo.Get(entry.ID) + for _, ent := range makeEntries(t) { + t.Run(ent.ID, func(t *testing.T) { + _ = repo.put(ent) + entGot, ok := repo.Get(ent.ID) if !ok { - t.Errorf("could not find entry with id %s in repo", entry.ID) + t.Errorf("could not find entry with id %s in repo", ent.ID) } - if !entryGot.Equals(entry) { - t.Error("expected to get", entry, "but got", entryGot) + if !entGot.Equals(ent) { + t.Error("expected to get", ent, "but got", entGot) } }) } @@ -35,9 +35,9 @@ func TestRepositoryLoad(t *testing.T) { entries := makeEntries(t) // Write entries into the VFS - for _, entry := range entries { - bytes, _ := entry.Serialize() - _ = repo.fs.WriteFile(repo.entryPath(entry), bytes) + for _, ent := range entries { + bytes, _ := ent.Serialize() + _ = repo.fs.WriteFile(repo.entryPath(ent), bytes) } // Load entries from VFS into the repo @@ -45,14 +45,14 @@ func TestRepositoryLoad(t *testing.T) { t.Error(err) } - for _, entry := range entries { - t.Run(entry.ID, func(t *testing.T) { - entryGot, ok := repo.Get(entry.ID) + for _, ent := range entries { + t.Run(ent.ID, func(t *testing.T) { + entGot, ok := repo.Get(ent.ID) if !ok { - t.Errorf("could not find entry with id %s in repo", entry.ID) + t.Errorf("could not find entry with id %s in repo", ent.ID) } - if !entryGot.Equals(entry) { - t.Error("expected to get", entry, "but got", entryGot) + if !entGot.Equals(ent) { + t.Error("expected to get", ent, "but got", entGot) } }) } @@ -65,8 +65,8 @@ func TestRepositoryList(t *testing.T) { repo := newRepository("./data", fs) entries := makeEntries(t) - for _, entry := range entries { - _ = repo.put(entry) + for _, ent := range entries { + _ = repo.put(ent) } pairs, _ := repo.List() @@ -74,17 +74,17 @@ func TestRepositoryList(t *testing.T) { t.Error("expected as many entries as pairs") } - for _, entry := range entries { + for _, ent := range entries { var found bool for _, pair := range pairs { - if entry.ID == pair.ID && entry.Checksum() == pair.Checksum { + if ent.ID == pair.ID && ent.Checksum() == pair.Checksum { found = true - t.Log("entry matches pair", entry, pair) + t.Log("entry matches pair", ent, pair) break } } if !found { - t.Error("could not find entry", entry, "in", pairs) + t.Error("could not find entry", ent, "in", pairs) } } } @@ -94,10 +94,10 @@ func TestRepositoryHasSameEntry(t *testing.T) { fs := make(vfs.MemoryFS) repo := newRepository("./data", fs) - entry, _ := makeAnEntry() - _ = repo.put(entry) + ent, _ := makeAnEntry() + _ = repo.put(ent) - pair := EntryPair{entry.ID, entry.Checksum()} + pair := EntryPair{ent.ID, ent.Checksum()} if !repo.HasSameEntry(pair) { t.Error("repo does not contain entry corresponding to pair", pair) } @@ -113,16 +113,16 @@ func TestRepositoryMerge(t *testing.T) { fs := make(vfs.MemoryFS) repo := newRepository("./data", fs) - entry1, _ := makeAnEntry() - _ = repo.put(entry1) + ent1, _ := makeAnEntry() + _ = repo.put(ent1) - entry2, _ := makeAnotherEntry() + ent2, _ := makeAnotherEntry() // Need to have the same IDs so that the entries will actually be merged - entry2.ID = entry1.ID - // Merge a modified entry2 into the repository. - entry2.Body = "merged" - entry2.Epoch = 12345 - _ = repo.Merge(entry2) + ent2.ID = ent1.ID + // Merge a modified ent2 into the repository. + ent2.Body = "merged" + ent2.Epoch = 12345 + _ = repo.Merge(ent2) pairs, _ := repo.List() // Ensuring the merge didn't add a new entry @@ -130,25 +130,25 @@ func TestRepositoryMerge(t *testing.T) { t.Error("expected exactly one element in the repo but got", pairs) } - entryGot, _ := repo.Get(entry1.ID) - if entryGot.Body != "merged" { - t.Error("unexpected body", entryGot.Body) + entGot, _ := repo.Get(ent1.ID) + if entGot.Body != "merged" { + t.Error("unexpected body", entGot.Body) } - if entryGot.Epoch != 12345 { - t.Error("unexpected epoch", entryGot.Epoch) + if entGot.Epoch != 12345 { + t.Error("unexpected epoch", entGot.Epoch) } } func makeEntries(t *testing.T) []types.Entry { - entry1, err := makeAnEntry() + ent1, err := makeAnEntry() if err != nil { t.Error(err) } - entry2, err := makeAnotherEntry() + ent2, err := makeAnotherEntry() if err != nil { t.Error(err) } - return []types.Entry{entry1, entry2} + return []types.Entry{ent1, ent2} } func makeAnEntry() (types.Entry, error) { |
