From 13a1b2e3cd96d0de3956ef5c3288d95a234f7681 Mon Sep 17 00:00:00 2001 From: bel Date: Thu, 11 Apr 2024 23:04:25 -0600 Subject: [PATCH] dumb storage --- storage.go | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/storage.go b/storage.go index aaac7d0..c37a1fc 100644 --- a/storage.go +++ b/storage.go @@ -1,6 +1,13 @@ package main -import "context" +import ( + "context" + "errors" +) + +var ( + ErrNotFound = errors.New("not found") +) type Storage struct { driver Driver @@ -14,8 +21,17 @@ func NewStorage(driver Driver) Storage { return Storage{driver: driver} } -func (s Storage) Enqueue(ctx context.Context, m Message) error { +func (s Storage) Upsert(ctx context.Context, m Message) error { + return s.driver.Set(ctx, "storage", m.ID, m.Serialize()) } -func (s Storage) Dequeue(ctx context.Context, m Message) error { +func (s Storage) Get(ctx context.Context, id string) (Message, error) { + b, err := s.driver.Get(ctx, "storage", id) + if err != nil { + return Message{}, err + } + if b == nil { + return Message{}, ErrNotFound + } + return MustDeserialize(b), nil }