def _set_public(self): res = [u['user_id'] for u in \ db.fetchall("DELETE FROM subs.requests " "WHERE to_user_id=%s RETURNING user_id;", [self.id])] db.batch("INSERT INTO subs.users VALUES(%(u)s, %(to)s);", [{'u':u, 'to':self.id} for u in res])
def _set_private(self): res = [u['id'] for u in \ db.fetchall("SELECT user_id AS id FROM subs.users " "WHERE to_user_id=%(id)s " "EXCEPT " "SELECT to_user_id AS id FROM users.whitelist " "WHERE user_id=%(id)s;", {'id': self.id})] db.perform("DELETE FROM subs.users " "WHERE user_id=ANY(%s) AND to_user_id=%s;", [res, self.id]) db.batch("INSERT INTO subs.requests VALUES(%(u)s, %(to)s);", [{'u':u, 'to':self.id} for u in res]) db.perform("DELETE FROM subs.posts s USING posts.posts p " "WHERE s.post_id=p.id " "AND s.user_id=ANY(%s) AND p.author=%s;", [res, self.id]) db.perform("DELETE FROM subs.tags_user " "WHERE to_user_id=%s AND user_id=ANY(%s);", [self.id, res])