old_contents: # -*- coding: utf-8 -*-
  # Copyright 2016 OpenMarket Ltd
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  from twisted.internet import defer
  
  from synapse.http.servlet import RestServlet, parse_json_object_from_request
  from ._base import client_v2_patterns
  
  import logging
  
  
  logger = logging.getLogger(__name__)
  
  
  class ReportEventRestServlet(RestServlet):
      PATTERNS = client_v2_patterns(
          "/rooms/(?P<room_id>[^/]*)/report$"
      )
  
      def __init__(self, hs):
          super(ReportEventRestServlet, self).__init__()
          self.hs = hs
          self.auth = hs.get_auth()
          self.store = hs.get_datastore()
  
      @defer.inlineCallbacks
      def on_POST(self, request, room_id):
          requester = yield self.auth.get_user_by_req(request)
          user_id = requester.user.to_string()
  
          body = parse_json_object_from_request(request)
  
          event_id = body["event_id"]
  
          yield self.store.add_event_report(
              room_id=room_id,
              event_id=event_id,
              user_id=user_id,
              reason=body.get("reason"),
              content=body,
          )
  
          defer.returnValue((200, {}))
  
  
  def register_servlets(hs, http_server):
      ReportEventRestServlet(hs).register(http_server)
  
new_contents: # -*- coding: utf-8 -*-
  # Copyright 2016 OpenMarket Ltd
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  from twisted.internet import defer
  
  from synapse.http.servlet import RestServlet, parse_json_object_from_request
  from ._base import client_v2_patterns
  
  import logging
  
  
  logger = logging.getLogger(__name__)
  
  
  class ReportEventRestServlet(RestServlet):
      PATTERNS = client_v2_patterns(
          "/rooms/(?P<room_id>[^/]*)/report/(?P<event_id>[^/]*)$"
      )
  
      def __init__(self, hs):
          super(ReportEventRestServlet, self).__init__()
          self.hs = hs
          self.auth = hs.get_auth()
          self.store = hs.get_datastore()
  
      @defer.inlineCallbacks
      def on_POST(self, request, room_id, event_id):
          requester = yield self.auth.get_user_by_req(request)
          user_id = requester.user.to_string()
  
          body = parse_json_object_from_request(request)
  
          yield self.store.add_event_report(
              room_id=room_id,
              event_id=event_id,
              user_id=user_id,
              reason=body.get("reason"),
              content=body,
          )
  
          defer.returnValue((200, {}))
  
  
  def register_servlets(hs, http_server):
      ReportEventRestServlet(hs).register(http_server)
  
subject: Move event_id to path