示例#1
0
def make_message(message, heading="Example Website", event=None, **kwargs):
    template_name = "message.html.jinja"
    body = env.get_template(template_name).render(message_title=heading,
                                                  message_html=message,
                                                  **get_params(
                                                      template_name, event))
    return make_response(body, **kwargs)
示例#2
0
 def newfunc(event, *args, **kwargs):
     response = func(event, *args, **kwargs)
     if ui_stuff.is_response(response):
         return response
     return response_core.make_response(
         body=snekjson.dumps(response,
                             separators=(',', ':'),
                             ignore_type_error=True),
         headers={"Content-Type": "application/json"})
示例#3
0
def make_debug(event=None, context=None, headers={}, **kwargs):
    templates = env.list_templates()
    return make_response(
        body="<pre>\n{}\n\nAvailable Jinja2 templates:\n\n{}\n</pre>".format(
            snekjson.dumps(event,
                           indent=2,
                           sort_keys=True,
                           ignore_type_error=True).replace(">", "&gt").replace(
                               "<", "&lt"), "\n".join(templates)),
        headers=headers)
示例#4
0
def get_page(template_name, event=None, **kwargs):
    try:
        return make_response(
            env.get_template(template_name).render(
                **get_params(template_name, event, **kwargs)))
    except TemplateNotFound as e:
        traceback.print_exc()
        print(e)
        print(dir(e))
        print(vars(e))
        return make_404(event)
示例#5
0
def store_route(event, *args, **kwargs):
    body = deepload(event["body"])
    if "addresses" in body:
        route_id, response, item = load_route(addresses=body["addresses"])
    elif "route_id" in body:
        route_id, response, item = load_route(route_id=body["route_id"])
    else:
        return make_404(event)
    if not response:
        return make_404(event)
    # return {"route_id":route_id,"route_result":result}
    return make_response({"redirect":events.base_path(event) + "/route_map.html?route_id={}".format(route_id)})
示例#6
0
def render_page(name, params={}, code=200, headers={}):
    params = params if params else {}
    headers = headers if headers else {}

    template = env.get_template(name)
    body = template.render(**params)
    _headers = {"Content-Type": get_content_type(name)}
    _headers.update(headers)
    return make_response(body=body,
                         code=code,
                         headers=_headers,
                         is_base64=False)
示例#7
0
def get_static(filename, event=None, **kwargs):
    if "STATIC_BUCKET" in os.environ and "STATIC_PATH" in os.environ:
        return redirect(
            "https://s3.amazonaws.com/{STATIC_BUCKET}/{STATIC_PATH}/{filename}"
            .format(filename=filename, **os.environ))
    filepath = os.path.abspath(os.path.join("/var/task", filename))
    if os.path.isfile(filepath) and filepath.startswith("/var/task/static/"):
        content_type = get_content_type(filename)
        b64encoded = False
        if content_type in binary_types:
            with open(filepath, "rb") as f:
                body = base64.b64encode(f.read()).decode("utf-8")
                b64encoded = True
        else:
            with open(filepath, "r") as f:
                body = f.read()
        return make_response(body=body,
                             headers={"Content-Type": content_type},
                             base64=b64encoded)
    else:
        return make_response("404!!1!", code=404)
示例#8
0
def store_route(event, *args, **kwargs):
    body = deepload(event["body"])
    superoptimize = body.get("superoptimize", False)
    if "addresses" in body:
        route_id, response, item = load_route(addresses=body["addresses"], superoptimize=superoptimize)
    elif "route_id" in body:
        route_id, response, item = load_route(route_id=body["route_id"])
    else:
        return make_404(event)
    if not response:
        return make_404(event)
    return make_response({"redirect":events.base_path(event) + "/route_map.html?route_id={}".format(route_id)})
示例#9
0
 def newfunc(event, *args, **kwargs):
     if input_type:
         if event["httpMethod"] == "POST" and event.get("body"):
             kwargs["request_object"] = input_type.from_json(
                 event["body"])
         else:
             HTTP400.throw()
     response = func(event, *args, **kwargs)
     print(response)
     if output_type:
         if isinstance(response, output_type):
             response = response.to_json()
         else:
             HTTP500.throw()
     if isinstance(response, str):
         return response_core.make_response(
             body=response,
             headers={"Content-Type": "application/json"})
     return response
示例#10
0
 def newfunc(event, *args, **kwargs):
     response = func(event, *args, **kwargs)
     if ui_stuff.is_response(response):
         return response
     return response_core.make_response(
         body=str(response), headers={"Content-Type": "text/plain"})
示例#11
0
 def throw(cls, body=None, code=None, headers=None):
     body = body if body else cls.BODY
     code = code if code else cls.CODE
     headers = headers if headers else cls.HEADERS
     response = make_response(body=body, code=code, headers=headers)
     raise ResponseException(response)
示例#12
0
 def throw(cls, target_url, body="", headers={}):
     _headers = {"Location": target_url}
     body = body if body else cls.BODY
     _headers.update(headers)
     response = make_response(body=body, code=cls.CODE, headers=_headers)
     raise ResponseException(response)
示例#13
0
def make_debug(event=None, context=None, headers={}, **kwargs):
    templates = env.list_templates()
    return make_response(body=get_debug_blob(event), headers=headers)
示例#14
0
def make_message(message, heading="Example Website", **kwargs):
    body = env.get_template("message.html.jinja").render(message_title=heading,
                                                         message_html=message)
    return make_response(body, **kwargs)
示例#15
0
def get_page(template_name, event=None, **kwargs):
    return make_response(
        env.get_template(template_name).render(**get_params(
            template_name, event, this_page=template_name, **kwargs)))