From d864199321a18deaf17ecf1f0236b7f36c69ffc7 Mon Sep 17 00:00:00 2001 From: Bijo Joshep Date: Sun, 25 Jul 2021 08:26:47 +0530 Subject: [PATCH] Second aggregate completed --- app/data/__init__.py | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) 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