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  }