From 1200ef7846676acf70d0ebeee30505b9e42fbb77 Mon Sep 17 00:00:00 2001 From: Nazar Kanaev Date: Tue, 23 Jun 2020 22:55:15 +0100 Subject: [PATCH] folder/feed list functions --- main.go | 12 +++++++----- storage/feed.go | 30 ++++++++++++++++++++++++++++++ storage/folder.go | 26 +++++++++++++++++++++++++- 3 files changed, 62 insertions(+), 6 deletions(-) diff --git a/main.go b/main.go index 058b291..0152472 100644 --- a/main.go +++ b/main.go @@ -12,14 +12,16 @@ func main() { } log.Print(store) /* - folder := storage.CreateFolder("foo") - storage.RenameFolder(folder.Id, "bar") - storage.ToggleFolderExpanded(folder.Id, false) + folder := store.CreateFolder("foo") + store.RenameFolder(folder.Id, "bar") + store.ToggleFolderExpanded(folder.Id, false) + log.Print(store.ListFolders()) */ /* - feed := storage.CreateFeed( + feed := store.CreateFeed( "title", "description", "link", "feedlink", "icon", 1) - storage.RenameFeed(feed.Id, "newtitle") + store.RenameFeed(feed.Id, "newtitle") + log.Print(store.ListFeeds()) */ /* items := make([]storage.Item, 3, 3) diff --git a/storage/feed.go b/storage/feed.go index d45cda2..c5451cd 100644 --- a/storage/feed.go +++ b/storage/feed.go @@ -49,3 +49,33 @@ func (s *Storage) UpdateFeedFolder(feedId int64, newFolderId int64) bool { _, err := s.db.Exec(`update feeds set folder_id = ? where id = ?`, intOrNil(newFolderId), feedId) return err == nil } + +func (s *Storage) ListFeeds() []Feed { + result := make([]Feed, 0, 0) + rows, err := s.db.Query(` + select id, folder_id, title, description, link, feed_link, icon + from feeds + `) + if err != nil { + s.log.Print(err) + return result + } + for rows.Next() { + var f Feed + err = rows.Scan( + &f.Id, + &f.FolderId, + &f.Title, + &f.Description, + &f.Link, + &f.FeedLink, + &f.Icon, + ) + if err != nil { + s.log.Print(err) + return result + } + result = append(result, f) + } + return result +} diff --git a/storage/folder.go b/storage/folder.go index bdffa25..3bd6d87 100644 --- a/storage/folder.go +++ b/storage/folder.go @@ -1,6 +1,8 @@ package storage -import "fmt" +import ( + "fmt" +) type Folder struct { Id int64 @@ -40,3 +42,25 @@ func (s *Storage) ToggleFolderExpanded(folderId int64, isExpanded bool) bool { _, err := s.db.Exec(`update folders set is_expanded = ? where id = ?`, isExpanded, folderId) return err == nil } + +func (s *Storage) ListFolders() []Folder { + result := make([]Folder, 0, 0) + rows, err := s.db.Query(` + select id, title, is_expanded + from folders + `) + if err != nil { + s.log.Print(err) + return result + } + for rows.Next() { + var f Folder + err = rows.Scan(&f.Id, &f.Title, &f.IsExpanded) + if err != nil { + s.log.Print(err) + return result + } + result = append(result, f) + } + return result +}