Syncing data from clerk sign up to database
Is there a way of syncing new user sign ups on a "User" table on a database without using webhooks?
export async function syncUser() {
const clerkUser = await currentUser();
if (!clerkUser?.id) {
return null;
}
try {
let user = await db.user.findUnique({
where: {
clerkId: clerkUser.id as string,
},
});
if (!user) {
user = await db.user.create({
data: {
clerkId: clerkUser.id,
name: clerkUser.firstName,
email: clerkUser.emailAddresses?.[0]?.emailAddress,
image: clerkUser.imageUrl,
levels: {
create: { level: 1, xp: 0 },
},
},
});
}
return user;
} catch (error) {
console.error('Error syncing user:', error);
return null;
}
}