From 9457b3e5d6ed487c48144b1ae0c18ae0ddc20580 Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Tue, 21 Nov 2017 16:08:43 -0800 Subject: Add missing attachments while refreshing a feed --- storage/entry.go | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'storage/entry.go') diff --git a/storage/entry.go b/storage/entry.go index fe8c6f2..7bc1f86 100644 --- a/storage/entry.go +++ b/storage/entry.go @@ -42,7 +42,7 @@ func (s *Storage) CreateEntry(entry *model.Entry) error { ).Scan(&entry.ID) if err != nil { - return fmt.Errorf("Unable to create entry: %v", err) + return fmt.Errorf("unable to create entry: %v", err) } entry.Status = "unread" @@ -64,8 +64,9 @@ func (s *Storage) UpdateEntry(entry *model.Entry) error { UPDATE entries SET title=$1, url=$2, published_at=$3, content=$4, author=$5 WHERE user_id=$6 AND feed_id=$7 AND hash=$8 + RETURNING id ` - _, err := s.db.Exec( + err := s.db.QueryRow( query, entry.Title, entry.URL, @@ -75,9 +76,18 @@ func (s *Storage) UpdateEntry(entry *model.Entry) error { entry.UserID, entry.FeedID, entry.Hash, - ) + ).Scan(&entry.ID) + + if err != nil { + return err + } + + for _, enclosure := range entry.Enclosures { + enclosure.UserID = entry.UserID + enclosure.EntryID = entry.ID + } - return err + return s.UpdateEnclosures(entry.Enclosures) } // EntryExists checks if an entry already exists based on its hash when refreshing a feed. -- cgit v1.2.3