handle error on create user

This commit is contained in:
2024-10-29 15:42:36 +07:00
parent 9423a36eeb
commit b5d23ac930
6 changed files with 145 additions and 83 deletions

View File

@@ -1,6 +1,8 @@
import { Injectable } from '@nestjs/common';
import { Injectable, Logger } from '@nestjs/common';
import { PrismaService } from '../Prisma/prisma.service';
import { clerkClient } from '@clerk/express';
@Injectable()
export class ClerkService {
constructor(private readonly prisma: PrismaService) {}
@@ -51,7 +53,6 @@ export class ClerkService {
}
}
async eventUserCreated(data: any) {
console.log(data);
const primary_email_address_id = data.primary_email_address_id;
// get primary email address on email_addresses by querying email_addresses with primary_email_address_id
let primary_email_address = data.email_addresses.find(
@@ -70,16 +71,20 @@ export class ClerkService {
const role = 'CUSTOMER';
const phoneNumber = '';
// create user in database
await this.prisma.user.create({
data: {
id: user_id,
email: primary_email_address.email_address ?? '',
name: name ?? '',
role: role ?? '',
createdAt: created_at,
phoneNumber: phoneNumber ?? '',
},
});
try {
await this.prisma.user.create({
data: {
id: user_id,
email: primary_email_address.email_address ?? '',
name: name ?? '',
role: role ?? '',
createdAt: created_at,
phoneNumber: phoneNumber ?? '',
},
});
} catch (err) {
Logger.error(err);
}
}
async eventUserUpdated(data: any) {
@@ -102,14 +107,18 @@ export class ClerkService {
// get user info from clerk
const userInfo = await clerkClient.users.getUser(data.user_id);
console.log(userInfo);
await this.prisma.user.create({
data: {
id: data.user_id,
email: userInfo.emailAddresses[0].emailAddress,
name: `${userInfo.firstName} ${userInfo.lastName}`,
avatarUrl: userInfo.imageUrl,
},
});
try {
await this.prisma.user.create({
data: {
id: data.user_id,
email: userInfo.emailAddresses[0].emailAddress,
name: `${userInfo.firstName} ${userInfo.lastName}`,
avatarUrl: userInfo.imageUrl,
},
});
} catch (err) {
Logger.error(err);
}
}
// to do: get session info
}