This commit is contained in:
Eden Kirin
2024-06-18 22:01:31 +02:00
commit 21dcabe180
21 changed files with 1039 additions and 0 deletions

View File

@ -0,0 +1,39 @@
package helpers
import (
"reflect"
"gorm.io/gorm"
)
type Factory struct {
dbConn *gorm.DB
}
func NewFactory(dbConn *gorm.DB) *Factory {
return &Factory{
dbConn: dbConn,
}
}
func (f *Factory) CreateModel(model interface{}) {
if f.dbConn == nil {
panic("Factory created without db connection. Unable to create model.")
}
f.dbConn.Create(model)
}
func MergeValuesToModel(model interface{}, values map[string]any) {
st := reflect.ValueOf(model).Elem()
for key, value := range values {
field := st.FieldByName(key)
var v reflect.Value
if value != nil {
v = reflect.ValueOf(value)
} else {
v = reflect.Zero(field.Type())
}
field.Set(v)
}
}