diff --git a/database/getOrCreateValueType.go b/database/getOrCreateValueType.go new file mode 100644 index 0000000000000000000000000000000000000000..c8d85a7838d8ee862572973057b4699a377637a6 --- /dev/null +++ b/database/getOrCreateValueType.go @@ -0,0 +1,30 @@ +package database + +import ( + "gorm.io/gorm" + "jonasled.dev/jonasled/ems-esp-logger/database/tables" + "jonasled.dev/jonasled/ems-esp-logger/log" +) + +func getOrCreateValueType(name string) tables.ValueType { + var valueType tables.ValueType + err := Db.Where("name = ?", name).First(&valueType).Error + + if err != nil { + if err == gorm.ErrRecordNotFound { + // Create a new instance if it doesn't exist + valueType = tables.ValueType{ + Name: name, + } + if err := Db.Create(&valueType).Error; err != nil { + log.Log.Fatalf("Failed to create value type: %v", err) + } + log.Log.Infof("Created new value type: %+v\n", valueType) + } else { + log.Log.Errorf("Failed to query database: %v", err) + } + } + + return valueType + +}