From e012a4e256e5dab4b37c5af318fa5faf1eb55910 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Thu, 12 Sep 2024 10:37:26 +0300 Subject: use a map for the pending entries --- internal/server/repository/pending.go | 10 +++++++--- internal/server/repository/pending_test.go | 6 ++---- 2 files changed, 9 insertions(+), 7 deletions(-) (limited to 'internal') 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 { -- cgit v1.2.3