sqlite on delete actions

This commit is contained in:
Nazar Kanaev 2021-02-28 00:35:19 +00:00
parent 7560b8167b
commit a850d83b33
4 changed files with 16 additions and 10 deletions

View File

@ -58,9 +58,11 @@ func (s *Storage) CreateFeed(title, description, link, feedLink string, 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
_, err := s.db.Exec(`delete from feeds where id = ?`, feedId)
if err != nil {
s.log.Print(err)
}
return err == nil
}
func (s *Storage) RenameFeed(feedId int64, newTitle string) bool {

View File

@ -45,9 +45,11 @@ func (s *Storage) CreateFolder(title string) *Folder {
}
func (s *Storage) DeleteFolder(folderId int64) bool {
_, err1 := s.db.Exec(`update feeds set folder_id = null where folder_id = ?`, folderId)
_, err2 := s.db.Exec(`delete from folders where id = ?`, folderId)
return err1 == nil && err2 == nil
_, err := s.db.Exec(`delete from folders where id = ?`, folderId)
if err != nil {
s.log.Print(err)
}
return err == nil
}
func (s *Storage) RenameFolder(folderId int64, newTitle string) bool {

View File

@ -301,6 +301,7 @@ func HTMLText(s string) string {
}
func (s *Storage) SyncSearch() {
// TODO: cleaning up once feeds/items are deleted?
rows, err := s.db.Query(`
select id, title, content, description
from items

View File

@ -18,7 +18,7 @@ create unique index if not exists idx_folder_title on folders(title);
create table if not exists feeds (
id integer primary key autoincrement,
folder_id references folders(id),
folder_id references folders(id) on delete set null,
title text not null,
description text,
link text,
@ -32,7 +32,7 @@ create unique index if not exists idx_feed_feed_link on feeds(feed_link);
create table if not exists items (
id integer primary key autoincrement,
guid string not null,
feed_id references feeds(id),
feed_id references feeds(id) on delete cascade,
title text,
link text,
description text,
@ -63,7 +63,7 @@ create trigger if not exists del_item_search after delete on items begin
end;
create table if not exists http_states (
feed_id references feeds(id) unique,
feed_id references feeds(id) on delete cascade unique,
last_refreshed datetime not null,
-- http header fields --
@ -72,7 +72,7 @@ create table if not exists http_states (
);
create table if not exists feed_errors (
feed_id references feeds(id) unique,
feed_id references feeds(id) on delete cascade unique,
error string
);
`
@ -96,6 +96,7 @@ func New(path string, logger *log.Logger) (*Storage, error) {
db.SetMaxOpenConns(1)
// TODO: migration for 'on delete' actions
if _, err := db.Exec(initQuery); err != nil {
return nil, err
}