[add]: Multi-database support using SQLAlchemy binds
This commit is contained in:
+18
-9
@@ -7,17 +7,26 @@ SWAGGER_URL="/documentation"
|
|||||||
API_URL="/swagger.json"
|
API_URL="/swagger.json"
|
||||||
|
|
||||||
# Database Configuration
|
# Database Configuration
|
||||||
DATABASE_USER=firstadvance
|
|
||||||
DATABASE_PASSWORD=FirstAdvance!
|
|
||||||
DATABASE_HOST=dev-data.simbrellang.net
|
|
||||||
DATABASE_PORT=10532
|
|
||||||
DATABASE_NAME=firstadvancedev
|
|
||||||
|
|
||||||
# DATABASE_HOST=10.20.30.60
|
|
||||||
# DATABASE_USER=firstadvance
|
# DATABASE_USER=firstadvance
|
||||||
# DATABASE_PASSWORD=firstadvance
|
# DATABASE_PASSWORD=FirstAdvance!
|
||||||
|
# DATABASE_HOST=dev-data.simbrellang.net
|
||||||
|
# DATABASE_PORT=10532
|
||||||
# DATABASE_NAME=firstadvancedev
|
# DATABASE_NAME=firstadvancedev
|
||||||
# DATABASE_PORT=5432
|
|
||||||
|
|
||||||
|
# ECO_DATABASE_USER=username
|
||||||
|
# ECO_DATABASE_PASSWORD=password
|
||||||
|
# ECO_DATABASE_HOST=localhost
|
||||||
|
# ECO_DATABASE_PORT=5432
|
||||||
|
# ECO_DATABASE_NAME=eco_db
|
||||||
|
|
||||||
|
|
||||||
|
DATABASE_USER=system
|
||||||
|
DATABASE_PASSWORD=FIRSTADV_PASS
|
||||||
|
DATABASE_HOST=209.195.2.27
|
||||||
|
# DATABASE_HOST=10.10.33.65
|
||||||
|
DATABASE_PORT=1521
|
||||||
|
DATABASE_SID=FREE
|
||||||
|
|
||||||
# Flask Configuration
|
# Flask Configuration
|
||||||
FLASK_APP=wsgi.py
|
FLASK_APP=wsgi.py
|
||||||
|
|||||||
+30
-16
@@ -1,6 +1,7 @@
|
|||||||
import os
|
import os
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
"""Base configuration for Flask app"""
|
"""Base configuration for Flask app"""
|
||||||
|
|
||||||
@@ -21,14 +22,26 @@ class Config:
|
|||||||
DNS = f"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST={DATABASE_HOST})(PORT={DATABASE_PORT}))(CONNECT_DATA=(SID={DATABASE_SID})))"
|
DNS = f"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST={DATABASE_HOST})(PORT={DATABASE_PORT}))(CONNECT_DATA=(SID={DATABASE_SID})))"
|
||||||
|
|
||||||
|
|
||||||
|
# ECO Database Configuration
|
||||||
|
ECO_DATABASE_USER = os.environ.get("ECO_DATABASE_USER", "eco_user")
|
||||||
|
ECO_DATABASE_PASSWORD = os.environ.get("ECO_DATABASE_PASSWORD", "eco_pass")
|
||||||
|
ECO_DATABASE_HOST = os.environ.get("ECO_DATABASE_HOST", "localhost")
|
||||||
|
ECO_DATABASE_PORT = os.environ.get("ECO_DATABASE_PORT", 5432)
|
||||||
|
ECO_DATABASE_NAME = os.environ.get("ECO_DATABASE_NAME", "eco_db")
|
||||||
|
|
||||||
# Database Connection
|
# Database Connection
|
||||||
# SQLALCHEMY_DATABASE_URI = f"postgresql+psycopg2://{DATABASE_USER}:{DATABASE_PASSWORD}@{DATABASE_HOST}:{DATABASE_PORT}/{DATABASE_NAME}"
|
# SQLALCHEMY_DATABASE_URI = f"postgresql+psycopg2://{DATABASE_USER}:{DATABASE_PASSWORD}@{DATABASE_HOST}:{DATABASE_PORT}/{DATABASE_NAME}"
|
||||||
|
|
||||||
SQLALCHEMY_DATABASE_URI = (f"oracle+oracledb://{DATABASE_USER}:{DATABASE_PASSWORD}@{DNS}")
|
SQLALCHEMY_DATABASE_URI = (
|
||||||
|
f"oracle+oracledb://{DATABASE_USER}:{DATABASE_PASSWORD}@{DNS}"
|
||||||
|
)
|
||||||
|
|
||||||
|
SQLALCHEMY_BINDS = {
|
||||||
|
"eco": f"postgresql+psycopg2://{ECO_DATABASE_USER}:{ECO_DATABASE_PASSWORD}@{ECO_DATABASE_HOST}:{ECO_DATABASE_PORT}/{ECO_DATABASE_NAME}"
|
||||||
|
}
|
||||||
|
|
||||||
SQLALCHEMY_TRACK_MODIFICATIONS = False
|
SQLALCHEMY_TRACK_MODIFICATIONS = False
|
||||||
|
|
||||||
|
|
||||||
JWT_SECRET_KEY = os.getenv("JWT_SECRET_KEY", "secret-key")
|
JWT_SECRET_KEY = os.getenv("JWT_SECRET_KEY", "secret-key")
|
||||||
JWT_ACCESS_TOKEN_EXPIRES = os.getenv("JWT_ACCESS_TOKEN_EXPIRES", timedelta(hours=1))
|
JWT_ACCESS_TOKEN_EXPIRES = os.getenv("JWT_ACCESS_TOKEN_EXPIRES", timedelta(hours=1))
|
||||||
JWT_REFRESH_TOKEN_EXPIRES = os.getenv(
|
JWT_REFRESH_TOKEN_EXPIRES = os.getenv(
|
||||||
@@ -38,15 +51,19 @@ class Config:
|
|||||||
# KAFKA_BROKER = 'dev-events.simbrellang.net:9085'
|
# KAFKA_BROKER = 'dev-events.simbrellang.net:9085'
|
||||||
KAFKA_BROKER = os.getenv("KAFKA_BROKER", "dev-events.simbrellang.net:9085")
|
KAFKA_BROKER = os.getenv("KAFKA_BROKER", "dev-events.simbrellang.net:9085")
|
||||||
|
|
||||||
# SIMBRELLA_ENDPOINT_RAC_CHECKS = os.getenv("SIMBRELLA_ENDPOINT_RAC_CHECKS", "RACCheck")
|
# SIMBRELLA_ENDPOINT_RAC_CHECKS = os.getenv("SIMBRELLA_ENDPOINT_RAC_CHECKS", "RACCheck")
|
||||||
VALID_APP_ID = os.getenv("SIMBRELLA_APP_ID", "app1")
|
VALID_APP_ID = os.getenv("SIMBRELLA_APP_ID", "app1")
|
||||||
VALID_API_KEY = os.getenv("SIMBRELLA_API_KEY", "test-api-key-12345")
|
VALID_API_KEY = os.getenv("SIMBRELLA_API_KEY", "test-api-key-12345")
|
||||||
SIMBRELLA_BASE_URL = os.getenv("SIMBRELLA_BASE_URL", "http://127.0.0.1:6337")
|
SIMBRELLA_BASE_URL = os.getenv("SIMBRELLA_BASE_URL", "http://127.0.0.1:6337")
|
||||||
SIMBRELLA_ENDPOINT_RAC_CHECKS = os.getenv("SIMBRELLA_ENDPOINT_RAC_CHECKS","api/rac-check")
|
SIMBRELLA_ENDPOINT_RAC_CHECKS = os.getenv(
|
||||||
|
"SIMBRELLA_ENDPOINT_RAC_CHECKS", "api/rac-check"
|
||||||
|
)
|
||||||
|
|
||||||
RAC_RESULT_accountStatus = os.environ.get("RAC_RESULT_accountStatus", "true")
|
RAC_RESULT_accountStatus = os.environ.get("RAC_RESULT_accountStatus", "true")
|
||||||
RAC_RESULT_bvnValidated = os.environ.get("RAC_RESULT_bvnValidated", "true")
|
RAC_RESULT_bvnValidated = os.environ.get("RAC_RESULT_bvnValidated", "true")
|
||||||
RAC_RESULT_creditBureauCheck = os.environ.get("RAC_RESULT_creditBureauCheck", "false")
|
RAC_RESULT_creditBureauCheck = os.environ.get(
|
||||||
|
"RAC_RESULT_creditBureauCheck", "false"
|
||||||
|
)
|
||||||
RAC_RESULT_crmsCheck = os.environ.get("RAC_RESULT_crmsCheck", "true")
|
RAC_RESULT_crmsCheck = os.environ.get("RAC_RESULT_crmsCheck", "true")
|
||||||
RAC_RESULT_hasLien = os.environ.get("RAC_RESULT_hasLien", "false")
|
RAC_RESULT_hasLien = os.environ.get("RAC_RESULT_hasLien", "false")
|
||||||
RAC_RESULT_hasPastDueLoan = os.environ.get("RAC_RESULT_hasPastDueLoan", "false")
|
RAC_RESULT_hasPastDueLoan = os.environ.get("RAC_RESULT_hasPastDueLoan", "false")
|
||||||
@@ -69,12 +86,10 @@ class Config:
|
|||||||
"rule12_CRMS_no_delinquency",
|
"rule12_CRMS_no_delinquency",
|
||||||
"rule13_BVN_ignore",
|
"rule13_BVN_ignore",
|
||||||
"rule14_no_lien",
|
"rule14_no_lien",
|
||||||
"rule15_null_ignore"
|
"rule15_null_ignore",
|
||||||
]
|
]
|
||||||
|
|
||||||
rac_false_rules = [
|
|
||||||
|
|
||||||
]
|
rac_false_rules = []
|
||||||
|
|
||||||
rac_salary_payments = [
|
rac_salary_payments = [
|
||||||
"salarypaymenT_1",
|
"salarypaymenT_1",
|
||||||
@@ -82,18 +97,17 @@ class Config:
|
|||||||
"salarypaymenT_3",
|
"salarypaymenT_3",
|
||||||
"salarypaymenT_4",
|
"salarypaymenT_4",
|
||||||
"salarypaymenT_5",
|
"salarypaymenT_5",
|
||||||
"salarypaymenT_6"
|
"salarypaymenT_6",
|
||||||
]
|
]
|
||||||
|
|
||||||
MAIL_SERVER = os.getenv('MAIL_SERVER','smtp.zoho.com')
|
MAIL_SERVER = os.getenv("MAIL_SERVER", "smtp.zoho.com")
|
||||||
MAIL_PORT = 587
|
MAIL_PORT = 587
|
||||||
MAIL_USERNAME = os.getenv('MAIL_USERNAME', 'firstadvance@dynamikservices.tech')
|
MAIL_USERNAME = os.getenv("MAIL_USERNAME", "firstadvance@dynamikservices.tech")
|
||||||
MAIL_PASSWORD = os.getenv('MAIL_PASSWORD')
|
MAIL_PASSWORD = os.getenv("MAIL_PASSWORD")
|
||||||
MAIL_USE_TLS = True
|
MAIL_USE_TLS = True
|
||||||
MAIL_USE_SSL = False
|
MAIL_USE_SSL = False
|
||||||
MAIL_DEFAULT_SENDER = ('FirstAdvance', 'firstadvance@dynamikservices.tech')
|
MAIL_DEFAULT_SENDER = ("FirstAdvance", "firstadvance@dynamikservices.tech")
|
||||||
MAIL_RECEIVER= os.getenv('MAIL_RECEIVER', 'vdagbue@gmail.com')
|
MAIL_RECEIVER = os.getenv("MAIL_RECEIVER", "vdagbue@gmail.com")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
settings = Config()
|
settings = Config()
|
||||||
|
|||||||
Reference in New Issue
Block a user