From 99cac5f4641bbff513abb41bc444d4424451d602 Mon Sep 17 00:00:00 2001 From: Maksym Pavlenko Date: Sun, 20 Aug 2017 18:49:50 -0700 Subject: [PATCH] Rework feed creation in Redis --- pkg/storage/redis.go | 39 +++++++++++++++++++++++++-------------- pkg/storage/redis_test.go | 2 -- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/pkg/storage/redis.go b/pkg/storage/redis.go index 816acda..1c08281 100644 --- a/pkg/storage/redis.go +++ b/pkg/storage/redis.go @@ -1,7 +1,6 @@ package storage import ( - "encoding/json" "fmt" "strconv" "strings" @@ -80,15 +79,6 @@ func (r *RedisStorage) GetFeed(hashId string) (*api.Feed, error) { m[strings.ToLower(key)] = val } - j, ok := m["json"] - if ok { - if err := json.Unmarshal([]byte(j), feed); err != nil { - return nil, err - } - - return feed, nil - } - // Unpack provider and link type provider := m["provider"] linkType := m["type"] @@ -152,6 +142,7 @@ func (r *RedisStorage) GetFeed(hashId string) (*api.Feed, error) { return nil, err } + feed.PageSize = pageSize feed.Format = format feed.Quality = quality @@ -159,12 +150,32 @@ func (r *RedisStorage) GetFeed(hashId string) (*api.Feed, error) { } func (r *RedisStorage) CreateFeed(feed *api.Feed) error { - raw, err := json.Marshal(feed) - if err != nil { - return err + fields := map[string]interface{}{ + "provider": string(feed.Provider), + "type": string(feed.LinkType), + "id": feed.ItemId, + "patreonid": feed.UserId, + "pagesize": feed.PageSize, + } + + if feed.Format == api.VideoFormat { + + if feed.Quality == api.HighQuality { + fields["quality"] = "VideoHigh" + } else { + fields["quality"] = "VideoLow" + } + + } else { + + if feed.Quality == api.HighQuality { + fields["quality"] = "AudioHigh" + } else { + fields["quality"] = "AudioLow" + } + } - fields := map[string]interface{}{"json": string(raw)} if err := r.client.HMSet(feed.HashId, fields).Err(); err != nil { return errors.Wrap(err, "failed to save feed") } diff --git a/pkg/storage/redis_test.go b/pkg/storage/redis_test.go index 579720b..5075258 100644 --- a/pkg/storage/redis_test.go +++ b/pkg/storage/redis_test.go @@ -38,7 +38,6 @@ func TestRedisStorage_CreateFeed(t *testing.T) { hashId := strconv.FormatInt(time.Now().UTC().UnixNano(), 10) err := client.CreateFeed(&api.Feed{ - Id: 123, HashId: hashId, UserId: "321", Provider: api.Youtube, @@ -54,7 +53,6 @@ func TestRedisStorage_CreateFeed(t *testing.T) { feed, err := client.GetFeed(hashId) require.NoError(t, err) - require.Equal(t, int64(123), feed.Id) require.Equal(t, hashId, feed.HashId) require.Equal(t, "321", feed.UserId) require.Equal(t, api.Youtube, feed.Provider)