status-im/status-go

View on GitHub
protocol/messenger_bookmarks.go

Summary

Maintainability
A
0 mins
Test Coverage
F
10%
package protocol

import (
    "context"
    "time"

    "github.com/status-im/status-go/services/browsers"
)

func (m *Messenger) AddBookmark(ctx context.Context, bookmark browsers.Bookmark) error {
    bookmark.Removed = false
    bookmark.DeletedAt = 0
    bmr, err := m.persistence.AddBookmark(bookmark)
    if err != nil {
        return err
    }
    return m.SyncBookmark(ctx, &bmr, m.dispatchMessage)
}

func (m *Messenger) RemoveBookmark(ctx context.Context, url string) error {
    deletedAt := time.Now().Unix()
    err := m.persistence.RemoveBookmark(url, uint64(deletedAt))
    if err != nil {
        return err
    }

    bmr, err := m.persistence.GetBookmarkByURL(url)
    if err != nil {
        return err
    }
    return m.SyncBookmark(ctx, bmr, m.dispatchMessage)
}

func (m *Messenger) UpdateBookmark(ctx context.Context, oldURL string, bookmark browsers.Bookmark) error {
    err := m.persistence.UpdateBookmark(oldURL, bookmark)
    if err != nil {
        return err
    }
    return m.SyncBookmark(ctx, &bookmark, m.dispatchMessage)
}

func (m *Messenger) GarbageCollectRemovedBookmarks() error {
    return m.persistence.DeleteSoftRemovedBookmarks(uint64(time.Now().AddDate(0, 0, -30).Unix()))
}