__init__.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. # -*- coding: utf-8 -*-
  2. # Copyright 2014-2016 OpenMarket Ltd
  3. # Copyright 2018 New Vector Ltd
  4. #
  5. # Licensed under the Apache License, Version 2.0 (the "License");
  6. # you may not use this file except in compliance with the License.
  7. # You may obtain a copy of the License at
  8. #
  9. # http://www.apache.org/licenses/LICENSE-2.0
  10. #
  11. # Unless required by applicable law or agreed to in writing, software
  12. # distributed under the License is distributed on an "AS IS" BASIS,
  13. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. # See the License for the specific language governing permissions and
  15. # limitations under the License.
  16. from synapse.http.server import JsonResource
  17. from synapse.rest import admin
  18. from synapse.rest.client import versions
  19. from synapse.rest.client.v1 import (
  20. directory,
  21. events,
  22. initial_sync,
  23. login as v1_login,
  24. logout,
  25. presence,
  26. profile,
  27. push_rule,
  28. pusher,
  29. room,
  30. voip,
  31. )
  32. from synapse.rest.client.v2_alpha import (
  33. account,
  34. account_data,
  35. account_validity,
  36. auth,
  37. capabilities,
  38. devices,
  39. filter,
  40. groups,
  41. keys,
  42. notifications,
  43. openid,
  44. password_policy,
  45. read_marker,
  46. receipts,
  47. register,
  48. relations,
  49. report_event,
  50. room_keys,
  51. room_upgrade_rest_servlet,
  52. sendtodevice,
  53. shared_rooms,
  54. sync,
  55. tags,
  56. thirdparty,
  57. tokenrefresh,
  58. user_directory,
  59. )
  60. class ClientRestResource(JsonResource):
  61. """Matrix Client API REST resource.
  62. This gets mounted at various points under /_matrix/client, including:
  63. * /_matrix/client/r0
  64. * /_matrix/client/api/v1
  65. * /_matrix/client/unstable
  66. * etc
  67. """
  68. def __init__(self, hs):
  69. JsonResource.__init__(self, hs, canonical_json=False)
  70. self.register_servlets(self, hs)
  71. @staticmethod
  72. def register_servlets(client_resource, hs):
  73. versions.register_servlets(hs, client_resource)
  74. # Deprecated in r0
  75. initial_sync.register_servlets(hs, client_resource)
  76. room.register_deprecated_servlets(hs, client_resource)
  77. # Partially deprecated in r0
  78. events.register_servlets(hs, client_resource)
  79. # "v1" + "r0"
  80. room.register_servlets(hs, client_resource)
  81. v1_login.register_servlets(hs, client_resource)
  82. profile.register_servlets(hs, client_resource)
  83. presence.register_servlets(hs, client_resource)
  84. directory.register_servlets(hs, client_resource)
  85. voip.register_servlets(hs, client_resource)
  86. pusher.register_servlets(hs, client_resource)
  87. push_rule.register_servlets(hs, client_resource)
  88. logout.register_servlets(hs, client_resource)
  89. # "v2"
  90. sync.register_servlets(hs, client_resource)
  91. filter.register_servlets(hs, client_resource)
  92. account.register_servlets(hs, client_resource)
  93. register.register_servlets(hs, client_resource)
  94. auth.register_servlets(hs, client_resource)
  95. receipts.register_servlets(hs, client_resource)
  96. read_marker.register_servlets(hs, client_resource)
  97. room_keys.register_servlets(hs, client_resource)
  98. keys.register_servlets(hs, client_resource)
  99. tokenrefresh.register_servlets(hs, client_resource)
  100. tags.register_servlets(hs, client_resource)
  101. account_data.register_servlets(hs, client_resource)
  102. report_event.register_servlets(hs, client_resource)
  103. openid.register_servlets(hs, client_resource)
  104. notifications.register_servlets(hs, client_resource)
  105. devices.register_servlets(hs, client_resource)
  106. thirdparty.register_servlets(hs, client_resource)
  107. sendtodevice.register_servlets(hs, client_resource)
  108. user_directory.register_servlets(hs, client_resource)
  109. groups.register_servlets(hs, client_resource)
  110. room_upgrade_rest_servlet.register_servlets(hs, client_resource)
  111. capabilities.register_servlets(hs, client_resource)
  112. account_validity.register_servlets(hs, client_resource)
  113. relations.register_servlets(hs, client_resource)
  114. password_policy.register_servlets(hs, client_resource)
  115. # moving to /_synapse/admin
  116. admin.register_servlets_for_client_rest_resource(hs, client_resource)
  117. # unstable
  118. shared_rooms.register_servlets(hs, client_resource)