diff options
Diffstat (limited to 'newspipe/web/controllers/bookmark.py')
-rw-r--r-- | newspipe/web/controllers/bookmark.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/newspipe/web/controllers/bookmark.py b/newspipe/web/controllers/bookmark.py new file mode 100644 index 00000000..b5413243 --- /dev/null +++ b/newspipe/web/controllers/bookmark.py @@ -0,0 +1,32 @@ +import logging +import itertools +from datetime import datetime, timedelta + +from bootstrap import db +from web.models import Bookmark +from .abstract import AbstractController +from .tag import BookmarkTagController + +logger = logging.getLogger(__name__) + + +class BookmarkController(AbstractController): + _db_cls = Bookmark + + def count_by_href(self, **filters): + return self._count_by(Bookmark.href, filters) + + def update(self, filters, attrs): + BookmarkTagController(self.user_id) \ + .read(**{'bookmark_id': filters["id"]}) \ + .delete() + + for tag in attrs['tags']: + BookmarkTagController(self.user_id).create( + **{'text': tag.text, + 'id': tag.id, + 'bookmark_id': tag.bookmark_id, + 'user_id': tag.user_id}) + + del attrs['tags'] + return super().update(filters, attrs) |