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( \\ , .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; }