0.6 rust重构01

This commit is contained in:
lix-2026
2026-04-14 13:22:29 +08:00
parent 71fb1aee7e
commit 84a8454fa9
401 changed files with 5841 additions and 1512 deletions
+4 -13
View File
@@ -2,6 +2,7 @@ import { mutation, query } from "./_generated/server";
import { v } from "convex/values";
import { getAuthUserId } from "@convex-dev/auth/server";
import { nowIso } from "./_utils/time";
import { requireCanonicalOwnedDocument } from "./_utils/documentRecord";
type Permission = "read" | "edit";
@@ -11,16 +12,6 @@ async function requireUserId(ctx: any): Promise<string> {
return String(userId);
}
async function requireOwnedDocument(ctx: any, documentId: string, userId: string) {
const doc = await ctx.db
.query("documents")
.withIndex("by_document_id", (q: any) => q.eq("id", documentId))
.first();
if (!doc) throw new Error("页面不存在");
if (doc.user_id !== userId) throw new Error("无权限");
return doc;
}
async function requireGroup(ctx: any, groupId: string) {
const group = await ctx.db
.query("groups")
@@ -43,7 +34,7 @@ export const listByDocument = query({
args: { documentId: v.string() },
handler: async (ctx, args) => {
const userId = await requireUserId(ctx);
const doc = await requireOwnedDocument(ctx, args.documentId, userId);
const doc = await requireCanonicalOwnedDocument(ctx, args.documentId, userId);
const shares = await ctx.db
.query("document_group_shares")
@@ -94,7 +85,7 @@ export const upsert = mutation({
},
handler: async (ctx, args) => {
const userId = await requireUserId(ctx);
const doc = await requireOwnedDocument(ctx, args.documentId, userId);
const doc = await requireCanonicalOwnedDocument(ctx, args.documentId, userId);
const group = await requireGroup(ctx, args.groupId);
if (group.workspace_id !== doc.workspace_id) throw new Error("群组不属于当前工作空间");
await requireGroupMember(ctx, args.groupId, userId);
@@ -178,7 +169,7 @@ export const remove = mutation({
args: { documentId: v.string(), groupId: v.string() },
handler: async (ctx, args) => {
const userId = await requireUserId(ctx);
const doc = await requireOwnedDocument(ctx, args.documentId, userId);
const doc = await requireCanonicalOwnedDocument(ctx, args.documentId, userId);
const existingShare = await ctx.db
.query("document_group_shares")