"""Service configs.""" import os import boto3 class Config: def __init__(self): if os.environ.get('LOCAL'): self.DB_NAME = os.environ['MYSQL_DB_NAME'] self.DB_HOST = os.environ['MYSQL_DB_HOST'] self.DB_PORT = int(os.environ.get('MYSQL_DB_PORT', 3306)) self.DB_USER = os.environ['MYSQL_DB_USER'] self.DB_PASS = os.environ['MYSQL_DB_PASS'] self.REDIS_HOST = os.environ['REDIS_HOST'] self.REDIS_PORT = int(os.environ.get('REDIS_PORT', 6379)) self.PUSH_NOTIFICATIONS_QUEUE = os.environ['PUSH_NOTIFICATIONS_QUEUE'] self.SENTRY_DSN = os.environ['SENTRY_DSN'] else: sm_client = boto3.client('secretsmanager') self.DB_NAME = sm_client.get_secret_value(SecretId=os.environ['MYSQL_DB_NAME'])['SecretString'] self.DB_PASS = sm_client.get_secret_value(SecretId=os.environ['MYSQL_DB_PASS'])['SecretString'] self.DB_USER = sm_client.get_secret_value(SecretId=os.environ['MYSQL_DB_USER'])['SecretString'] self.DB_HOST = sm_client.get_secret_value(SecretId=os.environ['MYSQL_DB_HOST'])['SecretString'] self.DB_PORT = 3306 if 'MYSQL_DB_PORT' not in os.environ \ else int(sm_client.get_secret_value(SecretId=os.environ['MYSQL_DB_PORT'])['SecretString']) self.REDIS_HOST = sm_client.get_secret_value(SecretId=os.environ['REDIS_HOST'])['SecretString'] self.REDIS_PORT = 6379 if 'REDIS_PORT' not in os.environ \ else int(sm_client.get_secret_value(SecretId=os.environ['REDIS_PORT'])['SecretString']) self.PUSH_NOTIFICATIONS_QUEUE = sm_client.get_secret_value( SecretId=os.environ['PUSH_NOTIFICATIONS_QUEUE'])['SecretString'] self.SENTRY_DSN = sm_client.get_secret_value(SecretId=os.environ['SENTRY_DSN'])['SecretString'] self.DB_POOL_RECYCLE = int(os.environ.get('DB_POOL_RECYCLE', 7200)) self.DB_POOL_SIZE = int(os.environ.get('DB_POOL_SIZE', 1)) self.DEBUG_USER_ID = os.environ.get('DEBUG_USER_ID')