rename Storage struct to SQLiteStorage

This commit is contained in:
nkanaev
2026-06-07 23:17:07 +01:00
parent 76adcf0d62
commit dc836ed4fd
8 changed files with 29 additions and 29 deletions

View File

@@ -24,7 +24,7 @@ type CreateFeedParams struct {
FolderID *int64 FolderID *int64
} }
func (s *Storage) CreateFeed(params CreateFeedParams) *Feed { func (s *SQLiteStorage) CreateFeed(params CreateFeedParams) *Feed {
title := params.Title title := params.Title
if title == "" { if title == "" {
title = params.FeedLink title = params.FeedLink
@@ -57,7 +57,7 @@ func (s *Storage) CreateFeed(params CreateFeedParams) *Feed {
} }
} }
func (s *Storage) DeleteFeed(feedId int64) bool { func (s *SQLiteStorage) DeleteFeed(feedId int64) bool {
result, err := s.db.Exec(`delete from feeds where id = :id`, sql.Named("id", feedId)) result, err := s.db.Exec(`delete from feeds where id = :id`, sql.Named("id", feedId))
if err != nil { if err != nil {
log.Print(err) log.Print(err)
@@ -80,7 +80,7 @@ type UpdateFeedParams struct {
Icon Nullable[[]byte] Icon Nullable[[]byte]
} }
func (s *Storage) UpdateFeed(feedId int64, params UpdateFeedParams) (bool, error) { func (s *SQLiteStorage) UpdateFeed(feedId int64, params UpdateFeedParams) (bool, error) {
_, err := s.db.Exec(` _, err := s.db.Exec(`
update feeds set update feeds set
title = coalesce(:title, title), title = coalesce(:title, title),
@@ -104,7 +104,7 @@ func (s *Storage) UpdateFeed(feedId int64, params UpdateFeedParams) (bool, error
return true, nil return true, nil
} }
func (s *Storage) ListFeeds() []Feed { func (s *SQLiteStorage) ListFeeds() []Feed {
result := make([]Feed, 0) result := make([]Feed, 0)
rows, err := s.db.Query(` rows, err := s.db.Query(`
select id, folder_id, title, description, link, feed_link, select id, folder_id, title, description, link, feed_link,
@@ -136,7 +136,7 @@ func (s *Storage) ListFeeds() []Feed {
return result return result
} }
func (s *Storage) GetFeed(id int64) *Feed { func (s *SQLiteStorage) GetFeed(id int64) *Feed {
var f Feed var f Feed
err := s.db.QueryRow(` err := s.db.QueryRow(`
select select

View File

@@ -13,7 +13,7 @@ type FeedState struct {
HTTPEtag string HTTPEtag string
} }
func (s *Storage) ListFeedStates() ([]FeedState, error) { func (s *SQLiteStorage) ListFeedStates() ([]FeedState, error) {
rows, err := s.db.Query(` rows, err := s.db.Query(`
select select
feed_id feed_id
@@ -46,7 +46,7 @@ func (s *Storage) ListFeedStates() ([]FeedState, error) {
return states, nil return states, nil
} }
func (s *Storage) GetFeedState(feedID int64) (*FeedState, error) { func (s *SQLiteStorage) GetFeedState(feedID int64) (*FeedState, error) {
var state FeedState var state FeedState
err := s.db.QueryRow(` err := s.db.QueryRow(`
select select
@@ -79,7 +79,7 @@ type UpdateFeedStateParams struct {
HTTPEtag *string HTTPEtag *string
} }
func (s *Storage) UpdateFeedState(feedID int64, params UpdateFeedStateParams) (bool, error) { func (s *SQLiteStorage) UpdateFeedState(feedID int64, params UpdateFeedStateParams) (bool, error) {
lastError := params.LastError lastError := params.LastError
if lastError != nil && *lastError == "" { if lastError != nil && *lastError == "" {
lastError = nil lastError = nil

View File

@@ -11,7 +11,7 @@ type Folder struct {
IsExpanded bool `json:"is_expanded"` IsExpanded bool `json:"is_expanded"`
} }
func (s *Storage) CreateFolder(title string) *Folder { func (s *SQLiteStorage) CreateFolder(title string) *Folder {
expanded := true expanded := true
row := s.db.QueryRow(` row := s.db.QueryRow(`
insert into folders (title, is_expanded) values (:title, :is_expanded) insert into folders (title, is_expanded) values (:title, :is_expanded)
@@ -30,7 +30,7 @@ func (s *Storage) CreateFolder(title string) *Folder {
return &Folder{Id: id, Title: title, IsExpanded: expanded} return &Folder{Id: id, Title: title, IsExpanded: expanded}
} }
func (s *Storage) DeleteFolder(folderId int64) bool { func (s *SQLiteStorage) DeleteFolder(folderId int64) bool {
_, err := s.db.Exec(`delete from folders where id = :id`, sql.Named("id", folderId)) _, err := s.db.Exec(`delete from folders where id = :id`, sql.Named("id", folderId))
if err != nil { if err != nil {
log.Print(err) log.Print(err)
@@ -43,7 +43,7 @@ type UpdateFolderParams struct {
IsExpanded *bool IsExpanded *bool
} }
func (s *Storage) UpdateFolder(folderId int64, params UpdateFolderParams) (bool, error) { func (s *SQLiteStorage) UpdateFolder(folderId int64, params UpdateFolderParams) (bool, error) {
_, err := s.db.Exec(` _, err := s.db.Exec(`
update folders set update folders set
title = coalesce(:title, title), title = coalesce(:title, title),
@@ -61,7 +61,7 @@ func (s *Storage) UpdateFolder(folderId int64, params UpdateFolderParams) (bool,
return true, nil return true, nil
} }
func (s *Storage) ListFolders() []Folder { func (s *SQLiteStorage) ListFolders() []Folder {
result := make([]Folder, 0) result := make([]Folder, 0)
rows, err := s.db.Query(` rows, err := s.db.Query(`
select id, title, is_expanded select id, title, is_expanded

View File

@@ -116,7 +116,7 @@ func (list ItemList) Swap(i, j int) {
list[i], list[j] = list[j], list[i] list[i], list[j] = list[j], list[i]
} }
func (s *Storage) CreateItems(items []Item) bool { func (s *SQLiteStorage) CreateItems(items []Item) bool {
tx, err := s.db.Begin() tx, err := s.db.Begin()
if err != nil { if err != nil {
log.Print(err) log.Print(err)
@@ -241,7 +241,7 @@ func listQueryPredicate(filter ItemFilter, newestFirst bool) (string, []any) {
return predicate, args return predicate, args
} }
func (s *Storage) CountItems() int { func (s *SQLiteStorage) CountItems() int {
var count int var count int
err := s.db.QueryRow(`select count(*) from items`).Scan(&count) err := s.db.QueryRow(`select count(*) from items`).Scan(&count)
if err != nil { if err != nil {
@@ -251,7 +251,7 @@ func (s *Storage) CountItems() int {
return count return count
} }
func (s *Storage) ListItems( func (s *SQLiteStorage) ListItems(
filter ItemFilter, filter ItemFilter,
limit int, limit int,
newestFirst bool, newestFirst bool,
@@ -305,7 +305,7 @@ func (s *Storage) ListItems(
return result return result
} }
func (s *Storage) GetItem(id int64) *Item { func (s *SQLiteStorage) GetItem(id int64) *Item {
i := &Item{} i := &Item{}
err := s.db.QueryRow(` err := s.db.QueryRow(`
select select
@@ -324,7 +324,7 @@ func (s *Storage) GetItem(id int64) *Item {
return i return i
} }
func (s *Storage) UpdateItemStatus(item_id int64, status ItemStatus) bool { func (s *SQLiteStorage) UpdateItemStatus(item_id int64, status ItemStatus) bool {
_, err := s.db.Exec(`update items set status = :status where id = :id`, _, err := s.db.Exec(`update items set status = :status where id = :id`,
sql.Named("status", status), sql.Named("status", status),
sql.Named("id", item_id), sql.Named("id", item_id),
@@ -332,7 +332,7 @@ func (s *Storage) UpdateItemStatus(item_id int64, status ItemStatus) bool {
return err == nil return err == nil
} }
func (s *Storage) MarkItemsRead(filter MarkFilter) bool { func (s *SQLiteStorage) MarkItemsRead(filter MarkFilter) bool {
predicate, args := listQueryPredicate(ItemFilter{ predicate, args := listQueryPredicate(ItemFilter{
FolderID: filter.FolderID, FolderID: filter.FolderID,
FeedID: filter.FeedID, FeedID: filter.FeedID,
@@ -355,7 +355,7 @@ type FeedStat struct {
StarredCount int64 `json:"starred"` StarredCount int64 `json:"starred"`
} }
func (s *Storage) FeedStats() []FeedStat { func (s *SQLiteStorage) FeedStats() []FeedStat {
result := make([]FeedStat, 0) result := make([]FeedStat, 0)
rows, err := s.db.Query(fmt.Sprintf(` rows, err := s.db.Query(fmt.Sprintf(`
select select
@@ -388,7 +388,7 @@ var (
// - Never delete starred entries. // - Never delete starred entries.
// - Keep at least 50 latest items for each feed. // - Keep at least 50 latest items for each feed.
// - Delete entries older than 90 days relative to the latest arrived item in the same feed. // - Delete entries older than 90 days relative to the latest arrived item in the same feed.
func (s *Storage) DeleteOldItems() { func (s *SQLiteStorage) DeleteOldItems() {
result, err := s.db.Exec(` result, err := s.db.Exec(`
delete from items delete from items
where id in ( where id in (

View File

@@ -35,7 +35,7 @@ type testItemScope struct {
folder1, folder2 *Folder folder1, folder2 *Folder
} }
func testItemsSetup(db *Storage) testItemScope { func testItemsSetup(db *SQLiteStorage) testItemScope {
folder1 := db.CreateFolder("folder1") folder1 := db.CreateFolder("folder1")
folder2 := db.CreateFolder("folder2") folder2 := db.CreateFolder("folder2")
@@ -115,7 +115,7 @@ func testItemsSetup(db *Storage) testItemScope {
} }
} }
func getItem(db *Storage, guid string) *Item { func getItem(db *SQLiteStorage, guid string) *Item {
i := &Item{} i := &Item{}
err := db.db.QueryRow(` err := db.db.QueryRow(`
select select

View File

@@ -49,7 +49,7 @@ func settingsDefaults() Settings {
} }
} }
func (s *Storage) GetSettings() Settings { func (s *SQLiteStorage) GetSettings() Settings {
result := settingsDefaults() result := settingsDefaults()
rows, err := s.db.Query(`select key, val from settings;`) rows, err := s.db.Query(`select key, val from settings;`)
if err != nil { if err != nil {
@@ -102,7 +102,7 @@ type UpdateSettingsParams struct {
Language *string `json:"language"` Language *string `json:"language"`
} }
func (s *Storage) UpdateSettings(params UpdateSettingsParams) bool { func (s *SQLiteStorage) UpdateSettings(params UpdateSettingsParams) bool {
tx, err := s.db.Begin() tx, err := s.db.Begin()
if err != nil { if err != nil {
log.Print(err) log.Print(err)

View File

@@ -17,7 +17,7 @@ func init() {
}) })
} }
type Storage struct { type SQLiteStorage struct {
db *sql.DB db *sql.DB
} }
@@ -30,7 +30,7 @@ func SetNullable[T any](v *T) Nullable[T] {
return Nullable[T]{Set: true, Value: v} return Nullable[T]{Set: true, Value: v}
} }
func New(path string) (*Storage, error) { func New(path string) (*SQLiteStorage, error) {
if pos := strings.IndexRune(path, '?'); pos == -1 { if pos := strings.IndexRune(path, '?'); pos == -1 {
params := "_journal=WAL&_sync=NORMAL&_busy_timeout=5000&cache=shared" params := "_journal=WAL&_sync=NORMAL&_busy_timeout=5000&cache=shared"
log.Printf("opening db with params: %s", params) log.Printf("opening db with params: %s", params)
@@ -45,9 +45,9 @@ func New(path string) (*Storage, error) {
if err = migrate(db); err != nil { if err = migrate(db); err != nil {
return nil, err return nil, err
} }
return &Storage{db: db}, nil return &SQLiteStorage{db: db}, nil
} }
func (s *Storage) Close() error { func (s *SQLiteStorage) Close() error {
return s.db.Close() return s.db.Close()
} }

View File

@@ -7,7 +7,7 @@ import (
"testing" "testing"
) )
func testDB() *Storage { func testDB() *SQLiteStorage {
log.SetOutput(io.Discard) log.SetOutput(io.Discard)
db, err := New(":memory:") db, err := New(":memory:")
if err != nil { if err != nil {