diff options
| author | nsfisis <54318333+nsfisis@users.noreply.github.com> | 2026-01-12 18:13:30 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-01-12 18:13:30 +0900 |
| commit | 8ca7887979bb045eea6331360b2bedc6de7f3d34 (patch) | |
| tree | fbf632ed9c179dd109afa6e1749a446f540a45c4 /backend/graphql/resolver | |
| parent | 67bfaf8f103295c5562db02a0044e311e3504518 (diff) | |
| parent | 86254f8eb7f812915464c8733f7017a6e0a3dd4d (diff) | |
| download | feedaka-8ca7887979bb045eea6331360b2bedc6de7f3d34.tar.gz feedaka-8ca7887979bb045eea6331360b2bedc6de7f3d34.tar.zst feedaka-8ca7887979bb045eea6331360b2bedc6de7f3d34.zip | |
Prevent duplicate feed items with same GUID
Diffstat (limited to 'backend/graphql/resolver')
| -rw-r--r-- | backend/graphql/resolver/schema.resolvers.go | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/backend/graphql/resolver/schema.resolvers.go b/backend/graphql/resolver/schema.resolvers.go index 46c39e7..c3f6f0a 100644 --- a/backend/graphql/resolver/schema.resolvers.go +++ b/backend/graphql/resolver/schema.resolvers.go @@ -43,8 +43,18 @@ func (r *mutationResolver) AddFeed(ctx context.Context, url string) (*model.Feed return nil, fmt.Errorf("failed to insert feed: %w", err) } - // Insert articles from the feed + // Insert articles from the feed (skip duplicates by guid) for _, item := range feed.Items { + // Check if article with same GUID already exists globally + exists, err := r.Queries.CheckArticleExistsByGUID(ctx, item.GUID) + if err != nil { + fmt.Printf("Failed to check article existence: %v\n", err) + continue + } + if exists == 1 { + // Article already exists, skip + continue + } _, err = r.Queries.CreateArticle(ctx, db.CreateArticleParams{ FeedID: dbFeed.ID, Guid: item.GUID, |
