2
0
Files
cal/calcom/packages/lib/server/checkRegularUsername.ts
2024-08-09 00:39:27 +02:00

38 lines
1.0 KiB
TypeScript

import slugify from "@calcom/lib/slugify";
import { ProfileRepository } from "./repository/profile";
import { isUsernameReservedDueToMigration } from "./username";
export async function checkRegularUsername(_username: string, currentOrgDomain?: string | null) {
const isCheckingUsernameInGlobalNamespace = !currentOrgDomain;
const username = slugify(_username);
const premium = !!process.env.NEXT_PUBLIC_IS_E2E && username.length < 5;
const profiles = currentOrgDomain
? await ProfileRepository.findManyByOrgSlugOrRequestedSlug({
orgSlug: currentOrgDomain,
usernames: [username],
})
: null;
const user = profiles?.length ? profiles[0].user : null;
if (user) {
return {
available: false as const,
premium,
message: "A user exists with that username",
};
}
const isUsernameAvailable = isCheckingUsernameInGlobalNamespace
? !(await isUsernameReservedDueToMigration(username))
: true;
return {
available: isUsernameAvailable,
premium,
};
}