def post(self): """ Untag the given document. Request: `POST` `/tags/remove` Request body: {'document_id': @document_id@} """ document_id = self.request.validated['document_id'] document_type = ROUTE_TYPE user_id = self.request.authenticated_userid tag_relation = get_tag_relation(user_id, document_id) if tag_relation: DBSession.delete(tag_relation) DBSession.add(DocumentTagLog( user_id=user_id, document_id=document_id, document_type=document_type, is_creation=False)) else: log.warning( 'tried to delete not existing tag relation ' '({0}, {1})'.format(user_id, document_id)) raise HTTPBadRequest('This document has no such tag.') notify_es_syncer(self.request.registry.queue_config) return {}
def post(self): """Update mailinglist subscription statuses. Request: `POST` `/users/mailinglists` {'avalanche': False, 'lawinen': True, 'valanghe': False} """ user_id = self.request.authenticated_userid user = DBSession.query(User).get(user_id) subscribed_lists = DBSession.query(Mailinglist). \ filter(Mailinglist.user_id == user_id).all() subscribed_lists = {list.listname: list for list in subscribed_lists} subscribed_listnames = set(subscribed_lists.keys()) lists_to_add = [] removed_lists = False data = self.request.validated['mailinglists'] for listname in data: subscribe_status = data.get(listname, False) if subscribe_status and listname not in subscribed_listnames: # Add list lists_to_add.append(Mailinglist( listname=listname, email=user.email, user_id=user_id, user=user )) elif not subscribe_status and listname in subscribed_listnames: # Remove list removed_lists = True DBSession.delete(subscribed_lists[listname]) if lists_to_add: DBSession.add_all(lists_to_add) if lists_to_add or removed_lists: DBSession.flush() return {}
def post(self): """Update mailinglist subscription statuses. Request: `POST` `/users/mailinglists` {'avalanche': False, 'lawinen': True, 'valanghe': False} """ user_id = self.request.authenticated_userid user = DBSession.query(User).get(user_id) subscribed_lists = DBSession.query(Mailinglist). \ filter(Mailinglist.user_id == user_id).all() subscribed_lists = {l.listname: l for l in subscribed_lists} subscribed_listnames = set(subscribed_lists.keys()) lists_to_add = [] removed_lists = False data = self.request.validated['mailinglists'] for listname in data: subscribe_status = data.get(listname, False) if subscribe_status and listname not in subscribed_listnames: # Add list lists_to_add.append(Mailinglist( listname=listname, email=user.email, user_id=user_id, user=user )) elif not subscribe_status and listname in subscribed_listnames: # Remove list removed_lists = True DBSession.delete(subscribed_lists[listname]) if lists_to_add: DBSession.add_all(lists_to_add) if lists_to_add or removed_lists: DBSession.flush() return {}
def post(self): """ Unfollow the given user. Request: `POST` `/users/unfollow` Request body: {'user_id': @user_id@} """ followed_user_id = self.request.validated['user_id'] follower_user_id = self.request.authenticated_userid follower_relation = get_follower_relation(followed_user_id, follower_user_id) if follower_relation: DBSession.delete(follower_relation) else: log.warning('tried to delete not existing follower relation ' '({0}, {1})'.format(followed_user_id, follower_user_id)) return {}
def post(self): """ Unfollow the given user. Request: `POST` `/users/unfollow` Request body: {'user_id': @user_id@} """ followed_user_id = self.request.validated['user_id'] follower_user_id = self.request.authenticated_userid follower_relation = get_follower_relation( followed_user_id, follower_user_id) if follower_relation: DBSession.delete(follower_relation) else: log.warn( 'tried to delete not existing follower relation ' '({0}, {1})'.format(followed_user_id, follower_user_id)) return {}