Beispiel #1
0
    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)
Beispiel #2
0
    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)