| """Key-Value store server. |
| |
| The request takes "key=" and "value=" URL parameters. The key must be UUID |
| generated by token(). |
| |
| - When only the "key=" is specified, serves a 200 response whose body contains |
| the stored value specified by the key. If the stored value doesn't exist, |
| serves a 200 response with an empty body. |
| - When both the "key=" and "value=" are specified, stores the pair and serves |
| a 200 response without body. |
| """ |
| |
| |
| def main(request, response): |
| key = request.GET.get(b"key") |
| value = request.GET.get(b"value", None) |
| |
| # Store the value. |
| if value: |
| request.server.stash.put(key, value) |
| return (200, [], b"") |
| |
| # Get the value. |
| data = request.server.stash.take(key) |
| if not data: |
| return (200, [], b"") |
| return (200, [], data) |