dumb storage
This commit is contained in:
22
storage.go
22
storage.go
@@ -1,6 +1,13 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import "context"
|
import (
|
||||||
|
"context"
|
||||||
|
"errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
ErrNotFound = errors.New("not found")
|
||||||
|
)
|
||||||
|
|
||||||
type Storage struct {
|
type Storage struct {
|
||||||
driver Driver
|
driver Driver
|
||||||
@@ -14,8 +21,17 @@ func NewStorage(driver Driver) Storage {
|
|||||||
return Storage{driver: driver}
|
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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user