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