1- from flask import Blueprint , redirect , request , current_app as app
1+ from flask import Blueprint , redirect , request , abort , current_app as app
22from ..data import data_source
33
44# Follow the import order to avoid circular dependency
55api_v1 = Blueprint ('api_v1' , __name__ , url_prefix = '' )
66api_v2 = Blueprint ('api_v2' , __name__ , url_prefix = '/v2' )
77
88# API version 2.
9- from .v2 import locations , latest
9+ from .v2 import locations , latest , sources
1010
1111# API version 1.
1212from .v1 import confirmed , deaths , recovered , all
@@ -23,8 +23,12 @@ def datasource():
2323 Attaches the datasource to the request.
2424 """
2525 # Retrieve the datas ource from query param.
26- source = request .args .get ('source' , type = str , default = 'jhu' )
26+ source = data_source (request .args .get ('source' , type = str , default = 'jhu' ))
27+
28+ # Abort with 404 if source cannot be found.
29+ if not source :
30+ return abort (404 , description = 'The provided data-source was not found.' )
2731
2832 # Attach source to request and return it.
29- request .source = data_source ( source )
33+ request .source = source
3034 pass
0 commit comments