- Renamed auth-service to iam-service across various files for consistency. - Updated Dockerfiles, deployment configurations, and documentation to reflect the service name change. - Enhanced testing commands in documentation to point to the new iam-service. - Removed outdated auth-service files and configurations to streamline the project structure. - Improved bilingual documentation for clarity on the new service structure and usage.
48 lines
1.6 KiB
TypeScript
48 lines
1.6 KiB
TypeScript
import { PrismaClient } from '@prisma/client';
|
|
import { logger } from '@goodgo/logger';
|
|
|
|
/**
|
|
* EN: Prisma client instance configured for the application
|
|
* VI: Instance Prisma client được cấu hình cho ứng dụng
|
|
*/
|
|
export const prisma = new PrismaClient({
|
|
// EN: Enable detailed logging in development, minimal in production
|
|
// VI: Bật ghi log chi tiết trong development, tối thiểu trong production
|
|
log: process.env.NODE_ENV === 'development' ? ['query', 'error', 'warn'] : ['error'],
|
|
});
|
|
|
|
/**
|
|
* EN: Establish database connection on application startup
|
|
* VI: Thiết lập kết nối database khi khởi động ứng dụng
|
|
*/
|
|
export const connectDatabase = async (): Promise<void> => {
|
|
try {
|
|
// EN: Connect to database using Prisma
|
|
// VI: Kết nối tới database sử dụng Prisma
|
|
await prisma.$connect();
|
|
logger.info('Database connected successfully / Kết nối database thành công');
|
|
} catch (error) {
|
|
// EN: Log error and exit if database connection fails
|
|
// VI: Ghi log lỗi và thoát nếu kết nối database thất bại
|
|
logger.error('Database connection failed / Kết nối database thất bại', { error });
|
|
process.exit(1);
|
|
}
|
|
};
|
|
|
|
/**
|
|
* EN: Close database connection on application shutdown
|
|
* VI: Đóng kết nối database khi tắt ứng dụng
|
|
*/
|
|
export const disconnectDatabase = async (): Promise<void> => {
|
|
await prisma.$disconnect();
|
|
logger.info('Database disconnected / Đã ngắt kết nối database');
|
|
};
|
|
|
|
/**
|
|
* EN: Get Prisma client instance
|
|
* VI: Lấy instance Prisma client
|
|
*/
|
|
export const getPrismaClient = (): PrismaClient => {
|
|
return prisma;
|
|
};
|