aboutsummaryrefslogtreecommitdiff
path: root/src/api/hello-body.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/hello-body.zig')
-rw-r--r--src/api/hello-body.zig20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/api/hello-body.zig b/src/api/hello-body.zig
new file mode 100644
index 0000000..2e5a09e
--- /dev/null
+++ b/src/api/hello-body.zig
@@ -0,0 +1,20 @@
+const http = @import("http");
+const Context = http.handler.Context;
+const Response = http.Response;
+
+const Ctx = Context(.{"hello-body"});
+pub const ctx: Ctx = .{
+ .post = post,
+};
+
+const Body = struct {
+ value: usize,
+};
+
+fn post(request: Ctx.Request) Response {
+ const body = request.json(Body) catch return .bad_request(.void);
+
+ return .ok_or_error(.json(request.arena, .{
+ .value = body.value,
+ }));
+}