Skip to content

Commit dfa7365

Browse files
authored
Merge pull request #385 from ImagingDataCommons/idc-prod-wc
Idc prod wc
2 parents 2fbce5e + 77e10d3 commit dfa7365

File tree

3 files changed

+26
-11
lines changed

3 files changed

+26
-11
lines changed

cohorts/utils_api_v1.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,11 @@ def get_idc_data_version(version_number=None):
3434
# No version specified. Use the current version
3535
data_version = ImagingDataCommonsVersion.objects.get(active=True)
3636
else:
37-
data_version = ImagingDataCommonsVersion.objects.get(version_number=version_number)
37+
try:
38+
data_version = ImagingDataCommonsVersion.objects.get(version_number=version_number)
39+
except:
40+
# An invalid version_number was provided. Give them the latest version
41+
data_version = ImagingDataCommonsVersion.objects.get(active=True)
3842
return data_version
3943

4044

idc_collections/urls.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
url(r'^api/attributes/$', views.views_api_v1.attributes_list_api, name='attributes_list_api'),
1717
url(r'^api/v1/attributes/$', views.views_api_v1.attributes_list_api, name='attributes_list_api'),
1818
url(r'^api/v2/attributes/$', views.views_api_v2.attributes_list_api, name='attributes_list_api'),
19-
url(r'^api/v2/fields/$', views.views_api_v2.queryfields_list_api, name='queryfields_list_api'),
19+
url(r'^api/v2/fields/(?P<version>[a-zA-Z0-9. ]+)$', views.views_api_v2.queryfields_list_api, name='queryfields_list_api'),
2020
url(r'^api/analysis_results/$', views.views_api_v1.analysis_results_list_api, name='analysis_results_list_api'),
2121
url(r'^api/v1/analysis_results/$', views.views_api_v1.analysis_results_list_api, name='analysis_results_list_api'),
2222
url(r'^api/v2/analysis_results/$', views.views_api_v2.analysis_results_list_api, name='analysis_results_list_api'),

idc_collections/views/views_api_v2.py

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
from django.views.decorators.http import require_http_methods
2121
from cohorts.decorators import api_auth
2222

23-
from cohorts.utils_api_v1 import get_idc_data_version
23+
from cohorts.utils_api_v2 import get_idc_data_version
2424

2525
from solr_helpers import *
2626

@@ -139,7 +139,7 @@ def attributes_list_api(request):
139139

140140
try:
141141
data_version = get_idc_data_version('')
142-
response = {"idc_data_version": data_version.version_number, "data_sources": []}
142+
response = {"data_sources": []}
143143
sources = data_version.dataversion_set.filter(active=True).get_data_sources().filter(source_type='B').distinct()
144144
for source in sources:
145145
attributes = sorted(source.get_attr(for_faceting=False).filter(default_ui_display=True), key=lambda d: d.name.lower())
@@ -180,14 +180,25 @@ def attributes_list_api(request):
180180

181181
@api_auth
182182
@require_http_methods(["GET"])
183-
def queryfields_list_api(request):
183+
def queryfields_list_api(request, version=""):
184184
try:
185-
data_version = get_idc_data_version('')
186-
response = {"idc_data_version": data_version.version_number, "data_sources": []}
187-
188-
189-
sources = ImagingDataCommonsVersion.objects.get(active=True).get_data_sources(active=True,
190-
source_type=DataSource.BIGQUERY)
185+
if version == 'current':
186+
version = ""
187+
try:
188+
data_version = get_idc_data_version(version)
189+
except:
190+
response = {
191+
"message": f"Supplied idc_data_version '{version}' is invalid. Query the /versions endpoint for defined versions.",
192+
"code": 400
193+
}
194+
return JsonResponse(response)
195+
response = {
196+
"idc_data_version": data_version.version_number,
197+
"data_sources": [],
198+
"code": 200
199+
}
200+
sources = ImagingDataCommonsVersion.objects.filter(version_number=data_version.version_number) \
201+
.get_data_sources(source_type=DataSource.BIGQUERY)
191202

192203
# Get the ANCILLARY (TCGA) query fields
193204
image_sources = sources.prefetch_related('data_sets').filter(data_sets__data_type=DataSetType.ANCILLARY_DATA)

0 commit comments

Comments
 (0)