diff --git a/cropontology/config/routes.py b/cropontology/config/routes.py index e421735..dd96810 100644 --- a/cropontology/config/routes.py +++ b/cropontology/config/routes.py @@ -60,7 +60,7 @@ from ..views.template import TemplateLoadView, OntologyVersionView, CompareVersionView -from ..views.delete import DeleteOntologyView, DeleteTermView +from ..views.delete import DeleteOntologyView, DeleteTermView, UpdateDBView from ..views.users import ( APIUserSearchSelect2, @@ -441,6 +441,11 @@ def load_routes(config): add_route("delete_term", "/delete-term/{term_id}", DeleteTermView, None) ) + # Here come the delete term view + routes.append( + add_route("update_db", "/update-db", UpdateDBView, None) + ) + # Users API routes.append( add_route( diff --git a/cropontology/views/delete.py b/cropontology/views/delete.py index 78e482a..7d2307f 100644 --- a/cropontology/views/delete.py +++ b/cropontology/views/delete.py @@ -107,3 +107,23 @@ def process_view(self): response = Response(headerlist=headers, status=200) response.text = "ok" return response + +class UpdateDBView(PublicView): + def process_view(self): + neo4j_bolt_url = self.request.registry.settings["neo4j.bolt.ulr"] + neo4j_user = self.request.registry.settings["neo4j.user"] + neo4j_password = self.request.registry.settings["neo4j.password"] + driver = GraphDatabase.driver( + neo4j_bolt_url, auth=(neo4j_user, neo4j_password) + ) + db = driver.session() + query = ( + "MATCH (n) SET n.entity = n.Entity REMOVE n.Entity RETURN n" + ) + cursor = db.run(query) + query = ( + "MATCH (n) SET n.date = n.data REMOVE n.data RETURN n" + ) + cursor = db.run(query) + self.returnRawViewResult = True + return HTTPFound(location=self.request.route_url("home"))