forked from leancloud/python-sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path__init__.py
More file actions
63 lines (52 loc) · 2.09 KB
/
Copy path__init__.py
File metadata and controls
63 lines (52 loc) · 2.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# coding: utf-8
import sys
import json
from werkzeug.wrappers import Request
from werkzeug.serving import run_simple
import context
import leancloud
from .authorization import AuthorizationMiddleware
from .leanengine import LeanEngineApplication
from .leanengine import LeanEngineError
from .leanengine import register_cloud_func
from .leanengine import register_cloud_hook
from .leanengine import register_on_verified
from .leanengine import before_save
from .leanengine import after_save
from .leanengine import after_update
from .leanengine import before_delete
from .leanengine import after_delete
from .leanengine import user
__author__ = 'asaka <lan@leancloud.rocks>'
class Engine(object):
def __init__(self, wsgi_app):
self.current_user = user
self.origin_app = wsgi_app
self.cloud_app = context.local_manager.make_middleware(AuthorizationMiddleware(LeanEngineApplication()))
def __call__(self, environ, start_response):
request = Request(environ)
if request.path in ('/__engine/1/ping', '/__engine/1.1/ping/'):
start_response('200 OK', [('Content-Type', 'application/json')])
version = sys.version_info
return [json.dumps({
'version': leancloud.__version__,
'runtime': 'cpython-{0}.{1}.{2}'.format(version.major, version.minor, version.micro)
})]
if request.path.startswith('/__engine/'):
return self.cloud_app(environ, start_response)
if request.path.startswith('/1/functions') or request.path.startswith('/1.1/functions'):
return self.cloud_app(environ, start_response)
return self.origin_app(environ, start_response)
define = staticmethod(register_cloud_func)
on_verified = staticmethod(register_on_verified)
before_save = staticmethod(before_save)
after_save = staticmethod(after_save)
after_update = staticmethod(after_update)
before_delete = staticmethod(before_delete)
after_delete = staticmethod(after_delete)
run = staticmethod(run_simple)
__all__ = [
'user',
'Engine',
'LeanEngineError'
]