From 9d466ddab01412fe09ce3dfd0b3c1d23527211cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franc=C3=A9=20Wilke?= <francewilke@gmail.com> Date: Wed, 29 Nov 2023 11:57:43 +0200 Subject: [PATCH] Add Redis function GetObjectByKey --- redis/redis.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/redis/redis.go b/redis/redis.go index b5c392b..86958ed 100644 --- a/redis/redis.go +++ b/redis/redis.go @@ -177,6 +177,27 @@ func (r ClientWithHelpers) SetObjectByKeyIndefinitely(key string, object interfa } +func GetObjectByKey[T any](redisClient *ClientWithHelpers, key string, object T) *T { + // Make sure we have a Redis client, and it is connected + if redisClient == nil || !redisClient.IsConnected() { + return nil + } + + // Get the object from Redis + jsonString := redisClient.GetValueByKey(key) + if jsonString == "" { + return nil + } + + // Now unmarshal + err := json.Unmarshal([]byte(jsonString), &object) + if err != nil { + return nil + } + + return &object +} + func (r ClientWithHelpers) GetValueByKey(key string) string { if !r.IsConnected() { return "" -- GitLab