Source code for ecstask.osp_eventhandler_v2.utilities.application_dependencies
import logging
from pymorri.util.serverless_utils import resolve_env
logger = logging.getLogger('ecstask.osp_eventhandler_v2')
[docs]class ApplicationDependencies:
error_queue_name = None
picks_table = None
ttl = None
[docs] def __init__(self, config):
"""
This class will load all the dependencies needed for the application to run.
This can cause exceptions if the configuration is not set up properly.
Args:
config (Dictionary): Contains key value pairs for configuration of the google tables
"""
self.__load_dependencies(config)
def __load_dependencies(self, config):
"""
Private Method to load all the dependencies of the application, sort of a dependency injection simulation
Raises:
GoogleApplicationCredentialsNotValid
FlaskConfigurationKeyError
GoogleApplicationCredentialsNotFound
"""
try:
logger.info("Application starting, loading configurations.....")
self.error_queue_name = resolve_env(config["ERROR_QUEUE_NAME"])
self.picks_table = resolve_env(config["DYNAMODB_TABLE"])
self.ttl = config["DYNAMODB_TTL"]
self.orders_queue_name = resolve_env(config["ORDERS_SQS_QUEUE_NAME"])
self.orders_queue_error_table = resolve_env(config["ORDERS_SQS_ERROR_TABLE"])
except Exception as ex:
logger.error(f"Exception while loading configs {ex}")
raise ex
[docs] def get_table(self):
return self.picks_table
[docs] def get_ttl(self):
return self.ttl
[docs] def get_error_queue_name(self):
return self.error_queue_name
[docs] def get_orders_queue_name(self):
return self.orders_queue_name
[docs] def get_orders_error_table(self):
return self.orders_queue_error_table