33 lines
648 B
Go

package cachingsvc
import (
"context"
"encoding/json"
cachingdomain "legalgo-BE-go/internal/domain/caching"
"legalgo-BE-go/internal/utilities/response"
"github.com/sirupsen/logrus"
)
func (i *impl) Set(ctx context.Context, spec cachingdomain.CacheSpec) error {
redisClient := i.redisClient
if redisClient == nil {
logrus.WithContext(ctx).Errorf("redis not found")
return response.ErrRedisConnNotFound
}
dataBytes, err := json.Marshal(spec.Data)
if err != nil {
return response.ErrMarshal
}
if err := redisClient.Set(ctx, spec.Key, string(dataBytes), spec.TTL); err != nil {
return response.ErrRedisSet
}
return nil
}