26 lines
891 B
TypeScript
26 lines
891 B
TypeScript
import { db } from "@/db/db";
|
|
import { usersTable } from "@/db/schema";
|
|
import { clerkClient } from "@clerk/nextjs";
|
|
|
|
export async function setInitialUserData(userId: string) {
|
|
const user = await clerkClient.users.getUser(userId);
|
|
|
|
// incase we dont have username such as google login, fallback to first name + last name
|
|
const usernameFallback = user.username ?? (user.firstName ?? "") + (user.lastName ?? "");
|
|
|
|
// For the display name, if it for some reason is empty, fallback to username
|
|
let nameFallback = (user.firstName ?? "") + (user.lastName ?? "");
|
|
if (nameFallback === "") {
|
|
nameFallback = usernameFallback;
|
|
}
|
|
|
|
const result = await db.insert(usersTable).values({
|
|
id: userId,
|
|
// this is used for path, make sure this is unique
|
|
username: usernameFallback,
|
|
|
|
// this is for display name, maybe different from username
|
|
name: nameFallback,
|
|
});
|
|
}
|