mirror of
https://github.com/jetzig-framework/jetzig.git
synced 2025-05-14 14:06:08 +00:00

Implement `/foo/1/edit` route/view. Allow setting HTTP verb by passing e.g. `/_PATCH` as the last segment of a URL - this allows browsers to submit a `POST` request with a pseudo-HTTP verb encoded in the URL which Jetzig can translate, i.e. allowing forms to submit a `PATCH`.
38 lines
1.0 KiB
Zig
38 lines
1.0 KiB
Zig
const std = @import("std");
|
|
const jetzig = @import("jetzig");
|
|
|
|
pub fn index(request: *jetzig.Request, data: *jetzig.Data) !jetzig.View {
|
|
var root = try data.object();
|
|
|
|
const session = try request.session();
|
|
|
|
if (session.get("message")) |message| {
|
|
try root.put("message", message);
|
|
} else {
|
|
try root.put("message", data.string("No message saved yet"));
|
|
}
|
|
|
|
return request.render(.ok);
|
|
}
|
|
|
|
pub fn edit(id: []const u8, request: *jetzig.Request) !jetzig.View {
|
|
try request.server.logger.INFO("id: {s}", .{id});
|
|
return request.render(.ok);
|
|
}
|
|
|
|
pub fn post(request: *jetzig.Request, data: *jetzig.Data) !jetzig.View {
|
|
_ = data;
|
|
const params = try request.params();
|
|
var session = try request.session();
|
|
|
|
if (params.get("message")) |message| {
|
|
if (std.mem.eql(u8, message.string.value, "delete")) {
|
|
_ = try session.remove("message");
|
|
} else {
|
|
try session.put("message", message);
|
|
}
|
|
}
|
|
|
|
return request.redirect("/session", .moved_permanently);
|
|
}
|