From 86c0f92cc6762aac8c9a54ddf4d207bc57aa666c Mon Sep 17 00:00:00 2001 From: Dennis Date: Fri, 29 Aug 2025 14:15:31 +0200 Subject: [PATCH] chore: db specific feed entity --- internal/database/feed.go | 22 ++++++++++------------ internal/feed.go | 4 ++-- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/internal/database/feed.go b/internal/database/feed.go index 0039a18..2208531 100644 --- a/internal/database/feed.go +++ b/internal/database/feed.go @@ -4,9 +4,7 @@ import ( "time" ) -type FeedType string - -type Feed struct { +type FeedEntity struct { ID int64 Name string Url string @@ -14,12 +12,12 @@ type Feed struct { LastSyncedAt *time.Time } -type FeedWithArticleCount struct { - Feed +type FeedEntityWithArticleCount struct { + FeedEntity ArticleCount int } -func (f Feed) Insert() (int64, error) { +func (f FeedEntity) Insert() (int64, error) { result, err := db.Exec("INSERT INTO feed (name, url) VALUES (?,?)", f.Name, f.Url) if err != nil { @@ -38,17 +36,17 @@ func (f Feed) Insert() (int64, error) { // This might be a problem if we have a LOT of feeds configured // as of now this works, so it is not at the top of the priority // list -func FindAllFeeds() (*[]Feed, error) { +func FindAllFeeds() (*[]FeedEntity, error) { rows, err := db.Query("SELECT id, name, url, createdAt, lastSyncedAt FROM feed") if err != nil { return nil, err } defer rows.Close() - var feeds []Feed + var feeds []FeedEntity for rows.Next() { - var feed Feed + var feed FeedEntity err := rows.Scan(&feed.ID, &feed.Name, &feed.Url, &feed.CreatedAt, &feed.LastSyncedAt) if err != nil { return nil, err @@ -63,17 +61,17 @@ func FindAllFeeds() (*[]Feed, error) { return &feeds, nil } -func FindAllFeedsWithArticleCount() (*[]FeedWithArticleCount, error) { +func FindAllFeedsWithArticleCount() (*[]FeedEntityWithArticleCount, error) { rows, err := db.Query("SELECT f.id, f.name, f.url, f.createdAt, f.lastSyncedAt, COUNT(a.id) FROM feed as f LEFT JOIN article as a ON a.feedId = f.id") if err != nil { return nil, err } defer rows.Close() - var feeds []FeedWithArticleCount + var feeds []FeedEntityWithArticleCount for rows.Next() { - var feed FeedWithArticleCount + var feed FeedEntityWithArticleCount err := rows.Scan(&feed.ID, &feed.Name, &feed.Url, &feed.CreatedAt, &feed.LastSyncedAt, &feed.ArticleCount) if err != nil { return nil, err diff --git a/internal/feed.go b/internal/feed.go index cea8407..dea3704 100644 --- a/internal/feed.go +++ b/internal/feed.go @@ -23,7 +23,7 @@ func AddFeed(feedUrl string) (string, int, error) { return "", 0, err } - f := database.Feed{ + f := database.FeedEntity{ Name: feed.Title, Url: feedUrl, } @@ -125,7 +125,7 @@ func SyncFeeds() error { } func syncFeed( - feed database.Feed, + feed database.FeedEntity, syncBefore time.Time, wg *sync.WaitGroup, errorChannel chan<- error,