feed functions

This commit is contained in:
Nazar Kanaev 2020-06-21 22:46:23 +01:00 committed by nkanaev
parent 6621f49770
commit 4f9715ba93
3 changed files with 63 additions and 0 deletions

View File

@ -15,4 +15,9 @@ func main() {
storage.RenameFolder(folder.Id, "bar") storage.RenameFolder(folder.Id, "bar")
storage.ToggleFolderExpanded(folder.Id, false) storage.ToggleFolderExpanded(folder.Id, false)
*/ */
/*
feed := storage.CreateFeed(
"title", "description", "link", "feedlink", "icon", 1)
storage.RenameFeed(feed.Id, "newtitle")
*/
} }

51
storage/feed.go Normal file
View File

@ -0,0 +1,51 @@
package storage
type Feed struct {
Id int64
FolderId int64
Title string
Description string
Link string
FeedLink string
Icon string
}
func (s *Storage) CreateFeed(title, description, link, feedLink, icon string, folderId int64) *Feed {
result, err := s.db.Exec(`
insert into feeds (title, description, link, feed_link, icon, folder_id)
values (?, ?, ?, ?, ?, ?)`,
title, description, link, feedLink, icon, intOrNil(folderId),
)
if err != nil {
return nil
}
id, idErr := result.LastInsertId()
if idErr != nil {
return nil
}
return &Feed{
Id: id,
Title: title,
Description: description,
Link: link,
FeedLink: feedLink,
Icon: icon,
FolderId: folderId,
}
}
func (s *Storage) DeleteFeed(feedId int64) bool {
_, err1 := s.db.Exec(`delete from items where feed_id = ?`, feedId)
_, err2 := s.db.Exec(`delete from feeds where id = ?`, feedId)
return err1 == nil && err2 == nil
}
func (s *Storage) RenameFeed(feedId int64, newTitle string) bool {
_, err := s.db.Exec(`update feeds set title = ? where id = ?`, newTitle, feedId)
return err == nil
}
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
}

View File

@ -58,3 +58,10 @@ func New() (*Storage, error) {
} }
return &Storage{db: db}, nil return &Storage{db: db}, nil
} }
func intOrNil(id int64) interface{} {
if id == 0 {
return nil
}
return id
}