Merge pull request 'Add redis connection test before start' (#29) from ada/redis-ping into main

Reviewed-on: #29
This commit is contained in:
Ada 2024-02-22 11:55:34 +00:00
commit 849a4ff44e
3 changed files with 21 additions and 0 deletions

View file

@ -32,6 +32,15 @@ func ConnectDB(dbConfig *redis.Options) *redis.Client {
return localDb return localDb
} }
// Ping test connection to Redis database
func Ping(db *redis.Client) error {
status := db.Ping(ctx)
if status.String() != "ping: PONG" {
return &PingError{}
}
return nil
}
func (config DBConfig) InsertPaste(key string, content string, secret string, ttl time.Duration) { func (config DBConfig) InsertPaste(key string, content string, secret string, ttl time.Duration) {
type dbSchema struct { type dbSchema struct {
content string content string

View file

@ -0,0 +1,7 @@
package database
type PingError struct{}
func (m *PingError) Error() string {
return "Connection to redis not work"
}

View file

@ -2,6 +2,7 @@ package main
import ( import (
"embed" "embed"
"log"
"git.gnous.eu/gnouseu/plakken/internal/config" "git.gnous.eu/gnouseu/plakken/internal/config"
"git.gnous.eu/gnouseu/plakken/internal/database" "git.gnous.eu/gnouseu/plakken/internal/database"
@ -19,6 +20,10 @@ func main() {
initConfig := config.GetConfig() initConfig := config.GetConfig()
dbConfig := database.InitDB(initConfig.RedisAddress, initConfig.RedisUser, initConfig.RedisPassword, initConfig.RedisDB) dbConfig := database.InitDB(initConfig.RedisAddress, initConfig.RedisUser, initConfig.RedisPassword, initConfig.RedisDB)
db := database.ConnectDB(dbConfig) db := database.ConnectDB(dbConfig)
err := database.Ping(db)
if err != nil {
log.Fatal(err)
}
serverConfig := httpServer.ServerConfig{ serverConfig := httpServer.ServerConfig{
HTTPServer: httpServer.Config(initConfig.ListenAddress), HTTPServer: httpServer.Config(initConfig.ListenAddress),