1
1

main.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import os
  2. import sys
  3. from flask import Flask
  4. from src.errors.argument_exception import argument_exception
  5. from src.export.exporter_factory import exporter_factory
  6. from src.settings.settings_manager import settings_manager
  7. from src.logic.start_factory import start_factory
  8. from src.storage.storage import storage
  9. setman = settings_manager()
  10. start = None
  11. strg = None
  12. app = Flask(__name__)
  13. @app.route("/api/export/<storage_key>/<format>", methods=["GET"])
  14. def get_export_format(storage_key: str, format: str):
  15. global setman, start, strg
  16. try:
  17. exp = exporter_factory().create(format)
  18. except argument_exception as e:
  19. return "Wrong format: " + e.error.error_text, 400
  20. if storage_key not in strg.data:
  21. return "Key not found", 404
  22. return app.response_class(
  23. response=exp.export_by_key(storage_key),
  24. status=200,
  25. mimetype=exp.strategy.mimetype,
  26. )
  27. @app.route("/api/export/<storage_key>", methods=["GET"])
  28. def get_export(storage_key: str):
  29. global setman, start, strg
  30. format = setman.settings.export_format
  31. try:
  32. exp = exporter_factory().create(format)
  33. except argument_exception as e:
  34. return "Wrong format: " + e.error.error_text, 400
  35. if storage_key not in strg.data:
  36. return "Key not found", 404
  37. return app.response_class(
  38. response=exp.export_by_key(storage_key),
  39. status=200,
  40. mimetype=exp.strategy.mimetype,
  41. )
  42. # Инициализация приложения
  43. def run():
  44. global setman, start, strg
  45. setman.open(os.path.dirname(__file__) + "/config/settings.json")
  46. strg = storage()
  47. start = start_factory(setman.settings, strg)
  48. start.create()
  49. start.create_transactions()
  50. app.run()
  51. if __name__ == "__main__":
  52. run()