const std = @import("std"); const Context = @import("../../context.zig"); const Storage = @import("../../../storage/root.zig"); const Body = struct { user: []const u8, password: []const u8, }; const Result = struct { success: bool, }; 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 .{ .success = false }; defer user.deinit(); const result = Result { .success = user.check_password(body.password) }; if (result.success) { const session = try ctx.storage.sessions.add(ctx.storage, user.info); ctx.response.headers.fingerprint = session.fingerprint; } return result; }