From 1fd2d80cb8ecfb8cde76ddb4e79eb940680ea741 Mon Sep 17 00:00:00 2001 From: Maksym Pavlenko Date: Sat, 6 Apr 2019 12:13:50 -0700 Subject: [PATCH] Fix timestamp serialization --- pkg/storage/dynamo.go | 15 +++++++++++---- pkg/storage/dynamo_test.go | 6 ++++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/pkg/storage/dynamo.go b/pkg/storage/dynamo.go index 87fb503..bcf3378 100644 --- a/pkg/storage/dynamo.go +++ b/pkg/storage/dynamo.go @@ -148,8 +148,15 @@ func (d Dynamo) GetFeed(hashID string) (*model.Feed, error) { var feed model.Feed if err := attr.UnmarshalMap(getOutput.Item, &feed); err != nil { - logger.WithError(err).Error("failed to unmarshal feed item") - return nil, err + // TODO: remove this + delete(getOutput.Item, "UpdatedAt") + delete(getOutput.Item, "PubDate") + + err = attr.UnmarshalMap(getOutput.Item, &feed) + if err != nil { + logger.WithError(err).Error("failed to unmarshal feed item") + return nil, err + } } // Check if we need to update LastAccess field (no more than once per hour) @@ -193,8 +200,8 @@ func (d Dynamo) GetFeed(hashID string) (*model.Feed, error) { func (d Dynamo) UpdateFeed(feed *model.Feed) error { var ( - pubDate = strconv.FormatInt(feed.PubDate.Unix(), 10) - updatedAt = strconv.FormatInt(feed.LastAccess.Unix(), 10) + pubDate = feed.PubDate.Unix() + updatedAt = feed.LastAccess.Unix() ) update := expr. diff --git a/pkg/storage/dynamo_test.go b/pkg/storage/dynamo_test.go index 40708c8..a66caa1 100644 --- a/pkg/storage/dynamo_test.go +++ b/pkg/storage/dynamo_test.go @@ -35,8 +35,14 @@ func TestDynamo_UpdateFeed(t *testing.T) { err := client.SaveFeed(feed) assert.NoError(t, err) + _, err = client.GetFeed(feed.HashID) + assert.NoError(t, err, "can't read feed after save") + err = client.UpdateFeed(feed) assert.NoError(t, err) + + _, err = client.GetFeed(feed.HashID) + assert.NoError(t, err, "can't read feed after update") } // docker run -it --rm -p 8000:8000 amazon/dynamodb-local