1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- module post;
- import collie.codec.http;
- import collie.codec.http.server;
- import collie.utils.vector;
- import request;
- import std.json;
- import std.typecons;
- import std.exception;
- final class PostHandler : BaseHandler
- {
- override void onEOM() nothrow
- {
- collectException({
- switch(_header.getPath)
- {
- case "/json":
- json();
- break;
- case "/plaintext":
- plaintext();
- break;
- default:
- index();
- break;
- }
- }());
- }
-
- void index()
- {
- auto build = scoped!ResponseBuilder(_downstream);
- build.status(200,HTTPMessage.statusText(200));
- build.setBody(cast(ubyte[])"Hello, World!");
- build.header(HTTPHeaderCode.CONTENT_TYPE,"text/plain");
- build.header(HTTPHeaderCode.DATE, printDate);
- build.sendWithEOM();
- }
-
- void json()
- {
- JSONValue js;
- js["message"] = "Hello, World!";
-
- auto build = scoped!ResponseBuilder(_downstream);
- build.status(200,HTTPMessage.statusText(200));
- build.setBody(cast(ubyte[])(js.toString));
- build.header(HTTPHeaderCode.CONTENT_TYPE,"application/json");
- build.header(HTTPHeaderCode.DATE, printDate);
- build.sendWithEOM();
- }
-
- void plaintext()
- {
- auto build = scoped!ResponseBuilder(_downstream);
- build.status(200,HTTPMessage.statusText(200));
- build.setBody(cast(ubyte[])"Hello, World!");
- build.header(HTTPHeaderCode.CONTENT_TYPE,"text/plain");
- build.header(HTTPHeaderCode.DATE, printDate);
- build.sendWithEOM();
- }
- }
|