-
Notifications
You must be signed in to change notification settings - Fork 146
Open
Description
I encountered some problems, regarding the inability to display images normally on the All Files page, and when clicking download, {"code":"InvalidStoragePath","message":"Invalid storage path: "xxxxxxx" is not a valid UUID string."},
When updating user image, check the convex log and it will show
failure.
Mutation
users:updateUser
Maybe the problem lies in the url or the tokenIdentifier?
this is my code
case "user.created":
await ctx.runMutation(internal.users.createUser, {
tokenIdentifier: `https://${process.env.CLERK_HOSTNAME}|${result.data.id}`,
name: `
${result.data.first_name ?? ""}
${result.data.last_name ?? ""}
`,
image: result.data.image_url,
});
break;
case "user.updated":
await ctx.runMutation(internal.users.updateUser, {
tokenIdentifier: `https://${process.env.CLERK_HOSTNAME}|${result.data.id}`,
name: `
${result.data.first_name ?? ""}
${result.data.last_name ?? ""}
`,
image: result.data.image_url,
});
break;
case 'organizationMembership.created':
await ctx.runMutation(internal.users.addOrgIdToUser, {
tokenIdentifier: `https://${process.env.CLERK_HOSTNAME}|${result.data.public_user_data.user_id}`,
orgId: result.data.organization.id,
role: result.data.role === 'org:admin' ? "admin" : "member",
});
break;
case 'organizationMembership.updated':
await ctx.runMutation(internal.users.updateRoleInOrgForUser, {
tokenIdentifier: `https://${process.env.CLERK_HOSTNAME}|${result.data.public_user_data.user_id}`,
orgId: result.data.organization.id,
role: result.data.role === 'org:admin' ? "admin" : "member",
});
break;
export const createUser = internalMutation({
args: { tokenIdentifier: v.string(), name: v.string(), image: v.string() },
async handler(ctx, args) {
await ctx.db.insert("users", {
tokenIdentifier: args.tokenIdentifier,
orgIds: [],
name: args.name,
image: args.image
})
}
})
export const updateUser = internalMutation({
args: { tokenIdentifier: v.string(), name: v.string(), image: v.string() },
async handler(ctx, args) {
const user = await ctx.db
.query("users")
.withIndex("by_tokenIdentifier", (q) =>
q.eq("tokenIdentifier", args.tokenIdentifier)
).first();
if (!user) {
throw new ConvexError("User not found");
}
await ctx.db.patch(user._id, {
name: args.name,
image: args.image
})
}
})
Metadata
Metadata
Assignees
Labels
No labels