Skip to content
Snippets Groups Projects
getOrCreateValueType.go 727 B
Newer Older
  • Learn to ignore specific revisions
  • 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
    
    }