repository

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Oct 8, 2023 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// - General errors
	ErrUnknown = errors.New("error unknown")

	// - User errors
	ErrCreatingUser       = errors.New("error creating user")
	ErrUpdatingUser       = errors.New("error updating user")
	ErrGettingUser        = errors.New("error getting user")
	ErrUserAlreadyDeleted = errors.New("error, user already deleted")
)

Functions

This section is empty.

Types

type Database

type Database struct {
	DB *gorm.DB
}

func NewDatabase

func NewDatabase(config config.DatabaseConfig, logger logger.LoggerI) Database

func (*Database) Close

func (database *Database) Close()

func (*Database) Migrate

func (database *Database) Migrate()

func (*Database) Purge

func (database *Database) Purge()

func (*Database) Setup

func (database *Database) Setup(config config.DatabaseConfig, logger logger.LoggerI)

type DatabaseInterface added in v1.2.0

type DatabaseInterface interface {
	Setup(config config.DatabaseConfig, logger *logrus.Logger)
	Purge()
	Migrate()
	Close()
}

type Repository

type Repository struct {
	Database Database
}

func NewRepository

func NewRepository(database Database) *Repository

func (*Repository) CreateUser

func (r *Repository) CreateUser(user models.User) (models.User, error)

CreateUser creates a user on the database. Id, username and email are unique

func (*Repository) DeleteUser

func (r *Repository) DeleteUser(id int) (user models.User, err error)

DeleteUser marks a user as deleted on the database, if it is already deleted it throws an error

func (*Repository) GetUser

func (r *Repository) GetUser(user models.User, onlyNonDeleted bool) (models.User, error)

GetUser retrieves a user from the database, if it exists

func (*Repository) UpdateUser

func (r *Repository) UpdateUser(user models.User) (models.User, error)

UpdateUser updates the user on the database, skipping fields that are empty

func (*Repository) UserExists

func (r *Repository) UserExists(email, username string, onlyNonDeleted bool) bool

UserExists checks if a user exists on the database

type RepositoryLayer added in v1.2.0

type RepositoryLayer interface {
	CreateUser(user models.User) (models.User, error)
	UpdateUser(user models.User) (models.User, error)
	GetUser(user models.User, onlyNonDeleted bool) (models.User, error)
	UserExists(email, username string, onlyNonDeleted bool) bool
	DeleteUser(id int) (models.User, error)
}

type RepositoryMock

type RepositoryMock struct {
	*mock.Mock
}

func NewRepositoryMock

func NewRepositoryMock() *RepositoryMock

func (*RepositoryMock) CreateUser

func (m *RepositoryMock) CreateUser(user models.User) (models.User, error)

func (*RepositoryMock) DeleteUser

func (m *RepositoryMock) DeleteUser(id int) (models.User, error)

func (*RepositoryMock) GetUser

func (m *RepositoryMock) GetUser(user models.User, onlyNonDeleted bool) (models.User, error)

func (*RepositoryMock) UpdateUser

func (m *RepositoryMock) UpdateUser(user models.User) (models.User, error)

func (*RepositoryMock) UserExists

func (m *RepositoryMock) UserExists(email, username string, onlyNonDeleted bool) bool

Jump to

Keyboard shortcuts

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