From e8af308f76a9029aa8148cdfa4e17c89c941c59d Mon Sep 17 00:00:00 2001 From: U-Zyn Chua Date: Sat, 17 May 2025 17:19:52 +0800 Subject: [PATCH] Updated data handling --- demo/src/app/views/background_jobs.zig | 6 +++--- demo/src/app/views/basic.zig | 3 +-- demo/src/app/views/cache.zig | 10 +++++----- demo/src/app/views/errors.zig | 12 +++++------- demo/src/app/views/format.zig | 6 ++---- demo/src/app/views/init.zig | 8 ++++---- demo/src/app/views/mail.zig | 6 +++--- demo/src/app/views/markdown.zig | 3 +-- demo/src/app/views/session.zig | 9 ++++----- 9 files changed, 28 insertions(+), 35 deletions(-) diff --git a/demo/src/app/views/background_jobs.zig b/demo/src/app/views/background_jobs.zig index 2d594ce..877a9e9 100644 --- a/demo/src/app/views/background_jobs.zig +++ b/demo/src/app/views/background_jobs.zig @@ -2,13 +2,13 @@ const std = @import("std"); const jetzig = @import("jetzig"); /// This example demonstrates usage of Jetzig's background jobs. -pub fn index(request: *jetzig.Request, data: *jetzig.Data) !jetzig.View { +pub fn index(request: *jetzig.Request) !jetzig.View { // Prepare a job using `src/app/jobs/example.zig`. var job = try request.job("example"); // Add a param `foo` to the job. - try job.params.put("foo", data.string("bar")); - try job.params.put("id", data.integer(std.crypto.random.int(u32))); + try job.params.put("foo", "bar"); + try job.params.put("id", std.crypto.random.int(u32)); // Schedule the job for background processing. try job.schedule(); diff --git a/demo/src/app/views/basic.zig b/demo/src/app/views/basic.zig index 4fac587..08f3ae5 100644 --- a/demo/src/app/views/basic.zig +++ b/demo/src/app/views/basic.zig @@ -1,7 +1,6 @@ const std = @import("std"); const jetzig = @import("jetzig"); -pub fn index(request: *jetzig.Request, data: *jetzig.Data) !jetzig.View { - _ = data; +pub fn index(request: *jetzig.Request) !jetzig.View { return request.render(.ok); } diff --git a/demo/src/app/views/cache.zig b/demo/src/app/views/cache.zig index a931056..7ec7415 100644 --- a/demo/src/app/views/cache.zig +++ b/demo/src/app/views/cache.zig @@ -1,15 +1,15 @@ const std = @import("std"); const jetzig = @import("jetzig"); -pub fn index(request: *jetzig.Request, data: *jetzig.Data) !jetzig.View { - var root = try data.object(); +pub fn index(request: *jetzig.Request) !jetzig.View { + var root = try request.data(.object); try root.put("message", try request.cache.get("message")); return request.render(.ok); } -pub fn post(request: *jetzig.Request, data: *jetzig.Data) !jetzig.View { - var root = try data.object(); +pub fn post(request: *jetzig.Request) !jetzig.View { + var root = try request.data(.object); const params = try request.params(); @@ -17,7 +17,7 @@ pub fn post(request: *jetzig.Request, data: *jetzig.Data) !jetzig.View { try request.cache.put("message", message); try root.put("message", message); } else { - try root.put("message", data.string("[no message param detected]")); + try root.put("message", "[no message param detected]"); } return request.render(.ok); diff --git a/demo/src/app/views/errors.zig b/demo/src/app/views/errors.zig index ccc1082..26d1fd8 100644 --- a/demo/src/app/views/errors.zig +++ b/demo/src/app/views/errors.zig @@ -4,16 +4,14 @@ const jetzig = @import("jetzig"); // Generic handler for all errors. // Use `jetzig.http.status_codes.get(request.status_code)` to get a value that provides string // versions of the error code and message for use in templates. -pub fn index(request: *jetzig.Request, data: *jetzig.Data) !jetzig.View { - var root = try data.object(); - var error_info = try data.object(); +pub fn index(request: *jetzig.Request) !jetzig.View { + var root = try request.data(.object); + var error_info = try root.put("error", .object); const status = jetzig.http.status_codes.get(request.status_code); - try error_info.put("code", data.string(status.getCode())); - try error_info.put("message", data.string(status.getMessage())); - - try root.put("error", error_info); + try error_info.put("code", status.getCode()); + try error_info.put("message", status.getMessage()); // Render with the original error status code, or override if preferred. return request.render(request.status_code); diff --git a/demo/src/app/views/format.zig b/demo/src/app/views/format.zig index 6e9a83c..f3cbe26 100644 --- a/demo/src/app/views/format.zig +++ b/demo/src/app/views/format.zig @@ -9,13 +9,11 @@ pub const formats: jetzig.Route.Formats = .{ .get = &.{.html}, }; -pub fn index(request: *jetzig.Request, data: *jetzig.Data) !jetzig.View { - _ = data; +pub fn index(request: *jetzig.Request) !jetzig.View { return request.render(.ok); } -pub fn get(id: []const u8, request: *jetzig.Request, data: *jetzig.Data) !jetzig.View { - _ = data; +pub fn get(id: []const u8, request: *jetzig.Request) !jetzig.View { _ = id; return request.render(.ok); } diff --git a/demo/src/app/views/init.zig b/demo/src/app/views/init.zig index d567fc5..06190f8 100644 --- a/demo/src/app/views/init.zig +++ b/demo/src/app/views/init.zig @@ -12,14 +12,14 @@ const jetzig = @import("jetzig"); /// PUT /1234 => put(id, request, data) /// PATCH /1234 => patch(id, request, data) /// DELETE /1234 => delete(id, request, data) -pub fn index(request: *jetzig.Request, data: *jetzig.Data) !jetzig.View { - // The first call to `data.object()` or `data.array()` sets the root response data value. +pub fn index(request: *jetzig.Request) !jetzig.View { + // Sets the root response data value. // JSON requests return a JSON string representation of the root data value. // Zmpl templates can access all values in the root data value. - var root = try data.object(); + var root = try request.data(.object); // Add a string to the root object. - try root.put("welcome_message", data.string("Welcome to Jetzig!")); + try root.put("welcome_message", "Welcome to Jetzig!"); // Request params have the same type as a `data.object()` so they can be inserted them // directly into the response data. Fetch `http://localhost:8080/?message=hello` to set the diff --git a/demo/src/app/views/mail.zig b/demo/src/app/views/mail.zig index e497d9f..a54c3a0 100644 --- a/demo/src/app/views/mail.zig +++ b/demo/src/app/views/mail.zig @@ -1,9 +1,9 @@ const std = @import("std"); const jetzig = @import("jetzig"); -pub fn index(request: *jetzig.Request, data: *jetzig.Data) !jetzig.View { - var root = try data.object(); - try root.put("message", data.string("Welcome to Jetzig!")); +pub fn index(request: *jetzig.Request) !jetzig.View { + var root = try request.data(.object); + try root.put("message", "Welcome to Jetzig!"); // Create a new mail using `src/app/mailers/welcome.zig`. // HTML and text parts are rendered using Zmpl templates: diff --git a/demo/src/app/views/markdown.zig b/demo/src/app/views/markdown.zig index 0a929d6..d9f6308 100644 --- a/demo/src/app/views/markdown.zig +++ b/demo/src/app/views/markdown.zig @@ -3,8 +3,7 @@ const jetzig = @import("jetzig"); pub const layout = "application"; -pub fn index(request: *jetzig.Request, data: *jetzig.Data) !jetzig.View { - _ = data; +pub fn index(request: *jetzig.Request) !jetzig.View { return request.render(.ok); } diff --git a/demo/src/app/views/session.zig b/demo/src/app/views/session.zig index 15b0e43..ee9033a 100644 --- a/demo/src/app/views/session.zig +++ b/demo/src/app/views/session.zig @@ -1,15 +1,15 @@ const std = @import("std"); const jetzig = @import("jetzig"); -pub fn index(request: *jetzig.Request, data: *jetzig.Data) !jetzig.View { - var root = try data.object(); +pub fn index(request: *jetzig.Request) !jetzig.View { + var root = try request.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")); + try root.put("message", "No message saved yet"); } return request.render(.ok); @@ -20,8 +20,7 @@ pub fn edit(id: []const u8, request: *jetzig.Request) !jetzig.View { return request.render(.ok); } -pub fn post(request: *jetzig.Request, data: *jetzig.Data) !jetzig.View { - _ = data; +pub fn post(request: *jetzig.Request) !jetzig.View { const params = try request.params(); var session = try request.session();