storage

package
v0.2.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 13, 2022 License: MIT Imports: 3 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrInternal = errors.New("internal storage error")

Functions

This section is empty.

Types

type CardRepo

type CardRepo interface {
	Repo[domain.Card]

	ListAllInDeck(ctx context.Context, deck domain.Deck) ([]domain.Card, error)

	FindAll(ctx context.Context, word, translation string) ([]domain.Card, error)
	FindAllInDeck(ctx context.Context, word, translation string, deck domain.Deck) ([]domain.Card, error)
	FindAllByWord(ctx context.Context, word string) ([]domain.Card, error)
	FindAllByWordInDeck(ctx context.Context, word string, deck domain.Deck) ([]domain.Card, error)

	FilterInDeck(ctx context.Context, filterFunc func(domain.Card) bool, deck domain.Deck) ([]domain.Card, error)

	DeleteAllInDeck(ctx context.Context, deck domain.Deck) error
}

type DeckRepo

type DeckRepo interface {
	Repo[domain.Deck]
}

type Repo

type Repo[T any] interface {
	ListAll(ctx context.Context) ([]T, error)
	Find(ctx context.Context, findFunc func(T) bool) (*T, error)
	Filter(ctx context.Context, filterFunc func(T) bool) ([]T, error)

	Save(ctx context.Context, item T) (*T, error)

	Delete(ctx context.Context, item T) error
}

type Storage

type Storage struct {
	// contains filtered or unexported fields
}

Storage stores repo implementations.

func NewStorage

func NewStorage(cardRepo CardRepo, deckRepo DeckRepo) *Storage

NewStorage returns storage of repo implementations.

It is supposed to be used by repo implementations to pass them.

func (Storage) GetCardRepo

func (s Storage) GetCardRepo() CardRepo

GetCardRepo implementation.

func (Storage) GetDeckRepo

func (s Storage) GetDeckRepo() DeckRepo

GetDeckRepo implementation.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL