const std = @import("std");
const http = std.http;
const zx = @import("../zx.zig");
const log = std.log.scoped(.index);
pub fn getZig(ctz: *zx.ZxContext) zx.ZxError!void {
ctz.html(
\\
\\- Zig is awesome
\\- Zig runs everywhere
\\- Zig has a cool name
\\
, .ok) catch |err| {
log.err("Got error {any}\n", .{err});
return zx.ZxError.Unexpected;
};
return;
}
const ZigPost = struct {
id: u32,
name: []const u8,
};
pub fn postZig(ctz: *zx.ZxContext) zx.ZxError!void {
if (ctz.req_body.len > 0) {
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
var json_body = std.json.parseFromSliceLeaky(ZigPost, arena.allocator(), ctz.req_body, .{}) catch |err| {
log.err("Error while parsing json: {any}", .{err});
return zx.ZxError.Unexpected;
};
log.info("Got id {d} name {s}", .{ json_body.id, json_body.name });
try ctz.json(.{ .success = true }, .ok);
} else {
ctz.json(.{ .success = false, .message = "Invalid request" }, .bad_request) catch |err| {
log.err("Got error {any}\n", .{err});
return zx.ZxError.Unexpected;
};
}
return;
}