summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-09-12 10:37:26 +0300
committerPaul Buetow <paul@buetow.org>2024-09-12 10:37:26 +0300
commite012a4e256e5dab4b37c5af318fa5faf1eb55910 (patch)
tree111ef6f181d743dfdad77ea7b559be7f02e8472f
parent0b15a3b786bce10c112655fddbb4cc5b74e7a0d3 (diff)
use a map for the pending entries
-rw-r--r--internal/server/repository/pending.go10
-rw-r--r--internal/server/repository/pending_test.go6
2 files changed, 9 insertions, 7 deletions
diff --git a/internal/server/repository/pending.go b/internal/server/repository/pending.go
index 10c9f1b..56a1bd6 100644
--- a/internal/server/repository/pending.go
+++ b/internal/server/repository/pending.go
@@ -2,7 +2,7 @@ package repository
import "codeberg.org/snonux/gos/internal/types"
-type pendingEntries []types.EntryID
+type pendingEntries map[types.EntryID]struct{}
// Keep track of pending entries per social platform
type pending struct {
@@ -14,8 +14,12 @@ func newPending() pending {
}
func (p pending) add(platform types.PlatformName, id types.EntryID) {
- pe, _ := p.get(platform)
- p.platforms[platform] = append(pe, id)
+ pe, ok := p.get(platform)
+ if !ok {
+ pe = make(pendingEntries)
+ }
+ pe[id] = struct{}{}
+ p.platforms[platform] = pe
}
func (p pending) get(platform types.PlatformName) (pendingEntries, bool) {
diff --git a/internal/server/repository/pending_test.go b/internal/server/repository/pending_test.go
index f149856..16d0d39 100644
--- a/internal/server/repository/pending_test.go
+++ b/internal/server/repository/pending_test.go
@@ -17,10 +17,8 @@ func TestPendingAdd(t *testing.T) {
t.Error("expected no entries")
}
- // TODO REFACTOR: Use constants for types.PlatformName's
- // TODO REFACTOR: Don't use a type alias for types.PlatformName anymore, but an own type.
- pending.add(types.LinkedIn, "foo")
- pending.add(types.LinkedIn, "bar")
+ pending.add(types.LinkedIn, "fooid")
+ pending.add(types.LinkedIn, "barid")
entries, ok = pending.get(types.LinkedIn)
if !ok {