__init__.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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. import synapse.rest.admin
  17. from synapse.http.server import JsonResource
  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. sync,
  54. tags,
  55. thirdparty,
  56. tokenrefresh,
  57. user_directory,
  58. )
  59. class ClientRestResource(JsonResource):
  60. """Matrix Client API REST resource.
  61. This gets mounted at various points under /_matrix/client, including:
  62. * /_matrix/client/r0
  63. * /_matrix/client/api/v1
  64. * /_matrix/client/unstable
  65. * etc
  66. """
  67. def __init__(self, hs):
  68. JsonResource.__init__(self, hs, canonical_json=False)
  69. self.register_servlets(self, hs)
  70. @staticmethod
  71. def register_servlets(client_resource, hs):
  72. versions.register_servlets(hs, client_resource)
  73. # Deprecated in r0
  74. initial_sync.register_servlets(hs, client_resource)
  75. room.register_deprecated_servlets(hs, client_resource)
  76. # Partially deprecated in r0
  77. events.register_servlets(hs, client_resource)
  78. # "v1" + "r0"
  79. room.register_servlets(hs, client_resource)
  80. v1_login.register_servlets(hs, client_resource)
  81. profile.register_servlets(hs, client_resource)
  82. presence.register_servlets(hs, client_resource)
  83. directory.register_servlets(hs, client_resource)
  84. voip.register_servlets(hs, client_resource)
  85. pusher.register_servlets(hs, client_resource)
  86. push_rule.register_servlets(hs, client_resource)
  87. logout.register_servlets(hs, client_resource)
  88. # "v2"
  89. sync.register_servlets(hs, client_resource)
  90. filter.register_servlets(hs, client_resource)
  91. account.register_servlets(hs, client_resource)
  92. register.register_servlets(hs, client_resource)
  93. auth.register_servlets(hs, client_resource)
  94. receipts.register_servlets(hs, client_resource)
  95. read_marker.register_servlets(hs, client_resource)
  96. room_keys.register_servlets(hs, client_resource)
  97. keys.register_servlets(hs, client_resource)
  98. tokenrefresh.register_servlets(hs, client_resource)
  99. tags.register_servlets(hs, client_resource)
  100. account_data.register_servlets(hs, client_resource)
  101. report_event.register_servlets(hs, client_resource)
  102. openid.register_servlets(hs, client_resource)
  103. notifications.register_servlets(hs, client_resource)
  104. devices.register_servlets(hs, client_resource)
  105. thirdparty.register_servlets(hs, client_resource)
  106. sendtodevice.register_servlets(hs, client_resource)
  107. user_directory.register_servlets(hs, client_resource)
  108. groups.register_servlets(hs, client_resource)
  109. room_upgrade_rest_servlet.register_servlets(hs, client_resource)
  110. capabilities.register_servlets(hs, client_resource)
  111. account_validity.register_servlets(hs, client_resource)
  112. relations.register_servlets(hs, client_resource)
  113. password_policy.register_servlets(hs, client_resource)
  114. # moving to /_synapse/admin
  115. synapse.rest.admin.register_servlets_for_client_rest_resource(
  116. hs, client_resource
  117. )