Remove Body param
Yeah I just misunderstood something in the HTML spec whoops
This commit is contained in:
parent
0b04ad5e00
commit
db1bd0f7c7
1 changed files with 6 additions and 21 deletions
|
@ -103,7 +103,10 @@ fn parseBody(comptime T: type, content_type: BaseContentType, reader: anytype, a
|
|||
|
||||
return try util.deepClone(alloc, body);
|
||||
},
|
||||
else => return error.UnsupportedMediaType,
|
||||
else => {
|
||||
std.log.debug("{}", .{content_type});
|
||||
return error.UnsupportedMediaType;
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -133,8 +136,6 @@ pub fn Context(comptime Route: type) type {
|
|||
// leave it as a simple string instead of void
|
||||
pub const Query = if (@hasDecl(Route, "Query")) Route.Query else void;
|
||||
|
||||
pub const Data = if (@hasDecl(Route, "Data")) Route.Data else void;
|
||||
|
||||
base_request: *http.Request,
|
||||
|
||||
allocator: std.mem.Allocator,
|
||||
|
@ -146,7 +147,6 @@ pub fn Context(comptime Route: type) type {
|
|||
args: Args,
|
||||
body: Body,
|
||||
query: Query,
|
||||
data: Data,
|
||||
|
||||
// TODO
|
||||
body_buf: ?[]const u8 = null,
|
||||
|
@ -185,23 +185,9 @@ pub fn Context(comptime Route: type) type {
|
|||
const path = std.mem.sliceTo(req.uri, '?');
|
||||
const q = req.uri[path.len..];
|
||||
|
||||
break :blk try query_utils.parseQuery(Query, q);
|
||||
break :blk try query_utils.parseQuery(alloc, Query, q);
|
||||
};
|
||||
|
||||
var should_free_data: bool = false;
|
||||
const data = if (Data != void) blk: {
|
||||
if (Query != void or Body != void) @compileError("Cannot specify both Data and Query/Body");
|
||||
if (base_content_type == .url_encoded) {
|
||||
const path = std.mem.sliceTo(req.uri, '?');
|
||||
const q = req.uri[path.len..];
|
||||
break :blk try query_utils.parseQuery(Query, q);
|
||||
} else {
|
||||
should_free_data = true;
|
||||
var stream = req.body orelse return error.NoBody;
|
||||
break :blk try parseBody(Body, base_content_type orelse .json, stream.reader(), alloc);
|
||||
}
|
||||
};
|
||||
defer if (should_free_data) util.deepFree(alloc, data);
|
||||
defer if (Query != void) util.deepFree(alloc, query);
|
||||
|
||||
var api_conn = conn: {
|
||||
const host = req.headers.get("Host") orelse return error.NoHost;
|
||||
|
@ -230,7 +216,6 @@ pub fn Context(comptime Route: type) type {
|
|||
.args = args,
|
||||
.body = body,
|
||||
.query = query,
|
||||
.data = data,
|
||||
};
|
||||
|
||||
try Route.handler(self, res, &api_conn);
|
||||
|
|
Loading…
Reference in a new issue