diff --git a/backend/internal/redisClient/redisClient.go b/backend/internal/redisClient/redisClient.go new file mode 100644 index 0000000..663103b --- /dev/null +++ b/backend/internal/redisClient/redisClient.go @@ -0,0 +1,45 @@ +// Copyright (c) 2025 Nikolai Papin +// +// This file is part of Easywish +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See +// the GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +package redisclient + +import ( + "context" + "easywish/config" + + "github.com/go-redis/redis/v8" +) + +func NewRedisClient() *redis.Client { + + cfg := config.GetConfig() + + options, err := redis.ParseURL(cfg.RedisUrl) + + if err != nil { + panic("Failed to parse redis URL: " + err.Error()) + } + + client := redis.NewClient(options) + + ctx := context.Background() + if err := client.Ping(ctx).Err(); err != nil { + panic("Redis connection failed: " + err.Error()) + } + + return client +}