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