From b424a1a17315e276732c630712a1b75a923a9535 Mon Sep 17 00:00:00 2001 From: Jonas Leder <jonas@jonasled.de> Date: Sun, 26 Jan 2025 14:00:23 +0100 Subject: [PATCH] add function to get a valueType --- database/getOrCreateValueType.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 database/getOrCreateValueType.go diff --git a/database/getOrCreateValueType.go b/database/getOrCreateValueType.go new file mode 100644 index 0000000..c8d85a7 --- /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 + +} -- GitLab