package utils import ( "context" "fmt" "legalgo-BE-go/config" "time" "github.com/redis/go-redis/v9" ) func GetTokenRedis(ctx context.Context, rdb *redis.Client, id string) (string, error) { val, err := rdb.Get(ctx, "token-"+id).Result() switch { case err == redis.Nil: return "", fmt.Errorf("token does not exist") case err != nil: return "", err case val == "": return "", fmt.Errorf("token does not exist") } return val, nil } func StoreTokenRedis(ctx context.Context, rdb *redis.Client, token, id string) error { _, err := rdb.Get(ctx, "token-"+id).Result() if err != redis.Nil { // If there's an existing token, delete it (expire the previous session) if err := rdb.Del(ctx, "token-"+id).Err(); err != nil { return err } } // return rdb.Set(ctx context.Context, key string, value interface{}, expiration time.Duration) return rdb.Set(ctx, "token-"+id, token, time.Minute*time.Duration(config.REDIS_TIMEOUT)).Err() }