╭ changed ────╮ │src/event.zig│ ╰─────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────╮ │← previous│ ╰──────────╯ ╭──────────────────────────────────────╮ │1732 + users_dir: []const u8, │ │1733 admin_repo_path: []const u8,│ │1734 owner_name: []const u8, │ │1735 repo_name: []const u8, │ ╰──────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1736 create_options_maybe: ?CreateRepoOptions, │ │1742 -) !?[event_id_size * 2]u8 { │ │1737 +) !?RepoLocation { │ │1738 var admin_repo = rp.Repo(.xit, admin_repo_opts).open(io, allocator, .{ .path = admin_repo_path }) catch |err| switch (err) {│ │1739 error.RepoNotFound => return null, │ │1740 else => |e| return e, │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1748 │ │1749 // an unknown owner can't own a repo, so the push is rejected │ │1750 const owner_user_id = (try User.readIdByName(AdminDB, admin_repo_opts.hash, admin_moment, owner_name)) orelse return null;│ │1756 - const repo_root_path = try std.fs.path.join(allocator, &.{ std.fs.path.dirname(admin_repo_path) orelse ".", "repos" }); │ │1757 - defer allocator.free(repo_root_path); │ │1758 - var user_repo = (try openUserRepo(io, allocator, repo_root_path, &owner_user_id)) orelse return null; │ │1751 + var user_repo = (try openUserRepo(io, allocator, users_dir, &owner_user_id)) orelse return null; │ │1752 defer user_repo.deinit(io, allocator); │ │1753 │ │1754 // an already-registered repo reuses its event id, so a re-push (or a clone) │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1755 // lands in the same repo │ │1756 if (try userMoment(&user_repo)) |moment| { │ │1757 if (try Repo.readByName(UserDB, user_repo_opts.hash, moment, &arena, repo_name)) |found| {│ │1765 - return std.fmt.bytesToHex(found.event_id, .lower); │ │1758 + return .{ .owner_id = owner_user_id, .repo_id = found.event_id }; │ │1759 } │ │1760 } │ │1761 │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────╮ │1779 } }, │ │1780 }}); │ │1781 │ │1789 - return event_id_hex; │ │1782 + return .{ .owner_id = owner_user_id, .repo_id = id_bytes };│ │1783 } │ │1784 │ │1785 // │ ╰─────────────────────────────────────────────────────────────────────╯