diff --git a/.gitignore b/.gitignore index 7d1c1e1..d611b78 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,8 @@ auth_config.py # scrap z_sandbox/ +app/klang/data_dev +app/klang/data_test # databases app/*.sqlite diff --git a/app/grew/controller.py b/app/grew/controller.py index 58ced27..4ec4179 100644 --- a/app/grew/controller.py +++ b/app/grew/controller.py @@ -3,7 +3,7 @@ from app.projects.service import ProjectService from app.user.service import UserService -from app.utils.grew_utils import grew_request +from app.utils.grew_utils import GrewService, grew_request from flask import Response, abort, current_app, request from flask_login import current_user from flask_restx import Namespace, Resource, reqparse @@ -13,7 +13,6 @@ ) # noqa - @api.route("//try-rule") class TryRuleResource(Resource): def post(self, project_name: str): @@ -97,26 +96,18 @@ def post(self, project_name: str): args = parser.parse_args() pattern = args.get("pattern") - reply = grew_request( - "searchPatternInGraphs", - data={"project_id": project_name, "pattern": pattern}, - ) + reply = GrewService.search_pattern_in_graphs(project_name, pattern) if reply["status"] != "OK": abort(400) trees = {} - - # print(121212,reply["data"]) - # matches={} - # reendswithnumbers = re.compile(r"_(\d+)$") - for m in reply["data"]: if m["user_id"] == "": abort(409) conll = grew_request( "getConll", data={ - "sample_id": m["sample_id"], "project_id": project_name, + "sample_id": m["sample_id"], "sent_id": m["sent_id"], "user_id": m["user_id"], }, @@ -124,26 +115,19 @@ def post(self, project_name: str): if conll["status"] != "OK": abort(404) conll = conll["data"] - # trees=project_service.formatTrees(m, trees, conll, m['user_id']) trees = formatTrees_new(m, trees, conll) - # print(56565,trees) - js = json.dumps(trees) - resp = Response(js, status=200, mimetype="application/json") - return resp + return trees -@api.route("//samples//search") +@api.route("//sample//search") class SearchInSampleResource(Resource): - def get(self, project_name: str, sample_name: str): + def post(self, project_name: str, sample_name: str): """ Aplly a grew search inside a project and sample """ - reply = grew_request( - "getSamples", data={"project_id": project_name} - ) + reply = grew_request("getSamples", data={"project_id": project_name}) data = reply.get("data") samples_name = [sa["name"] for sa in data] - if not sample_name in samples_name: abort(404) @@ -152,17 +136,8 @@ def get(self, project_name: str, sample_name: str): args = parser.parse_args() pattern = args.get("pattern") - reply = grew_request( - "searchPatternInGraphs", - data={"project_id": project_name, "pattern": pattern}, - ) - if reply["status"] != "OK": - abort(400) - + reply = GrewService.search_pattern_in_graphs(project_name, pattern) trees = {} - # matches={} - # reendswithnumbers = re.compile(r"_(\d+)$") - for m in reply["data"]: if m["sample_id"] != sample_name: continue @@ -181,8 +156,7 @@ def get(self, project_name: str, sample_name: str): if conll["status"] != "OK": abort(404) conll = conll["data"] - # trees=project_service.formatTrees(m, trees, conll, m['user_id']) - + trees = formatTrees_new(m, trees, conll) return trees diff --git a/app/projects/controller.py b/app/projects/controller.py index 0fcddcd..b4be56b 100644 --- a/app/projects/controller.py +++ b/app/projects/controller.py @@ -129,7 +129,6 @@ def get(self, projectName: str): @accepts(schema=ProjectSchemaCamel, api=api) def put(self, projectName: str): """Modify a single project (by it's name)""" - print("KK request.parsed_obj", request.parsed_obj) changes: ProjectInterface = request.parsed_obj project = ProjectService.get_by_name(projectName) diff --git a/app/utils/grew_utils.py b/app/utils/grew_utils.py index a28b0d4..e2b718a 100644 --- a/app/utils/grew_utils.py +++ b/app/utils/grew_utils.py @@ -26,7 +26,6 @@ def grew_request(fct_name, data={}, files={}): ) print(error_message) abort(500, {"message": error_message}) - response = json.loads(response.text) if response.get("status") != "OK": if "data" in response: @@ -106,3 +105,19 @@ def get_samples(project_id : str): grew_samples = reply.get("data", []) return grew_samples + + @staticmethod + def search_pattern_in_graphs(project_id: str, pattern: str, user_ids = []): + if current_app.config["ENV"] == "prod": + data = { + "project_id": project_id, + "pattern": pattern, + } + else: + data = { + "project_id": project_id, + "pattern": pattern, + "user_ids": "[{}]".format(",".join(user_ids)), + } + reply = grew_request("searchPatternInGraphs", data=data) + return reply