Module jumpscale.servers.appserver

Expand source code
from functools import wraps
from json import JSONDecodeError
from urllib.parse import urlencode, quote, unquote

import nacl
import requests
from beaker.middleware import SessionMiddleware
from bottle import Bottle, abort, redirect, request, response
from nacl.public import Box
from nacl.signing import VerifyKey

from jumpscale.loader import j

SESSION_OPTS = {"session.type": "file", "session.data_dir": f"{j.core.dirs.VARDIR}/data", "session.auto": True}


class StripPathMiddleware(object):
    """
    a middle ware for bottle apps to strip slashes
    """

    def __init__(self, app):
        self.app = app

    def __call__(self, e, h):
        e["PATH_INFO"] = e["PATH_INFO"].rstrip("/")
        return self.app(e, h)


def make_main_app():
    app = Bottle()
    # mount sub applications on this object
    return app


def apply_main_middlewares(app):
    app = StripPathMiddleware(app)
    return SessionMiddleware(app, SESSION_OPTS)

Functions

def apply_main_middlewares(app)
Expand source code
def apply_main_middlewares(app):
    app = StripPathMiddleware(app)
    return SessionMiddleware(app, SESSION_OPTS)
def make_main_app()
Expand source code
def make_main_app():
    app = Bottle()
    # mount sub applications on this object
    return app

Classes

class StripPathMiddleware (app)

a middle ware for bottle apps to strip slashes

Expand source code
class StripPathMiddleware(object):
    """
    a middle ware for bottle apps to strip slashes
    """

    def __init__(self, app):
        self.app = app

    def __call__(self, e, h):
        e["PATH_INFO"] = e["PATH_INFO"].rstrip("/")
        return self.app(e, h)