__init__.py 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. """
  2. A place to keep all routes to endpoints that previously existed and are now sunset.
  3. """
  4. from flask import Flask, Blueprint
  5. from flexmeasures.api.common.utils.deprecation_utils import (
  6. deprecate_blueprint,
  7. sunset_blueprint,
  8. )
  9. # The sunset API blueprints. They are registered with the Flask app (see register_at)
  10. flexmeasures_api_v1 = Blueprint("flexmeasures_api_v1", __name__)
  11. flexmeasures_api_v1_1 = Blueprint("flexmeasures_api_v1_1", __name__)
  12. flexmeasures_api_v1_2 = Blueprint("flexmeasures_api_v1_2", __name__)
  13. flexmeasures_api_v1_3 = Blueprint("flexmeasures_api_v1_3", __name__)
  14. flexmeasures_api_v2_0 = Blueprint("flexmeasures_api_v2_0", __name__)
  15. SUNSET_INFO = [
  16. dict(
  17. blueprint=flexmeasures_api_v1,
  18. api_version_being_sunset="1.0",
  19. deprecation_date="2022-12-14",
  20. deprecation_link="https://flexmeasures.readthedocs.io/en/latest/api/introduction.html#deprecation-and-sunset",
  21. sunset_date="2023-05-01",
  22. sunset_link="https://flexmeasures.readthedocs.io/en/v0.13.0/api/v1.html",
  23. ),
  24. dict(
  25. blueprint=flexmeasures_api_v1_1,
  26. api_version_being_sunset="1.1",
  27. deprecation_date="2022-12-14",
  28. deprecation_link="https://flexmeasures.readthedocs.io/en/latest/api/introduction.html#deprecation-and-sunset",
  29. sunset_date="2023-05-01",
  30. sunset_link="https://flexmeasures.readthedocs.io/en/v0.13.0/api/v1_1.html",
  31. ),
  32. dict(
  33. blueprint=flexmeasures_api_v1_2,
  34. api_version_being_sunset="1.2",
  35. deprecation_date="2022-12-14",
  36. deprecation_link="https://flexmeasures.readthedocs.io/en/latest/api/introduction.html#deprecation-and-sunset",
  37. sunset_date="2023-05-01",
  38. sunset_link="https://flexmeasures.readthedocs.io/en/v0.13.0/api/v1_2.html",
  39. ),
  40. dict(
  41. blueprint=flexmeasures_api_v1_3,
  42. api_version_being_sunset="1.3",
  43. deprecation_date="2022-12-14",
  44. deprecation_link="https://flexmeasures.readthedocs.io/en/latest/api/introduction.html#deprecation-and-sunset",
  45. sunset_date="2023-05-01",
  46. sunset_link="https://flexmeasures.readthedocs.io/en/v0.13.0/api/v1_3.html",
  47. ),
  48. dict(
  49. blueprint=flexmeasures_api_v2_0,
  50. api_version_being_sunset="2.0",
  51. deprecation_date="2022-12-14",
  52. deprecation_link="https://flexmeasures.readthedocs.io/en/latest/api/introduction.html#deprecation-and-sunset",
  53. sunset_date="2023-05-01",
  54. sunset_link="https://flexmeasures.readthedocs.io/en/v0.13.0/api/v2_0.html",
  55. ),
  56. ]
  57. for info in SUNSET_INFO:
  58. deprecate_blueprint(**info)
  59. sunset_blueprint(**info, rollback_possible=False)
  60. def register_at(app: Flask):
  61. """This can be used to register this blueprint together with other api-related things"""
  62. import flexmeasures.api.sunset.routes # noqa: F401 this is necessary to load the endpoints
  63. app.register_blueprint(flexmeasures_api_v1, url_prefix="/api/v1")
  64. app.register_blueprint(flexmeasures_api_v1_1, url_prefix="/api/v1_1")
  65. app.register_blueprint(flexmeasures_api_v1_2, url_prefix="/api/v1_2")
  66. app.register_blueprint(flexmeasures_api_v1_3, url_prefix="/api/v1_3")
  67. app.register_blueprint(flexmeasures_api_v2_0, url_prefix="/api/v2_0")