From 25228df6d13b5e8541672c4cdd84e200ff56a4c4 Mon Sep 17 00:00:00 2001 From: Nathan Reiner Date: Wed, 19 Nov 2025 18:58:54 +0100 Subject: add profile settings to backend and add image loader --- src/routes/api/auth/login.zig | 2 +- src/routes/api/profile/root.zig | 4 ++++ src/routes/api/profile/set.zig | 26 ++++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 src/routes/api/profile/set.zig (limited to 'src/routes/api') diff --git a/src/routes/api/auth/login.zig b/src/routes/api/auth/login.zig index d7ee5cb..8a33082 100644 --- a/src/routes/api/auth/login.zig +++ b/src/routes/api/auth/login.zig @@ -16,7 +16,7 @@ const Result = struct { pub const access = .everyone; pub fn post(ctx: *Context, body: Body) anyerror!Result { - var user = Storage.User.open(ctx.storage, body.user, ctx.allocator) catch return .{ + var user = Storage.User.open(ctx.storage, body.user) catch return .{ .success = false }; defer user.deinit(); diff --git a/src/routes/api/profile/root.zig b/src/routes/api/profile/root.zig index 632c09c..04bf042 100644 --- a/src/routes/api/profile/root.zig +++ b/src/routes/api/profile/root.zig @@ -1 +1,5 @@ +const memora = @import("memora"); +const HandlerInfo = memora.routes.HandlerInfo; + pub const image = @import("image/root.zig"); +pub const set: HandlerInfo = .from_type(@import("set.zig")); diff --git a/src/routes/api/profile/set.zig b/src/routes/api/profile/set.zig new file mode 100644 index 0000000..a007b23 --- /dev/null +++ b/src/routes/api/profile/set.zig @@ -0,0 +1,26 @@ +const std = @import("std"); + +const memora = @import("memora"); +const Context = memora.Context; +const Storage = memora.Storage; + +pub const access = .users; + +const Body = struct { + full_name: []const u8, + birthday: []const u8, +}; + +pub fn post(ctx: *Context, body: Body) !void { + if (ctx.storage.sessions.get(ctx.storage, ctx.fingerprint)) |session| { + var user = try Storage.User.open(ctx.storage, session.info.name); + defer user.deinit(); + + user.info.full_name = body.full_name; + user.info.birthday = body.birthday; + + try user.sync(); + } else { + return error.UnknownSession; + } +} -- cgit v1.2.3-70-g09d2