2025-10-15 10:43:58 -04:00

41 lines
930 B
Go

package config
import (
"context"
"fmt"
"log"
"time"
"github.com/redis/go-redis/v9"
)
type RedisManager struct {
redis *redis.Client
}
func NewRedisManager(redis *redis.Client) *RedisManager {
return &RedisManager{
redis: redis,
}
}
func (pm *RedisManager) GetRawValue(ctx context.Context, codigo string) (string, error) {
val, err := pm.redis.Get(ctx, codigo).Result()
if err == redis.Nil {
return "", fmt.Errorf("clave no encontrada en Redis: %s", codigo)
} else if err != nil {
return "", err
}
return val, nil
}
func (pm *RedisManager) UpdateParam(ctx context.Context, codigo string, nuevoValor string, expiration time.Duration) error {
err := pm.redis.Set(ctx, codigo, nuevoValor, expiration).Err()
if err != nil {
return fmt.Errorf("error actualizando parámetro en Redis [%s]: %w", codigo, err)
}
log.Printf("🔄 Parámetro actualizado en Redis: %s = %s", codigo, nuevoValor)
return nil
}