diff --git a/app/data/__init__.py b/app/data/__init__.py index 60a75dac..aa86d4e8 100644 --- a/app/data/__init__.py +++ b/app/data/__init__.py @@ -1,15 +1,9 @@ """app.data""" +from sys import int_info from ..services.location.csbs import CSBSLocationService from ..services.location.jhu import JhuLocationService from ..services.location.nyt import NYTLocationService -# Mapping of services to data-sources. -DATA_SOURCES = { - "jhu": JhuLocationService(), - "csbs": CSBSLocationService(), - "nyt": NYTLocationService(), -} - def data_source(source): """ @@ -18,4 +12,27 @@ def data_source(source): :returns: The service. :rtype: LocationService """ - return DATA_SOURCES.get(source.lower()) + + jhuLocationService = JhuLocationService() + csbsLocationService: CSBSLocationService() + nytLocationService = NYTLocationService() + + return DataSource(jhuLocationService, csbsLocationService, nytLocationService).get(source.lower()) + +# Mapping of services to data-sources. + + +class DataSource: + def __init__(self, jhuLocationService, csbsLocationService, nytLocationService): + self.jhuLocationService = jhuLocationService + self.csbsLocationService = csbsLocationService + self.nytLocationService = nytLocationService + + def get(self, sourceName): + if(sourceName == "jhu"): + return self.jhuLocationService + + if(sourceName == "csbs"): + return self.csbsLocationService + + return self.nytLocationService