Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrFailedToConnectDatabase = errors.New("ERR_FAILED_TO_CONNECT_DATABASE") ErrFailedToMigrateDatabase = errors.New("ERR_FAILED_TO_MIGRATE_DATABASE") )
View Source
var ProviderSet = wire.NewSet( ProvideDSN, ProvideConnection, ProvideModels, ProvideDatabase, wire.Bind(new(DatabaseInterface), new(*Database)), wire.Bind(new(ModelsInterface), new(*Models)), )
ProviderSet is a wire provider set that provides the database connection.
Functions ¶
func ProvideConnection ¶
ProvideConnection provides a new database connection.
Types ¶
type Database ¶
type Database struct {
// contains filtered or unexported fields
}
Database is the database connection.
func NewDatabase ¶
func NewDatabase(conn *gorm.DB, models ModelsInterface) *Database
NewDatabase creates a new Database instance.
func ProvideDatabase ¶
func ProvideDatabase(conn *gorm.DB, models ModelsInterface) (*Database, error)
ProvideDatabase provides a new database connection.
func (*Database) Models ¶
func (d *Database) Models() ModelsInterface
Models returns the database models.
type DatabaseInterface ¶
type DatabaseInterface interface {
GetConn() *gorm.DB
Models() ModelsInterface
}
DatabaseInterface is the interface for the database.
type Models ¶
type Models struct {
// contains filtered or unexported fields
}
Models is a collection of all models in the database.
func NewModels ¶
func NewModels(users models.UserRepositoryInterface, posts models.PostRepositoryInterface, subscribers models.SubscriberRepositoryInterface, ) *Models
NewModels creates a new Models instance.
func (*Models) Posts ¶
func (m *Models) Posts() models.PostRepositoryInterface
Posts returns the models.PostRepository.
func (*Models) Subscribers ¶
func (m *Models) Subscribers() models.SubscriberRepositoryInterface
Subscribers returns the models.SubscriberRepository.
func (*Models) Users ¶
func (m *Models) Users() models.UserRepositoryInterface
Users returns the models.UserRepository.
type ModelsInterface ¶
type ModelsInterface interface {
Users() models.UserRepositoryInterface
Posts() models.PostRepositoryInterface
Subscribers() models.SubscriberRepositoryInterface
}
Click to show internal directories.
Click to hide internal directories.