36 lines
851 B
TypeScript
36 lines
851 B
TypeScript
import { clerkClient } from '@clerk/fastify';
|
|
import { z } from 'zod';
|
|
|
|
import { db } from '@openpanel/db';
|
|
|
|
import { createTRPCRouter, protectedProcedure } from '../trpc';
|
|
|
|
export const userRouter = createTRPCRouter({
|
|
update: protectedProcedure
|
|
.input(
|
|
z.object({
|
|
firstName: z.string(),
|
|
lastName: z.string(),
|
|
})
|
|
)
|
|
.mutation(async ({ input, ctx }) => {
|
|
const [updatedUser] = await Promise.all([
|
|
db.user.update({
|
|
where: {
|
|
id: ctx.session.userId,
|
|
},
|
|
data: {
|
|
firstName: input.firstName,
|
|
lastName: input.lastName,
|
|
},
|
|
}),
|
|
clerkClient.users.updateUser(ctx.session.userId, {
|
|
firstName: input.firstName,
|
|
lastName: input.lastName,
|
|
}),
|
|
]);
|
|
|
|
return updatedUser;
|
|
}),
|
|
});
|