forked from MirrorHub/synapse
Added /matrix/content path, HS resource_for_content_repo attribute and FileUploadResource. Added stub methods.
This commit is contained in:
parent
301e55d11d
commit
a18b1a649c
4 changed files with 41 additions and 4 deletions
|
@ -18,3 +18,4 @@
|
|||
CLIENT_PREFIX = "/matrix/client/api/v1"
|
||||
FEDERATION_PREFIX = "/matrix/federation/v1"
|
||||
WEB_CLIENT_PREFIX = "/matrix/client"
|
||||
CONTENT_REPO_PREFIX = "/matrix/content"
|
|
@ -24,9 +24,11 @@ from twisted.python.log import PythonLoggingObserver
|
|||
from twisted.web.resource import Resource
|
||||
from twisted.web.static import File
|
||||
from twisted.web.server import Site
|
||||
from synapse.http.server import JsonResource, RootRedirect
|
||||
from synapse.http.server import JsonResource, RootRedirect, FileUploadResource
|
||||
from synapse.http.client import TwistedHttpClient
|
||||
from synapse.api.urls import CLIENT_PREFIX, FEDERATION_PREFIX, WEB_CLIENT_PREFIX
|
||||
from synapse.api.urls import (
|
||||
CLIENT_PREFIX, FEDERATION_PREFIX, WEB_CLIENT_PREFIX, CONTENT_REPO_PREFIX
|
||||
)
|
||||
|
||||
from daemonize import Daemonize
|
||||
|
||||
|
@ -53,6 +55,9 @@ class SynapseHomeServer(HomeServer):
|
|||
def build_resource_for_web_client(self):
|
||||
return File("webclient") # TODO configurable?
|
||||
|
||||
def build_resource_for_content_repo(self):
|
||||
return FileUploadResource("uploads")
|
||||
|
||||
def build_db_pool(self):
|
||||
""" Set up all the dbs. Since all the *.sql have IF NOT EXISTS, so we
|
||||
don't have to worry about overwriting existing content.
|
||||
|
@ -101,7 +106,8 @@ class SynapseHomeServer(HomeServer):
|
|||
# [ ("/aaa/bbb/cc", Resource1), ("/aaa/dummy", Resource2) ]
|
||||
desired_tree = [
|
||||
(CLIENT_PREFIX, self.get_resource_for_client()),
|
||||
(FEDERATION_PREFIX, self.get_resource_for_federation())
|
||||
(FEDERATION_PREFIX, self.get_resource_for_federation()),
|
||||
(CONTENT_REPO_PREFIX, self.get_resource_for_content_repo())
|
||||
]
|
||||
if web_client:
|
||||
logger.info("Adding the web client.")
|
||||
|
|
|
@ -25,6 +25,7 @@ from twisted.web.server import NOT_DONE_YET
|
|||
from twisted.web.util import redirectTo
|
||||
|
||||
import collections
|
||||
import json
|
||||
import logging
|
||||
|
||||
|
||||
|
@ -176,6 +177,33 @@ class RootRedirect(resource.Resource):
|
|||
return resource.Resource.getChild(self, name, request)
|
||||
|
||||
|
||||
class FileUploadResource(resource.Resource):
|
||||
isLeaf = True
|
||||
|
||||
def __init__(self, directory):
|
||||
resource.Resource.__init__(self)
|
||||
self.directory = directory
|
||||
|
||||
def render(self, request):
|
||||
self._async_render(request)
|
||||
return server.NOT_DONE_YET
|
||||
|
||||
# @defer.inlineCallbacks
|
||||
def _async_render(self, request):
|
||||
request.setResponseCode(200)
|
||||
request.setHeader(b"Content-Type", b"application/json")
|
||||
|
||||
request.setHeader("Access-Control-Allow-Origin", "*")
|
||||
request.setHeader("Access-Control-Allow-Methods",
|
||||
"GET, POST, PUT, DELETE, OPTIONS")
|
||||
request.setHeader("Access-Control-Allow-Headers",
|
||||
"Origin, X-Requested-With, Content-Type, Accept")
|
||||
|
||||
request.write(json.dumps({"url": "not_implemented"}))
|
||||
request.finish()
|
||||
defer.succeed("not implemented")
|
||||
|
||||
|
||||
def respond_with_json_bytes(request, code, json_bytes, send_cors=False):
|
||||
"""Sends encoded JSON in response to the given request.
|
||||
|
||||
|
|
|
@ -72,6 +72,7 @@ class BaseHomeServer(object):
|
|||
'resource_for_client',
|
||||
'resource_for_federation',
|
||||
'resource_for_web_client',
|
||||
'resource_for_content_repo',
|
||||
]
|
||||
|
||||
def __init__(self, hostname, **kwargs):
|
||||
|
@ -140,6 +141,7 @@ class HomeServer(BaseHomeServer):
|
|||
resource_for_client
|
||||
resource_for_web_client
|
||||
resource_for_federation
|
||||
resource_for_content_repo
|
||||
http_client
|
||||
db_pool
|
||||
"""
|
||||
|
|
Loading…
Reference in a new issue