Files
calendar/packages/trpc/server/routers/viewer/auth/createAccountPassword.handler.ts
T
3c1297aa72 fix: calcom trpc sessio circle dep (#19893)
* fix trpc session circle dep

* fixes trpc session cirlce dep

* fix relative imports

* fix more imports to use types and not trpc

* fix exports

* Fixed types

---------

Co-authored-by: Keith Williams <keithwillcode@gmail.com>
2025-03-19 05:50:22 -03:00

37 lines
1.0 KiB
TypeScript

import { passwordResetRequest } from "@calcom/features/auth/lib/passwordResetRequest";
import prisma from "@calcom/prisma";
import { IdentityProvider } from "@calcom/prisma/enums";
import { TRPCError } from "@trpc/server";
import type { TrpcSessionUser } from "../../../types";
type CreateAccountPasswordOptions = {
ctx: {
user: NonNullable<TrpcSessionUser>;
};
};
export const createAccountPasswordHandler = async ({ ctx }: CreateAccountPasswordOptions) => {
const { user } = ctx;
const isCal = user.identityProvider === IdentityProvider.CAL;
if (isCal) {
throw new TRPCError({ code: "FORBIDDEN", message: "cannot_create_account_password_cal_provider" });
}
const userWithPassword = await prisma.user.findUnique({
where: {
id: user.id,
},
select: {
password: true,
},
});
if (!isCal && userWithPassword?.password?.hash) {
throw new TRPCError({ code: "FORBIDDEN", message: "cannot_create_account_password_already_existing" });
}
await passwordResetRequest(user);
};