github.com/status-im/status-go@v1.1.0/protocol/messenger_bookmarks.go (about) 1 package protocol 2 3 import ( 4 "context" 5 "time" 6 7 "github.com/status-im/status-go/services/browsers" 8 ) 9 10 func (m *Messenger) AddBookmark(ctx context.Context, bookmark browsers.Bookmark) error { 11 bookmark.Removed = false 12 bookmark.DeletedAt = 0 13 bmr, err := m.persistence.AddBookmark(bookmark) 14 if err != nil { 15 return err 16 } 17 return m.SyncBookmark(ctx, &bmr, m.dispatchMessage) 18 } 19 20 func (m *Messenger) RemoveBookmark(ctx context.Context, url string) error { 21 deletedAt := time.Now().Unix() 22 err := m.persistence.RemoveBookmark(url, uint64(deletedAt)) 23 if err != nil { 24 return err 25 } 26 27 bmr, err := m.persistence.GetBookmarkByURL(url) 28 if err != nil { 29 return err 30 } 31 return m.SyncBookmark(ctx, bmr, m.dispatchMessage) 32 } 33 34 func (m *Messenger) UpdateBookmark(ctx context.Context, oldURL string, bookmark browsers.Bookmark) error { 35 err := m.persistence.UpdateBookmark(oldURL, bookmark) 36 if err != nil { 37 return err 38 } 39 return m.SyncBookmark(ctx, &bookmark, m.dispatchMessage) 40 } 41 42 func (m *Messenger) GarbageCollectRemovedBookmarks() error { 43 return m.persistence.DeleteSoftRemovedBookmarks(uint64(time.Now().AddDate(0, 0, -30).Unix())) 44 }