diff options
| author | Nathan Reiner <nathan@nathanreiner.xyz> | 2025-11-24 21:13:47 +0100 |
|---|---|---|
| committer | Nathan Reiner <nathan@nathanreiner.xyz> | 2025-11-24 21:17:05 +0100 |
| commit | f3756dac8a49f3b5599fd50f4c631da4168e9eb0 (patch) | |
| tree | a84d95e30269d4b368b741ffd1a781b7cfbb1988 /src/routes/api/profile | |
| parent | 97b35ce73fab8a84d4d3e6807618a252efcf4cd9 (diff) | |
add jump-to month
Diffstat (limited to 'src/routes/api/profile')
| -rw-r--r-- | src/routes/api/profile/create.zig | 29 | ||||
| -rw-r--r-- | src/routes/api/profile/list.zig | 17 | ||||
| -rw-r--r-- | src/routes/api/profile/root.zig | 2 |
3 files changed, 48 insertions, 0 deletions
diff --git a/src/routes/api/profile/create.zig b/src/routes/api/profile/create.zig new file mode 100644 index 0000000..68f32ec --- /dev/null +++ b/src/routes/api/profile/create.zig @@ -0,0 +1,29 @@ +const std = @import("std"); + +const memora = @import("memora"); +const Context = memora.Context; +const Storage = memora.Storage; + +pub const access = .admins; + +const Body = struct { + name: []const u8, + full_name: []const u8, + birthday: []const u8, + password: []const u8, +}; + +pub fn post(ctx: *Context, body: Body) !void { + var user = try Storage.User.new( + ctx.storage, + body.name, + body.full_name, + body.birthday, + body.password, + true, + ctx.storage.allocator, + ); + defer user.deinit(); + + try user.sync(); +} diff --git a/src/routes/api/profile/list.zig b/src/routes/api/profile/list.zig new file mode 100644 index 0000000..59d4684 --- /dev/null +++ b/src/routes/api/profile/list.zig @@ -0,0 +1,17 @@ +const std = @import("std"); + +const memora = @import("memora"); +const Context = memora.Context; +const Storage = memora.Storage; + +pub const access = .admins; + +const Response = struct { + users: [][]const u8, +}; + +pub fn get(ctx: *Context) !Response { + return .{ + .users = try Storage.User.list(ctx.storage, ctx.allocator) + }; +} diff --git a/src/routes/api/profile/root.zig b/src/routes/api/profile/root.zig index 0bdd064..45dec8e 100644 --- a/src/routes/api/profile/root.zig +++ b/src/routes/api/profile/root.zig @@ -4,3 +4,5 @@ const HandlerInfo = memora.routes.HandlerInfo; pub const image = @import("image/root.zig"); pub const set: HandlerInfo = .from_type(@import("set.zig")); pub const @"update-password": HandlerInfo = .from_type(@import("update-password.zig")); +pub const create: HandlerInfo = .from_type(@import("create.zig")); +pub const list: HandlerInfo = .from_type(@import("list.zig")); |