aboutsummaryrefslogtreecommitdiff
path: root/src/routes/api/profile/set.zig
blob: a007b23c1b80e93e6bc4bbb2a3e18f358b42bb72 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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;
    }
}