create: protectedProcedure
.input(memberSchema)
.mutation(async ({ ctx, input }) => {
try {
const { firstName, lastName, email, role } = input;
const duplicateEmail = await ctx.prisma.member.findFirst({
where: { email: email },
});
if (duplicateEmail) {
throw new TRPCError({
code: "CONFLICT",
message: "Email already in use",
cause: new Error("Email already in use"),
});
}
const userId = ctx.userId;
const member = await ctx.prisma.member.create({
data: {
firstName: firstName,
lastName: lastName,
email: email,
role: role,
createdBy: userId,
orgId: userId,
},
});
return member;
} catch (error) {
throw new TRPCError({
code: "INTERNAL_SERVER_ERROR",
message: "Error while creating member",
cause: error,
});
}
}),
create: protectedProcedure
.input(memberSchema)
.mutation(async ({ ctx, input }) => {
try {
const { firstName, lastName, email, role } = input;
const duplicateEmail = await ctx.prisma.member.findFirst({
where: { email: email },
});
if (duplicateEmail) {
throw new TRPCError({
code: "CONFLICT",
message: "Email already in use",
cause: new Error("Email already in use"),
});
}
const userId = ctx.userId;
const member = await ctx.prisma.member.create({
data: {
firstName: firstName,
lastName: lastName,
email: email,
role: role,
createdBy: userId,
orgId: userId,
},
});
return member;
} catch (error) {
throw new TRPCError({
code: "INTERNAL_SERVER_ERROR",
message: "Error while creating member",
cause: error,
});
}
}),