From 0ad77c74cc0e8db86f52222907b3318582a7188f Mon Sep 17 00:00:00 2001
From: Cyril  NERIN <cnerin@pasteur.fr>
Date: Tue, 27 Jul 2021 17:15:16 +0200
Subject: [PATCH]  FIX #92 FEAT #93 FEAT #94

---
 jass/server.py | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/jass/server.py b/jass/server.py
index 7f931125..a2c7969e 100644
--- a/jass/server.py
+++ b/jass/server.py
@@ -40,6 +40,7 @@ class LocalProjectParamsSchema(ma.Schema):
     chromosome = ma.fields.Integer()
     start = ma.fields.Integer()
     end = ma.fields.Integer()
+    to_init = ma.fields.Integer()
 
 
 class ProjectStatusSchema(ma.Schema):
@@ -120,6 +121,7 @@ class LocalProjectCreateMethodView(MethodView):
             str(parameters["chromosome"]),
             str(parameters["start"]),
             str(parameters["end"]),
+            str(parameters["to_init"]),
         )
 
 
@@ -396,6 +398,45 @@ class ProjectZoomPlotMethodView(MethodView):
                 abort(500)
 
 
+@blp_projects.route("/<project_id>/gene_exon")
+class ProjectGeneExonMethodView(MethodView):
+    def get(self, project_id):
+        try:
+            return (
+                Project(id=project_id).get_project_gene_exon_data(),
+                200,
+                {"Content-Type": "text/plain; charset=utf-8"},
+            )
+        except FileNotFoundError:
+            status = Project(id=project_id).status
+            if status == Project.DOES_NOT_EXIST:
+                return (
+                    f"project {project_id} does not exist",
+                    404,
+                    {"Content-Type": "text/plain; charset=utf-8"},
+                )
+            elif status["worktable"] == Project.CREATING:
+                return (
+                    "data not ready yet",
+                    202,
+                    {"Content-Type": "text/plain; charset=utf-8"},
+                )
+            else:
+                abort(500)
+
+
+@blp_projects.route("/<project_id>/error_msg")
+class ProjectErrorMsgMethodView(MethodView):
+    def get(self, project_id):
+        return Project(id=project_id).get_error_msg()
+
+
+@blp_projects.route("/<project_id>/dispo_gene_exon")
+class ProjectDispoGeneExonMethodView(MethodView):
+    def get(self, project_id):
+        return Project(id=project_id).get_dispo_gene_exon()
+
+
 class JassApp(Flask):
     """
     JassApp builds the JASS Flask application
-- 
GitLab