shortner

package
v0.0.0-...-2a4de96 Latest Latest
Warning

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

Go to latest
Published: May 3, 2020 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	NoExpiration      = 0
	ErrFailedToSearch = "key: %v err: %s - repository.Redis.Find"
	ErrDataNotFound   = "key: %v not found - repository.Redis.Find"
	ErrFailedToStore  = "key: %v err: %s failed to store - repository.Redis.Store"
)
View Source
const (
	ErrInvalidRedirect = "%s service.redirect.store"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Redirect

type Redirect struct {
	Code      uint64    `json:"code"`
	URL       string    `json:"url"`
	CreatedAt time.Time `json:"created_at"`
}

type Repository

type Repository interface {
	Find(code interface{}) (*Redirect, error)
	Store(redirect *Redirect) error
}

func NewRepository

func NewRepository(client *redis.Client, serializer Serializer.Serializer) Repository

type Service

type Service interface {
	NewRedirect(url string) (*Redirect, error)
	NewRedirectIoReader(data io.Reader) (*Redirect, error)
	Encode(redirect *Redirect) ([]byte, error)
	Find(code interface{}) (*Redirect, error)
	Store(redirect *Redirect) error
}

func NewService

func NewService(repository Repository, usecases UseCases) Service

type UseCases

type UseCases interface {
	NewRedirect(url string) (*Redirect, error)
	NewRedirectIoReader(data io.Reader) (*Redirect, error)
	Encode(redirect *Redirect) ([]byte, error)
	Validate(redirect *Redirect) error
}

func NewUseCases

func NewUseCases(codeGenerator *sonyflake.Sonyflake, serializer Serializer.Serializer) UseCases

Jump to

Keyboard shortcuts

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