Skip to content

Commit 02a4c9d

Browse files
authored
Create feed query builder
1 parent 433de17 commit 02a4c9d

File tree

5 files changed

+343
-306
lines changed

5 files changed

+343
-306
lines changed

model/feed.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,11 @@ import (
1515

1616
// List of supported schedulers.
1717
const (
18-
SchedulerRoundRobin = "round_robin"
19-
SchedulerEntryFrequency = "entry_frequency"
18+
SchedulerRoundRobin = "round_robin"
19+
SchedulerEntryFrequency = "entry_frequency"
20+
// Default settings for the feed query builder
21+
DefaultFeedSorting = "parsing_error_count"
22+
DefaultFeedSortingDirection = "desc"
2023
)
2124

2225
// Feed represents a feed in the application.

storage/entry.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ func (s *Storage) CountAllEntries() map[string]int64 {
2626
defer rows.Close()
2727

2828
results := make(map[string]int64)
29-
results["unread"] = 0
30-
results["read"] = 0
31-
results["removed"] = 0
29+
results[model.EntryStatusUnread] = 0
30+
results[model.EntryStatusRead] = 0
31+
results[model.EntryStatusRemoved] = 0
3232

3333
for rows.Next() {
3434
var status string
@@ -41,7 +41,7 @@ func (s *Storage) CountAllEntries() map[string]int64 {
4141
results[status] = count
4242
}
4343

44-
results["total"] = results["unread"] + results["read"] + results["removed"]
44+
results["total"] = results[model.EntryStatusUnread] + results[model.EntryStatusRead] + results[model.EntryStatusRemoved]
4545
return results
4646
}
4747

storage/entry_query_builder.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package storage // import "miniflux.app/storage"
66

77
import (
8+
"database/sql"
89
"fmt"
910
"strings"
1011
"time"
@@ -269,7 +270,7 @@ func (e *EntryQueryBuilder) GetEntries() (model.Entries, error) {
269270
entries := make(model.Entries, 0)
270271
for rows.Next() {
271272
var entry model.Entry
272-
var iconID interface{}
273+
var iconID sql.NullInt64
273274
var tz string
274275

275276
entry.Feed = &model.Feed{}
@@ -310,10 +311,10 @@ func (e *EntryQueryBuilder) GetEntries() (model.Entries, error) {
310311
return nil, fmt.Errorf("unable to fetch entry row: %v", err)
311312
}
312313

313-
if iconID == nil {
314-
entry.Feed.Icon.IconID = 0
314+
if iconID.Valid {
315+
entry.Feed.Icon.IconID = iconID.Int64
315316
} else {
316-
entry.Feed.Icon.IconID = iconID.(int64)
317+
entry.Feed.Icon.IconID = 0
317318
}
318319

319320
// Make sure that timestamp fields contains timezone information (API)

0 commit comments

Comments
 (0)