From 35f478e24c81d376436e33002ac0a80433fff9e1 Mon Sep 17 00:00:00 2001 From: Vargha Csongor Date: Sun, 14 Apr 2024 11:15:01 +0200 Subject: [PATCH] create memgraph db connection --- backend/go.mod | 1 + backend/go.sum | 2 ++ backend/main.go | 51 ++----------------------------- backend/memgraph/init_database.go | 22 +++++++++++++ 4 files changed, 28 insertions(+), 48 deletions(-) create mode 100644 backend/memgraph/init_database.go diff --git a/backend/go.mod b/backend/go.mod index b7df6ff..0bf577f 100644 --- a/backend/go.mod +++ b/backend/go.mod @@ -23,6 +23,7 @@ require ( 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 + github.com/neo4j/neo4j-go-driver/v5 v5.19.0 // indirect github.com/pelletier/go-toml/v2 v2.2.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go/codec v1.2.12 // indirect diff --git a/backend/go.sum b/backend/go.sum index aaff72d..c713462 100644 --- a/backend/go.sum +++ b/backend/go.sum @@ -46,6 +46,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/neo4j/neo4j-go-driver/v5 v5.19.0 h1:v2cB19fZQYz1xmj6EZXofFHD/+Tj16hH/OOp39uNN1I= +github.com/neo4j/neo4j-go-driver/v5 v5.19.0/go.mod h1:Vff8OwT7QpLm7L2yYr85XNWe9Rbqlbeb9asNXJTHO4k= github.com/pelletier/go-toml/v2 v2.2.0 h1:QLgLl2yMN7N+ruc31VynXs1vhMZa7CeHHejIeBAsoHo= github.com/pelletier/go-toml/v2 v2.2.0/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/backend/main.go b/backend/main.go index cb60a60..dc1a2b8 100644 --- a/backend/main.go +++ b/backend/main.go @@ -2,12 +2,8 @@ package main import ( "context" - "errors" "flag" - "fmt" - "io" "log" - "net/http" "os" "os/signal" "syscall" @@ -34,56 +30,15 @@ func main() { if *release { gin.SetMode(gin.ReleaseMode) } - if *logToFileAndStd || *logToFile { - gin.DisableConsoleColor() // Disable Console Color, you don't need console color when writing the logs to file. - path := fmt.Sprintf("private/logs/%02dy_%02dm_%02dd_%02dh_%02dm_%02ds.log", time.Now().Year(), time.Now().Month(), time.Now().Day(), time.Now().Hour(), time.Now().Minute(), time.Now().Second()) - logerror1 := os.MkdirAll("private/logs/", 0755) - f, logerror2 := os.Create(path) - if logerror1 != nil || logerror2 != nil { - log.Println("Cant log to file") - } else if *logToFileAndStd { - gin.DefaultWriter = io.MultiWriter(f, os.Stdout) - } else { - gin.DefaultWriter = io.MultiWriter(f) - } - } - log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile) - log.SetOutput(gin.DefaultErrorWriter) + + utilities.SetupLogger(*logToFileAndStd, *logToFile) hc := gin_liveness.New() router := gin.Default() router.GET("/health", hc.HealthCheckHandler()) - var server *http.Server - - if utilities.FileExists(*cert) && utilities.FileExists(*key) { - server = &http.Server{ - Addr: *httpsPort, - Handler: router, - ReadTimeout: 5 * time.Second, - WriteTimeout: 10 * time.Second, - } - go func() { - log.Println("Server starts at port ", *httpsPort) - if err := server.ListenAndServeTLS(*cert, *key); err != nil && errors.Is(err, http.ErrServerClosed) { - log.Fatal(err) - } - }() - } else { - server = &http.Server{ - Addr: *httpPort, - Handler: router, - ReadTimeout: requestTimeout * time.Second, - WriteTimeout: requestTimeout * time.Second, - } - go func() { - log.Println("Server starts at port ", *httpPort) - if err := server.ListenAndServe(); err != nil && errors.Is(err, http.ErrServerClosed) { - log.Fatal(err) - } - }() - } + server := utilities.SetupHttpsServer(router, *cert, *key, *httpsPort, *httpPort, requestTimeout) // Wait for interrupt signal to gracefully shutdown the server with some time to finish requests. quit := make(chan os.Signal, 1) diff --git a/backend/memgraph/init_database.go b/backend/memgraph/init_database.go new file mode 100644 index 0000000..91df921 --- /dev/null +++ b/backend/memgraph/init_database.go @@ -0,0 +1,22 @@ +package memgraph + +import ( + "context" + + "github.com/neo4j/neo4j-go-driver/v5/neo4j" +) + +func InitDatabase(dbUri, dbUser, dbPassword string) error { + driver, err := neo4j.NewDriverWithContext(dbUri, neo4j.BasicAuth(dbUser, dbPassword, "")) + if err != nil { + return err + } + ctx := context.Background() + defer driver.Close(ctx) + + err = driver.VerifyConnectivity(ctx) + if err != nil { + panic(err) + } + +}