33 lines
648 B
Go
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
|
|
}
|