blob: a9ff90616f7ffab98660a279ba047fefc6b92818 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
"""this module contains the all endpoints for traits"""
from unittest import mock
from flask import Blueprint
from flask import jsonify
from flask import request
from gn3.computations.traits import fetch_trait
from gn3.computations.traits import get_trait_info_data
trait = Blueprint("trait", __name__)
@trait.route("/")
def home():
"""initial endpoint for traits"""
return jsonify({"results": "success"})
@trait.route("/<string:trait_name>/<string:dataset_name>")
def create_trait(trait_name, dataset_name):
"""endpoints for creating trait first should\
call the endpoint for creating the trait only\
also acts as endpoints for fetching trait data"""
trait_dataset = mock.Mock() # xtodo should replace this with calling epoints
trait_dataset.name = dataset_name
trait_results = fetch_trait(dataset=trait_dataset, trait_name=trait_name)
return jsonify(trait_results)
@trait.route("/trait_info/<string:trait_name>", methods=["POST"])
def fetch_trait_info(trait_name):
"""api endpoint for fetching the trait info \
expects the trait and trait dataset to have\
been created """
data = request.get_json()
trait_dataset = data["trait_dataset"]
trait_data = data["trait"]
_trait_name = trait_name # should be used as key to return results
database_instance = mock.Mock()
results = get_trait_info_data(trait_dataset, trait_data, database_instance)
return jsonify(results)
|