const std = @import("std"); const zqlite = @import("zqlite"); const httpz = @import("httpz"); const users_repo = @import("../repos/users_repo.zig"); pub const Env = struct { conn: zqlite.Conn, secure_tokens: bool, user: ?users_repo.User, }; pub const ServiceError = error{ BadRequest, NotFound, Forbidden, }; pub fn with_body(comptime T: type, req: *httpz.Request) !T { if (req.body()) |body| { if (std.json.parseFromSlice(T, req.arena, body, .{})) |parsed| { defer parsed.deinit(); return parsed.value; } else |_| { return ServiceError.BadRequest; } } else { return ServiceError.BadRequest; } }