92 lines
4.8 KiB
Python
92 lines
4.8 KiB
Python
import os
|
|
from datetime import timedelta
|
|
|
|
|
|
class Config:
|
|
"""Base configuration for Flask app"""
|
|
|
|
SECRET_KEY = os.getenv("SECRET_KEY", "supersecretkey")
|
|
JWT_SECRET_KEY = os.getenv("JWT_SECRET_KEY", "your_jwt_secret")
|
|
DEBUG = True
|
|
|
|
KAFKA_BROKER = os.getenv("KAFKA_BROKER", "dev-events.simbrellang.net:9085")
|
|
KAFKA_TOPICS = [topic.strip() for topic in os.getenv("KAFKA_TOPICS", "PROCESS_PAYMENT,LOAN_REPAYMENT").split(",") if topic.strip()]
|
|
KAFKA_TIMEOUT = float( os.getenv("KAFKA_TIMEOUT", 1000.0) )
|
|
|
|
JWT_ACCESS_TOKEN_EXPIRES = os.getenv("JWT_ACCESS_TOKEN_EXPIRES", timedelta(hours=1))
|
|
JWT_REFRESH_TOKEN_EXPIRES = os.getenv(
|
|
"JWT_REFRESH_TOKEN_EXPIRES", timedelta(days=30)
|
|
)
|
|
|
|
BANK_CALL_APP_ID = os.getenv("BANK_CALL_APP_ID", "app1")
|
|
BANK_CALL_API_KEY = os.getenv("BANK_CALL_API_KEY", "testtest-api-key-12345")
|
|
BANK_CALL_BASIC_AUTH_USERNAME = os.environ.get(
|
|
"BANK_CALL_BASIC_AUTH_USERNAME", "simbrella"
|
|
)
|
|
BANK_CALL_BASIC_AUTH_PASSWORD = os.environ.get(
|
|
"BANK_CALL_BASIC_AUTH_PASSWORD", "G7$k9@pL2!qR"
|
|
)
|
|
|
|
DATABASE_USER = os.getenv("DATABASE_USER")
|
|
DATABASE_PASSWORD = os.getenv("DATABASE_PASSWORD")
|
|
DATABASE_HOST = os.getenv("DATABASE_HOST")
|
|
DATABASE_NAME = os.getenv("DATABASE_NAME")
|
|
DATABASE_PORT = os.getenv("DATABASE_PORT", 10532)
|
|
DATABASE_SID = os.environ.get("DATABASE_SID", "FREE")
|
|
DNS = f"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST={DATABASE_HOST})(PORT={DATABASE_PORT}))(CONNECT_DATA=(SID={DATABASE_SID})))"
|
|
|
|
|
|
SQLALCHEMY_DATABASE_URI_INTERNAL = (f"oracle+oracledb://{DATABASE_USER}:{DATABASE_PASSWORD}@{DNS}")
|
|
#SQLALCHEMY_DATABASE_URI_INTERNAL = (f"oracle+oracledb://{DATABASE_USER}:{DATABASE_PASSWORD}@{DNS}")
|
|
SQLALCHEMY_DATABASE_URI = os.getenv("SQLALCHEMY_DATABASE_URI_FULL", SQLALCHEMY_DATABASE_URI_INTERNAL)
|
|
|
|
# SQLALCHEMY_DATABASE_URI = f"postgresql+psycopg2://{DATABASE_USER}:{DATABASE_PASSWORD}@{DATABASE_HOST}:{DATABASE_PORT}/{DATABASE_NAME}"
|
|
SQLALCHEMY_TRACK_MODIFICATIONS = False
|
|
# SQLALCHEMY_ECHO = True
|
|
OVERRIDE_COLLECTION_TRANCATION_ID = int(os.getenv("OVERRIDE_COLLECTION_TRANCATION_ID", 100))
|
|
|
|
|
|
MAIL_SERVER = os.getenv('MAIL_SERVER','smtp.zoho.com')
|
|
MAIL_PORT = os.getenv('MAIL_PORT', 587)
|
|
MAIL_USERNAME = os.getenv('MAIL_USERNAME', 'firstadvance@dynamikservices.tech')
|
|
MAIL_PASSWORD = os.getenv('MAIL_PASSWORD')
|
|
MAIL_USE_TLS = os.getenv('MAIL_USE_TLS', 'True').lower() in ('true', '1', 'yes')
|
|
MAIL_USE_SSL = os.getenv('MAIL_USE_SSL', 'False').lower() in ('true', '1', 'yes')
|
|
MAIL_DEFAULT_SENDER = ('FirstAdvance', 'firstadvance@dynamikservices.tech')
|
|
MAIL_RECEIVER= os.getenv('MAIL_RECEIVER', 'chinenyeumeaku@gmail.com,umeakuchinenye@gmail.com')
|
|
|
|
|
|
# Processing Overdue LOANS sections
|
|
OVERDUE_LOAN_BATCH_SIZE = int(os.getenv("OVERDUE_LOAN_BATCH_SIZE", 10))
|
|
OVERDUE_LOAN_DELAY_SECONDS = int(os.getenv("OVERDUE_LOAN_DELAY_SECONDS", 5))
|
|
OVERDUE_LOAN_BATCH_DELAY_SECONDS = int(
|
|
os.getenv("OVERDUE_LOAN_BATCH_DELAY_SECONDS", 5)
|
|
)
|
|
OVERDUE_GRACE_PERIOD_DAYS = int(os.getenv("OVERDUE_GRACE_PERIOD_DAYS", 30))
|
|
OVERDUE_PROCESSING_LIST_LIMIT = int(os.getenv("OVERDUE_PROCESSING_LIST_LIMIT", 100))
|
|
PENAL_CHARGE_PERCENTAGE = os.getenv("PENAL_CHARGE_PERCENTAGE", 1)
|
|
PENAL_CHARGE_INTERVAL_DAYS = os.getenv("PENAL_CHARGE_INTERVAL_DAYS", 30)
|
|
PENAL_CHARGE_MAXIMUM_COUNT = os.getenv("PENAL_CHARGE_MAXIMUM_COUNT", 6)
|
|
|
|
#processing failed disbursement sections
|
|
FAILED_DISBURSEMENT_BATCH_SIZE = int(os.getenv("FAILED_DISBURSEMENT_BATCH_SIZE", 10))
|
|
FAILED_DISBURSEMENT_DELAY_SECONDS = int(os.getenv("FAILED_DISBURSEMENT_DELAY_SECONDS", 5))
|
|
FAILED_DISBURSEMENT_BATCH_DELAY_SECONDS = int(
|
|
os.getenv("FAILED_DISBURSEMENT_BATCH_DELAY_SECONDS", 5)
|
|
)
|
|
FAILED_RETRY_TIME_INTERVAL_SECONDS = int(os.getenv("FAILED_RETRY_TIME_INTERVAL_SECONDS", 86400)) #24 hours = 86400 seconds
|
|
|
|
|
|
BANK_CALL_API_TIME_OUT = os.getenv("BANK_CALL_API_TIME_OUT", 100)
|
|
BANK_CALL_BASE_URL = os.getenv("BANK_CALL_BASE_URL", "https://bank-emulator.dev.simbrellang.net/api")
|
|
BANK_CALL_SMS_BASE_URL= os.getenv("BANK_CALL_SMS_BASE_URL","https://first-advance-middleware-develop.fbn-devops-dev-asenv.appserviceenvironment.net/SMS")
|
|
BANK_CALL_DISBURSE_LOAN_ENDPOINT = os.getenv("BANK_CALL_DISBURSE_LOAN_ENDPOINT","/DisburseLoan")
|
|
BANK_CALL_COLLECT_LOAN_ENDPOINT = os.getenv("BANK_CALL_COLLECT_LOAN_ENDPOINT","/CollectLoan")
|
|
BANK_CALL_TRANSACTION_VERIFY = os.getenv("BANK_CALL_TRANSACTION_VERIFY", "/TransactionVerify")
|
|
BANK_HEALTH_CHECK_ENDPOINT = os.getenv("BANK_HEALTH_CHECK_ENDPOINT", "/system-health-check")
|
|
BANK_CALL_AUTH_ENDPOINT = os.getenv("BANK_CALL_AUTH_ENDPOINT", "/Auth/generate-token")
|
|
BANK_GRANT_TYPE = os.getenv("BANK_GRANT_TYPE", "password")
|
|
TEST_NO = os.getenv("TEST_NO", "2347038224367")
|
|
|
|
settings = Config()
|