qmsk/web/rewrite.py
author Tero Marttila <terom@paivola.fi>
Sat, 31 Jan 2015 18:49:51 +0200
changeset 114 0f5e58ffe624
permissions -rw-r--r--
qmsk.web.rewrite
114
0f5e58ffe624 qmsk.web.rewrite
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     1
class RewriteMiddleware:
0f5e58ffe624 qmsk.web.rewrite
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     2
    """
0f5e58ffe624 qmsk.web.rewrite
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     3
        Trivial path rewrites.
0f5e58ffe624 qmsk.web.rewrite
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     4
0f5e58ffe624 qmsk.web.rewrite
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     5
        rewrite: {
0f5e58ffe624 qmsk.web.rewrite
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     6
            path: path
0f5e58ffe624 qmsk.web.rewrite
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     7
        }
0f5e58ffe624 qmsk.web.rewrite
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     8
0f5e58ffe624 qmsk.web.rewrite
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     9
        Only does exact matches.
0f5e58ffe624 qmsk.web.rewrite
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    10
    """
0f5e58ffe624 qmsk.web.rewrite
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    11
0f5e58ffe624 qmsk.web.rewrite
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    12
    def __init__ (self, app, rewrite):
0f5e58ffe624 qmsk.web.rewrite
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    13
        self.app = app
0f5e58ffe624 qmsk.web.rewrite
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    14
        self.rewrite = rewrite
0f5e58ffe624 qmsk.web.rewrite
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    15
0f5e58ffe624 qmsk.web.rewrite
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    16
    def __call__ (self, environ, start_response):
0f5e58ffe624 qmsk.web.rewrite
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    17
        environ['PATH_INFO'] = self.rewrite.get(environ['PATH_INFO'], environ['PATH_INFO'])
0f5e58ffe624 qmsk.web.rewrite
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    18
0f5e58ffe624 qmsk.web.rewrite
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    19
        return self.app(environ, start_response)