repository

package
v0.0.0-...-2436070 Latest Latest
Warning

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

Go to latest
Published: Jul 3, 2021 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const NOTATION = 62

NOTATION - основание целевой системы счисления, использующей 0-9a-zA-Z

Variables

This section is empty.

Functions

func FileExists

func FileExists(dataSourceName string) bool

func FileOverSized

func FileOverSized(dataSourceName string, maxFileSize int64) bool

func NewSqlite3DB

func NewSqlite3DB(config Config) (*sql.DB, error)

NewSqlite3DB - конструктор

Types

type Config

type Config struct {
	DriverName     string
	DataSourceName string
	MaxFileSize    int64 // максимальный размер файла, после которого произойдет его пересоздание
}

Config - конфигурация БД

type Convert

type Convert struct {
	Notation map[int64]rune
}

Convert - конвертер 10-чной системы счисления в 62-ричную

func NewConvert

func NewConvert() *Convert

NewConvert - конструктор

func (*Convert) Convert

func (n *Convert) Convert(number int64) string

Convert - перевод 10-чной системы счисления в 62-ричную: 0-9a-zA-Z Чтобы не псиать самому метод перевода, воспользуемся реализацией пакета "big"

type Link interface {
	Create(longLink string) (shorter.UserLink, error)
	Long(shortLink string) (shorter.UserLink, error)
}

Link - последний (третий) уровень "луковой архитектуры" выполняет работу с БД

type LinkSqlite3

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

LinkSqlite3 - структура, содержащая ссылку на БД и конвертер системы счисления конвертер используется при каждой записи длинной ссылки в таблицу для декодирования ее в короткую

func NewLinkSqlite3

func NewLinkSqlite3(db *sql.DB) *LinkSqlite3

NewLinkSqlite3 - конструктор структуры БД

func (*LinkSqlite3) Create

func (l *LinkSqlite3) Create(longLink string) (shorter.UserLink, error)

Create - запись длинной ссылки в БД с ее конвертацией в короткую

func (*LinkSqlite3) Long

func (l *LinkSqlite3) Long(shortLink string) (shorter.UserLink, error)

Long - получение длинной ссылки по ее короткой версии

type Repository

type Repository struct {
	Link
}

Repository - репозиторий

func NewRepository

func NewRepository(db *sql.DB) *Repository

NewRepository - конструктор

Jump to

Keyboard shortcuts

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