import { zid } from "convex-helpers/server/zod"
import { ConvexError } from "convex/values"
import z from "zod"
import { userSchema } from "@cvx/users/schemas"
import { authMutation } from "@cvx/utils/function"
export const createUserSchema = userSchema
.pick({
email: true,
isAdmin: true,
})
.extend({
isAdmin: z.boolean(),
})
export const createUser = authMutation({
args: createUserSchema.shape,
handler: async (ctx, args) => {
const { email, isAdmin } = args
const existingUser = await ctx.db
.query("users")
.withIndex("by_email", (q) => q.eq("email", email))
.unique()
if (existingUser) throw new ConvexError("User already exists")
const newUser = userSchema.parse({
email,
isActive: true,
isAdmin,
})
return ctx.db.insert("users", newUser)
},
})
import { zid } from "convex-helpers/server/zod"
import { ConvexError } from "convex/values"
import z from "zod"
import { userSchema } from "@cvx/users/schemas"
import { authMutation } from "@cvx/utils/function"
export const createUserSchema = userSchema
.pick({
email: true,
isAdmin: true,
})
.extend({
isAdmin: z.boolean(),
})
export const createUser = authMutation({
args: createUserSchema.shape,
handler: async (ctx, args) => {
const { email, isAdmin } = args
const existingUser = await ctx.db
.query("users")
.withIndex("by_email", (q) => q.eq("email", email))
.unique()
if (existingUser) throw new ConvexError("User already exists")
const newUser = userSchema.parse({
email,
isActive: true,
isAdmin,
})
return ctx.db.insert("users", newUser)
},
})