diff --git a/client/pages/index.vue b/client/pages/index.vue index 2001b7e24d2c8de6810bf8fafd642eb007d780ef..7f6077b103d7683e63102c0c8bc6517e898cfece 100644 --- a/client/pages/index.vue +++ b/client/pages/index.vue @@ -57,7 +57,11 @@ export default { }, async asyncData({ $axios, params, $auth }) { try { - const initmeta = await $axios.$get('/initmeta') + const data = { + initTableName: "initTable.hdf5" + // initTableName: "initTableTest1.hdf5" + }; + const initmeta = await $axios.$post('/initmeta', data) return { initmeta, } diff --git a/jass/models/inittable.py b/jass/models/inittable.py index 4852e11059d2ddf4e7bbfe53f4e9f865c2790e6d..b25dad8ce392069e9680337821b1558e95dfaa56 100644 --- a/jass/models/inittable.py +++ b/jass/models/inittable.py @@ -28,9 +28,16 @@ class InitMeta(object): def get_inittable_meta(file_name): init_store = HDFStore(file_name, mode='r') nb_snps = init_store.get_storer("SumStatTab").nrows + name="Missing name" + desc="Missing description" init_store.close() nb_phenotypes = read_hdf(file_name, "PhenoList").shape[0] - return {"nb_snps":int(nb_snps), "nb_phenotypes":int(nb_phenotypes)} + return dict( + nb_snps=int(nb_snps), + nb_phenotypes=int(nb_phenotypes), + name=name, + desc=desc, + ) def get_gwasname(file_name): return "_".join(os.path.basename(file_name).split("_")[0:3]) diff --git a/jass/server.py b/jass/server.py index a39869b13b22b4ae51a7b55f9ab1e28732c77b82..2b6cbb58fecd7e21a79a70c8799041a7ee20bc4d 100644 --- a/jass/server.py +++ b/jass/server.py @@ -60,8 +60,8 @@ def phenotypes_list(init_table_name: InitTableNameModel): except FileNotFoundError as e: # initTable does not exists raise HTTPException(status_code=404, detail=str(e)) -@app.get("/api/initmeta") -def inittable_meta(): +@app.post("/api/initmeta") +def inittable_meta(init_table_name: InitTableNameModel): """Number of phenotype and SNPs""" return get_inittable_meta(os.path.join(config["DATA_DIR"], "initTable.hdf5")) diff --git a/jass/test/test_server.py b/jass/test/test_server.py index 6d5eec95cb9733ddb3430aeaffab96bd98c170e4..7172207031416a0b0b873062b50d798b51ddb5e6 100644 --- a/jass/test/test_server.py +++ b/jass/test/test_server.py @@ -59,8 +59,16 @@ class TestDefaultController(JassWebClientTestCase): self.assert200(response, "Response body is : " + response.content.decode("utf-8")) def test_initmeta(self): - response = self.testing_client.get("/api/initmeta") + response = self.testing_client.post("/api/initmeta", json={}) self.assert200(response, "Response body is : " + response.content.decode("utf-8")) + respMain = json.loads(response.content.decode("utf-8")) + + response = self.testing_client.post("/api/initmeta", json={"initTableName": "initTableTest1.hdf5"}) + self.assert200(response, "Response body is : " + response.content.decode("utf-8")) + respT1 = json.loads(response.content.decode("utf-8")) + + self.assertNotEqual(respT1, respMain) + self.assertSetEqual(set(respMain.keys()), {'nb_phenotypes', 'nb_snps', 'name', 'desc'}) if __name__ == "__main__":