def __get_users_with_tagged_messages_from_db(self, tags): with self.__driver.session() as session: tags = tags.split(", ") for tag in tags: if not Tags.has_member(tag): raise ValueError(f"Tag: {tag} doesnt exist") query = "MATCH (u:user)-[r:messages]-() WHERE" query += " AND ".join([f" \'{tag}\' IN r.tags" for tag in tags]) query += " RETURN u" result = session.run(query) return list(result)
def __get_unrelated_users_with_tagged_messages(self, tags): with self.__driver.session() as session: tags = tags.split(", ") for tag in tags: if not Tags.has_member(tag): raise ValueError(f"Tag: {tag} doesnt exist") query = "MATCH ((u1:user)-[r1:messages]-()), ((u2:user)-[r2:messages]-()) WHERE " query += " AND ".join([f" \'{tag}\' IN r1.tags" for tag in tags]) + " AND " query += " AND ".join([f" \'{tag}\' IN r2.tags" for tag in tags]) query += " AND NOT EXISTS((u1)-[:messages]-(u2)) RETURN u1, u2" result = session.run(query) return list(result)