diff --git a/design/design.go b/design/design.go index 5ac91e87e715bbdbd1946381a1eaabda5b9dc4a2..1b8d82d949afcf60654a2bf2251d6690e66ecdca 100644 --- a/design/design.go +++ b/design/design.go @@ -41,10 +41,10 @@ var _ = Service("cache", func() { Description("Cache service allows storing and retrieving data from distributed cache.") Method("Get", func() { - Description("Get value from the cache. The result is a sequence of bytes which the client must decode.") + Description("Get JSON value from the cache.") Payload(CacheGetRequest) - Result(Bytes) + Result(Any) HTTP(func() { GET("/v1/cache") diff --git a/internal/clients/redis/client.go b/internal/clients/redis/client.go index 0b1f1c993de879d277aa217a2876cb5dd7571375..fbe9f5240a879a114e59e4a3d840ec285067998e 100644 --- a/internal/clients/redis/client.go +++ b/internal/clients/redis/client.go @@ -31,7 +31,7 @@ func New(addr, user, pass string, db int, defaultTTL time.Duration) *Client { } } -func (c *Client) Get(ctx context.Context, key string) ([]byte, error) { +func (c *Client) Get(ctx context.Context, key string) (interface{}, error) { result := c.rdb.Get(ctx, key) if result.Err() != nil { if result.Err() == redis.Nil { @@ -39,7 +39,7 @@ func (c *Client) Get(ctx context.Context, key string) ([]byte, error) { } return nil, result.Err() } - return []byte(result.Val()), nil + return result.Val(), nil } func (c *Client) Set(ctx context.Context, key string, value []byte, ttl time.Duration) error { diff --git a/internal/service/cache/service.go b/internal/service/cache/service.go index ee824a4c989d4542273e2f334d20e62c1c852a76..7c4357f97ebbc3de9daba45752af072d0d2e5686 100644 --- a/internal/service/cache/service.go +++ b/internal/service/cache/service.go @@ -13,7 +13,7 @@ import ( ) type Cache interface { - Get(ctx context.Context, key string) ([]byte, error) + Get(ctx context.Context, key string) (interface{}, error) Set(ctx context.Context, key string, value []byte, ttl time.Duration) error } @@ -29,7 +29,7 @@ func New(cache Cache, logger *zap.Logger) *Service { } } -func (s *Service) Get(ctx context.Context, req *cache.CacheGetRequest) ([]byte, error) { +func (s *Service) Get(ctx context.Context, req *cache.CacheGetRequest) (interface{}, error) { var operation = zap.String("operation", "get") if req.Key == "" || req.Namespace == "" || req.Scope == "" { s.logger.Error("bad request: missing key or namespace or scopes", operation)