def main(request, response):
def getState(token):
server_state = request.server.stash.take(token)
if not server_state:
return b"Uninitialized"
return server_state
def setState(state, token):
request.server.stash.put(token, state)
response.headers.set(b"Access-Control-Allow-Origin", b"*")
response.headers.set(b"Access-Control-Allow-Headers", b"x-test")
response.headers.set(b"Access-Control-Max-Age", 0)
token = request.GET.first(b"token", None)
if request.method == u"OPTIONS":
if request.headers.get(b"x-test"):
response.content = b"FAIL: Invalid header in preflight request."
response.status = 400
else:
setState(b"PASS", token)
else:
if request.headers.get(b"x-test"):
response.content = getState(token)
else:
response.content = b"FAIL: X-Test header missing in request"
response.status = 400