Skip to content

Commit 06c5d37

Browse files
committed
applying entry type granularity
1 parent 630ddb0 commit 06c5d37

File tree

2 files changed

+23
-18
lines changed

2 files changed

+23
-18
lines changed

beacon/response/builder.py

+23-3
Original file line numberDiff line numberDiff line change
@@ -14,36 +14,56 @@ async def builder(self, request: Request, datasets, qparams, entry_type, entry_i
1414
source_entry_type = source_entry_type[1]
1515
if source_entry_type == 'analyses':
1616
source = analyses['database']
17+
source_granularity = analyses['granularity']
1718
elif source_entry_type == 'biosamples':
1819
source = biosamples['database']
20+
source_granularity = biosamples['granularity']
1921
elif source_entry_type == 'individuals':
2022
source = individuals['database']
23+
source_granularity = individuals['granularity']
2124
elif source_entry_type == 'runs':
2225
source = runs['database']
26+
source_granularity = runs['granularity']
2327
elif entry_type == 'g_variants':
2428
source = g_variants['database']
29+
source_granularity = g_variants['granularity']
2530
elif '_' in entry_type:
2631
source = g_variants['database']
32+
source_granularity = g_variants['granularity']
2733
elif entry_type == 'analyses':
2834
source = analyses['database']
35+
source_granularity = analyses['granularity']
2936
elif entry_type == 'biosamples':
3037
source = biosamples['database']
38+
source_granularity = biosamples['granularity']
3139
elif entry_type == 'individuals':
3240
source = individuals['database']
41+
source_granularity = individuals['granularity']
3342
elif entry_type == 'runs':
3443
source = runs['database']
44+
source_granularity = runs['granularity']
45+
if source_granularity['record']==True:
46+
allowed_granularity='record'
47+
elif source_granularity['count']==True:
48+
allowed_granularity='count'
49+
else:
50+
allowed_granularity='boolean'
3551
complete_module='beacon.connections.'+source+'.executor'
3652
import importlib
3753
module = importlib.import_module(complete_module, package=None)
3854
testMode = qparams.query.test_mode
3955
if testMode == True:
4056
datasets = ['test']
4157
datasets_docs, datasets_count, count, entity_schema, include, datasets = await module.execute_function(self, entry_type, datasets, qparams, entry_id)
42-
if include != 'NONE' and granularity == Granularity.RECORD and max_beacon_granularity == 'record':
58+
if include != 'NONE' and granularity == Granularity.RECORD and max_beacon_granularity == 'record' and allowed_granularity=='record':
4359
response = build_beacon_record_response_by_dataset(self, datasets, datasets_docs, datasets_count, count, qparams, entity_schema)
44-
elif include == 'NONE' and granularity == Granularity.RECORD and max_beacon_granularity == 'record':
60+
elif include == 'NONE' and granularity == Granularity.RECORD and max_beacon_granularity == 'record' and allowed_granularity=='record':
4561
response = build_beacon_none_response(self, datasets_docs["NONE"], count, qparams, entity_schema)
46-
elif granularity == Granularity.COUNT and max_beacon_granularity in ['count', 'record'] or granularity == Granularity.RECORD and max_beacon_granularity in ['count']:
62+
elif granularity == Granularity.COUNT and max_beacon_granularity in ['count', 'record'] and allowed_granularity in ['count', 'record']:
63+
response = build_beacon_count_response(self, count, qparams, entity_schema)
64+
elif granularity == Granularity.RECORD and max_beacon_granularity in ['count'] and allowed_granularity in ['count', 'record']:
65+
response = build_beacon_count_response(self, count, qparams, entity_schema)
66+
elif granularity == Granularity.RECORD and allowed_granularity in ['count'] and max_beacon_granularity in ['count', 'record']:
4767
response = build_beacon_count_response(self, count, qparams, entity_schema)
4868
else:
4969
response = build_beacon_boolean_response(self, count, qparams, entity_schema)

beacon/source/manage.py

-15
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
analyses={
44
'granularity': {
5-
'boolean': True,
65
'count': True,
76
'record': True
87
},
@@ -15,7 +14,6 @@
1514
}
1615
biosamples={
1716
'granularity': {
18-
'boolean': True,
1917
'count': True,
2018
'record': True
2119
},
@@ -29,11 +27,6 @@
2927
'database': 'mongo'
3028
}
3129
cohorts={
32-
'granularity': {
33-
'boolean': True,
34-
'count': True,
35-
'record': True
36-
},
3730
'singleEntryUrl': True,
3831
'endpoints': {
3932
'analysis': True,
@@ -44,11 +37,6 @@
4437
'database': 'mongo'
4538
}
4639
datasets={
47-
'granularity': {
48-
'boolean': True,
49-
'count': True,
50-
'record': True
51-
},
5240
'singleEntryUrl': True,
5341
'endpoints': {
5442
'analysis': True,
@@ -62,7 +50,6 @@
6250
}
6351
g_variants={
6452
'granularity': {
65-
'boolean': True,
6653
'count': True,
6754
'record': True
6855
},
@@ -78,7 +65,6 @@
7865
}
7966
individuals={
8067
'granularity': {
81-
'boolean': True,
8268
'count': True,
8369
'record': True
8470
},
@@ -94,7 +80,6 @@
9480
}
9581
runs={
9682
'granularity': {
97-
'boolean': True,
9883
'count': True,
9984
'record': True
10085
},

0 commit comments

Comments
 (0)