const std = @import("std"); const httpz = @import("httpz"); const Err = error{ Missing, Empty, MismatchedValue, }; pub fn Or(req: *httpz.Request, form_name: []const u8, default: []const u8) []const u8 { const fd = req.formData() catch { return default; }; const val = fd.get(form_name); if (val == null) { return default; } return val.?; } pub fn Req(req: *httpz.Request, res: *httpz.Response, form_name: []const u8) ![]const u8 { const fd = req.formData() catch |e| { res.status = 400; res.body = try std.fmt.allocPrint(res.arena, "bad form value for {s}", .{form_name}); return e; }; const val = fd.get(form_name); if (val == null) { res.status = 400; res.body = try std.fmt.allocPrint(res.arena, "bad form value for {s}", .{form_name}); return Err.Missing; } if (std.mem.eql(u8, val.?, "")) { return Err.Empty; } return val.?; }