This commit is contained in:
Miroslav Misek 2025-03-28 08:50:07 +01:00
parent 01cd6d8e01
commit 3e9ac30812
4 changed files with 57 additions and 2 deletions

1
.idea/database.iml generated
View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4"> <module type="WEB_MODULE" version="4">
<component name="Go" enabled="true" />
<component name="NewModuleRootManager"> <component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" /> <content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />

45
config_builder.go Normal file
View File

@ -0,0 +1,45 @@
package database
type ConfigBuilder struct {
config *Config
}
func NewConfigBuilder() *ConfigBuilder {
return &ConfigBuilder{
config: NewConfig(),
}
}
func (cb *ConfigBuilder) DSN(dsn string) *ConfigBuilder {
cb.config.DSN = dsn
return cb
}
func (cb *ConfigBuilder) MaxIdleConns(maxIdleConns int) *ConfigBuilder {
cb.config.MaxIdleConns = maxIdleConns
return cb
}
func (cb *ConfigBuilder) MaxOpenConns(maxOpenConns int) *ConfigBuilder {
cb.config.MaxOpenConns = maxOpenConns
return cb
}
func (cb *ConfigBuilder) ConnMaxLifetime(connMaxLifetime int) *ConfigBuilder {
cb.config.ConnMaxLifetime = connMaxLifetime
return cb
}
func (cb *ConfigBuilder) AutoMigrate(autoMigrate bool) *ConfigBuilder {
cb.config.AutoMigrate = autoMigrate
return cb
}
func (cb *ConfigBuilder) ShowSQL(showSql bool) *ConfigBuilder {
cb.config.ShowSql = showSql
return cb
}
func (cb *ConfigBuilder) Build() *Config {
return cb.config
}

2
go.mod
View File

@ -2,7 +2,7 @@ module netgarden.dev/maf/database
go 1.24.1 go 1.24.1
replace netgarden.dev/maf/maf => ../maf replace netgarden.dev/maf/maf => ../../maf/maf
require ( require (
github.com/satori/go.uuid v1.2.0 github.com/satori/go.uuid v1.2.0

View File

@ -10,7 +10,13 @@ import (
) )
func NewModule() *Module { func NewModule() *Module {
return &Module{} return NewModuleWithConfig(NewConfig())
}
func NewModuleWithConfig(config *Config) *Module {
return &Module{
config: config,
}
} }
type Module struct { type Module struct {
@ -32,6 +38,9 @@ func (m *Module) SetManager(manager *maf.Manager) {
} }
func (m *Module) CreateConfig() interface{} { func (m *Module) CreateConfig() interface{} {
if m.config != nil {
return m.config
}
return NewConfig() return NewConfig()
} }