__init__.py 4.4 KB

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