From 78e33be780e0e39aaca14a0213a39e39ad7d8246 Mon Sep 17 00:00:00 2001 From: Alessio Date: Fri, 1 Sep 2023 22:19:43 -0300 Subject: [PATCH] Add function to delete a like --- pkg/persistence/likes_queries.go | 8 ++++++++ pkg/persistence/likes_queries_test.go | 19 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/pkg/persistence/likes_queries.go b/pkg/persistence/likes_queries.go index 50f1e96..3664d2c 100644 --- a/pkg/persistence/likes_queries.go +++ b/pkg/persistence/likes_queries.go @@ -20,6 +20,14 @@ func (p Profile) SaveLike(l scraper.Like) error { return nil } +func (p Profile) DeleteLike(l scraper.Like) error { + _, err := p.DB.NamedExec(`delete from likes where user_id = :user_id and tweet_id = :tweet_id`, l) + if err != nil { + return fmt.Errorf("Error executing DeleteLike(%#v):\n %w", l, err) + } + return nil +} + func (p Profile) GetLikeBySortID(id scraper.LikeSortID) (scraper.Like, error) { var l scraper.Like err := p.DB.Get(&l, ` diff --git a/pkg/persistence/likes_queries_test.go b/pkg/persistence/likes_queries_test.go index 9046c39..b92686c 100644 --- a/pkg/persistence/likes_queries_test.go +++ b/pkg/persistence/likes_queries_test.go @@ -36,3 +36,22 @@ func TestSaveAndLoadLike(t *testing.T) { t.Error(diff) } } + +func TestDeleteLike(t *testing.T) { + require := require.New(t) + + profile_path := "test_profiles/TestLikesQueries" + profile := create_or_load_profile(profile_path) + + like := create_dummy_like() + err := profile.SaveLike(like) + require.NoError(err) + + // Delete it + err = profile.DeleteLike(like) + require.NoError(err) + + // Should be gone + _, err = profile.GetLikeBySortID(like.SortID) + require.Error(err) +}