postgres

package
v0.0.0-...-4b11596 Latest Latest
Warning

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

Go to latest
Published: Jan 27, 2023 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func New

func New(conf *driver.Config) (storage.Storage, error)

New возвращает новый Storage

func NewDB

func NewDB(db *driver.Storage) (storage.Storage, error)

Types

type File

type File struct {
	// NamespaceID это идентификатор пространства с файлами
	NamespaceID id.NamespaceID `gorm:"column:namespace_id"`

	// FileID это идентификатор файла внутри пространства с файлами
	FileID id.FileID `gorm:"column:file_id"`

	// Name это название файла в рамках окружения
	Name string `gorm:"column:file_name"`

	// Servers это перечень серверов на которых хранятся части файла
	Servers pq.StringArray `gorm:"column:servers;type:varchar(1000)[]"`

	// Enabled это общий выключатель файла для всех
	Enabled bool `gorm:"column:enabled"`

	// CreatorID это идентификатор субъекта который создал запись
	CreatorID id.SubjectID `gorm:"column:creator_id"`

	// CreatorType это тип субъекта создавшего запись
	CreatorType subjects.Type `gorm:"column:creator_type"`

	// CreatedAt это дата создания записи
	CreatedAt time.Time `gorm:"column:created_at"`

	// UpdaterID это идентификатор субъекта который последним обновил запись
	UpdaterID id.SubjectID `gorm:"column:updater_id"`

	// UpdaterType это тип субъекта обновившего запись последним
	UpdaterType subjects.Type `gorm:"column:updater_type"`

	// UpdatedAt это дата последнего обновления информации
	UpdatedAt time.Time `gorm:"column:updated_at"`
}

File это описание объекта файла на стороне базы данных

func (*File) GetServers

func (f *File) GetServers() ([]id.ServerID, error)

func (*File) SetServers

func (f *File) SetServers(servers []id.ServerID)

func (*File) TableName

func (f *File) TableName() string

TableName это реализация интерфейса gorm.Tabler

type Storage

type Storage struct {
	*driver.Storage
	// contains filtered or unexported fields
}

Storage это реализация хранилища

func (*Storage) Add

func (s *Storage) Add(file *files.File) error

Add добавляет информацию о файле

func (*Storage) Delete

func (s *Storage) Delete(
	namespaceID id.NamespaceID,
	fileID id.FileID,
	updater id.Subject,
) error

Delete удаляет информацию о файле

func (*Storage) Disable

func (s *Storage) Disable(
	namespaceID id.NamespaceID,
	fileID id.FileID,
	updater id.Subject,
) error

Disable выключает файл для всех

func (*Storage) Enable

func (s *Storage) Enable(
	namespaceID id.NamespaceID,
	fileID id.FileID,
	updater id.Subject,
) error

Enable включает файлн для использования

func (*Storage) Flush

func (s *Storage) Flush(t *testing.T) error

Flush отчищает базу данных для запуска изолированного теста

func (*Storage) Get

func (s *Storage) Get(
	namespaceID id.NamespaceID,
	fileID id.FileID,
) (
	*files.File,
	error,
)

Get возвращает информацию о файле

func (*Storage) List

func (s *Storage) List() (
	*[]files.File,
	error,
)

List возвращает информацию обо всех файлах

func (*Storage) Tx

func (s *Storage) Tx() storage.Tx

Tx возвращает хранилище внутри транзакции

type Tx

type Tx struct {
	Storage
}

Tx это реализация хранилища внутри транзакции

func (*Tx) Commit

func (tx *Tx) Commit() error

Commit фиксирует транзакцию

func (*Tx) Rollback

func (tx *Tx) Rollback()

Rollback откатывает транзакцию

Jump to

Keyboard shortcuts

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