config.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import os
  2. from dotenv import load_dotenv
  3. from apscheduler.jobstores.mongodb import MongoDBJobStore
  4. from pymongo import MongoClient
  5. load_dotenv()
  6. BASE_DIR = os.path.abspath(os.path.dirname(__file__))
  7. class Config:
  8. SECRET_KEY = os.getenv('SECRET_KEY', 'my_precious_secret_key')
  9. DEBUG = False
  10. class DevelopmentConfig(Config):
  11. DEBUG = True
  12. mongo_client = MongoClient(os.getenv('MONGODB_URL_DEV'))
  13. MONGODB_SETTINGS = {
  14. "db": os.getenv('db'),
  15. "username": os.getenv('MONGODB_USERNAME'),
  16. "password": os.getenv('MONGODB_PASSWORD'),
  17. "host": os.getenv('MONGODB_HOST'),
  18. "port": int(os.getenv('MONGODB_PORT_DEV'))
  19. }
  20. SCHEDULER_JOBSTORES = {
  21. 'default': MongoDBJobStore(database=os.getenv('MONGODB_DB'),
  22. collection='mail_scheduler',
  23. client=mongo_client)
  24. }
  25. SCHEDULER_API_ENABLED = True
  26. class TestingConfig(Config):
  27. DEBUG = True
  28. TESTING = True
  29. PRESERVE_CONTEXT_ON_EXCEPTION = False
  30. class ProductionConfig(Config):
  31. DEBUG = False
  32. mongo_client = MongoClient(os.getenv('MONGODB_URL'))
  33. MONGODB_SETTINGS = {
  34. "db": os.getenv('MONGODB_DB'),
  35. "username": os.getenv('MONGODB_USERNAME'),
  36. "password": os.getenv('MONGODB_PASSWORD'),
  37. "host": os.getenv('MONGODB_HOST'),
  38. "port": int(os.getenv('MONGODB_PORT'))
  39. }
  40. SCHEDULER_JOBSTORES = {
  41. 'default': MongoDBJobStore(database=os.getenv('MONGODB_DB'),
  42. collection='mail_scheduler',
  43. client=mongo_client)
  44. }
  45. SCHEDULER_API_ENABLED = True
  46. config_by_name = dict(
  47. dev=DevelopmentConfig,
  48. test=TestingConfig,
  49. prod=ProductionConfig
  50. )
  51. key = Config.SECRET_KEY