storage

package
v0.0.0-...-078eab7 Latest Latest
Warning

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

Go to latest
Published: Mar 18, 2023 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

Package storage contains all about storage.

Index

Constants

View Source
const (
	PGxDriverName = "pgx"
	// SqliteDriverName sqlite driver.
	SqliteDriverName = "sqlite"
)

Driver name variants.

Variables

View Source
var ErrDupOriginalURL = errors.New("duplicated original url")

ErrDupOriginalURL error when original url is duplicated.

Functions

func NewDuplicateError

func NewDuplicateError(newRecord *btypes.Record, alreadyRecord *btypes.Record) error

NewDuplicateError create new duplicate error.

Types

type DuplicateError

type DuplicateError struct {
	Err           error
	NewRecord     *btypes.Record
	AlreadyRecord *btypes.Record
}

DuplicateError custom error for situation when original url is duplicated.

func (*DuplicateError) Error

func (de *DuplicateError) Error() string

Error return error.

func (*DuplicateError) Unwrap

func (de *DuplicateError) Unwrap() error

Unwrap make unwrap.

type Storage

type Storage interface {
	TruncateRecords() error
	PutSecretKey(secretKey []byte) error
	GetSecretKey() (secretKey []byte, err error)
	PutRecord(r *btypes.Record) error
	PutRecords(r []*btypes.Record) error
	GetRecord(key string) (r *btypes.Record, err error)
	GetAllUserRecords(user btypes.User) (userKey2Record map[string]*btypes.Record, err error)
	DeleteUserRecords(user btypes.User, recordKeys []string) error
	Ping() error
}

Storage is main interface for storage.

func NewDBStorage

func NewDBStorage(driverName string, dsn string) (ret Storage, err error)

NewDBStorage create new db storage.

func NewInFileDBStorage

func NewInFileDBStorage(filePath string) (ret Storage, err error)

NewInFileDBStorage create new in file db storage.

func NewInMemoryDBStorage

func NewInMemoryDBStorage() (ret Storage, err error)

NewInMemoryDBStorage create new in memory db storage.

Jump to

Keyboard shortcuts

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