From ddbbe10ec74d4804cbf0a2dfd6ecec4f8123a224 Mon Sep 17 00:00:00 2001 From: tsindt Date: Sat, 25 Jul 2026 18:10:43 +0200 Subject: [PATCH] =?UTF-8?q?Datenbank=20Init=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/src/scpq-editor-server/go.mod | 1 + .../server/src/scpq-editor-server/go.sum | 2 ++ .../server/src/scpq-editor-server/main.go | 7 ++--- .../src/scpq-editor-server/server/dbServer.go | 26 +++++++++++++++++++ .../scpq-editor-server/server/httpServer.go | 6 +++-- 5 files changed, 37 insertions(+), 5 deletions(-) create mode 100644 buildtime/server/src/scpq-editor-server/server/dbServer.go diff --git a/buildtime/server/src/scpq-editor-server/go.mod b/buildtime/server/src/scpq-editor-server/go.mod index 83a1f0fe6..a3ef2a0a9 100644 --- a/buildtime/server/src/scpq-editor-server/go.mod +++ b/buildtime/server/src/scpq-editor-server/go.mod @@ -20,6 +20,7 @@ require ( github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/cpuid/v2 v2.3.0 // indirect github.com/leodido/go-urn v1.4.0 // indirect + github.com/lib/pq v1.12.3 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect diff --git a/buildtime/server/src/scpq-editor-server/go.sum b/buildtime/server/src/scpq-editor-server/go.sum index d40dbae79..a98f0f1db 100644 --- a/buildtime/server/src/scpq-editor-server/go.sum +++ b/buildtime/server/src/scpq-editor-server/go.sum @@ -35,6 +35,8 @@ github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzh github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= +github.com/lib/pq v1.12.3 h1:tTWxr2YLKwIvK90ZXEw8GP7UFHtcbTtty8zsI+YjrfQ= +github.com/lib/pq v1.12.3/go.mod h1:/p+8NSbOcwzAEI7wiMXFlgydTwcgTr3OSKMsD2BitpA= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= diff --git a/buildtime/server/src/scpq-editor-server/main.go b/buildtime/server/src/scpq-editor-server/main.go index 3fbcd7050..1ca2e7d35 100644 --- a/buildtime/server/src/scpq-editor-server/main.go +++ b/buildtime/server/src/scpq-editor-server/main.go @@ -2,6 +2,7 @@ package main import ( "log" + _ "github.com/lib/pq" "scpq-editor-server/config" "scpq-editor-server/server" ) @@ -9,11 +10,11 @@ import ( func main() { log.Println("Starting Simply CPQ Editor Service") log.Println("Reading configuration") - c := config.InitConfig("config") + config := config.InitConfig("config") log.Println("Initializing database") - //dbHandler := server.InitDatabase(config) + dbHandler := server.InitDatabase(config) log.Println("Initializing HTTP server") - httpServer := server.InitHttpServer(c) + httpServer := server.InitHttpServer(config, dbHandler) httpServer.Start() log.Println("Service Stopped") diff --git a/buildtime/server/src/scpq-editor-server/server/dbServer.go b/buildtime/server/src/scpq-editor-server/server/dbServer.go new file mode 100644 index 000000000..c0608363c --- /dev/null +++ b/buildtime/server/src/scpq-editor-server/server/dbServer.go @@ -0,0 +1,26 @@ +package server + +import ( + "log" + "database/sql" + "github.com/spf13/viper" + _ "github.com/lib/pq" +) + +func InitDatabase(config *viper.Viper) *sql.DB { + connectionString := config.GetString("database.connection_string") + driverName := config.GetString("database.driver_name") + if connectionString == "" { + log.Fatalf("Database connection string is missing") + } + dbHandler, err := sql.Open(driverName, connectionString) + if err != nil { + log.Fatalf("Error while initializing database: %v", err) + } + err = dbHandler.Ping() + if err != nil { + dbHandler.Close() + log.Fatalf("Error while validating database: %v", err) + } + return dbHandler +} \ No newline at end of file diff --git a/buildtime/server/src/scpq-editor-server/server/httpServer.go b/buildtime/server/src/scpq-editor-server/server/httpServer.go index b16716562..95145d309 100644 --- a/buildtime/server/src/scpq-editor-server/server/httpServer.go +++ b/buildtime/server/src/scpq-editor-server/server/httpServer.go @@ -3,7 +3,7 @@ package server import ( "log" "net/http" - + "database/sql" "github.com/gin-gonic/gin" "github.com/spf13/viper" ) @@ -11,15 +11,17 @@ import ( type HttpServer struct { config *viper.Viper router *gin.Engine + dbHandler *sql.DB } -func InitHttpServer(config *viper.Viper) HttpServer { +func InitHttpServer(config *viper.Viper, dbHandler *sql.DB) HttpServer { // Service API router := gin.Default() router.GET("/test", Test) return HttpServer{ config: config, router: router, + dbHandler: dbHandler, } }