main.py 1.9 KB

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