From d1bc0e61501b6a29d9d7a1af4f34f3a38a87348f Mon Sep 17 00:00:00 2001 From: Davidson Gomes Date: Thu, 3 Oct 2024 17:59:40 -0300 Subject: [PATCH] fix: adjusts on prisma connections --- CHANGELOG.md | 1 + src/api/guards/instance.guard.ts | 7 ++----- src/libs/prisma.connect.ts | 16 ---------------- src/utils/use-multi-file-auth-state-prisma.ts | 14 ++++++-------- 4 files changed, 9 insertions(+), 29 deletions(-) delete mode 100644 src/libs/prisma.connect.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index ade63d5e..fda681e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ * Update in Baileys version that fixes timeout when updating profile picture * Adjusts for fix timeout error on send status message * Chatwoot verbose logs +* Adjusts on prisma connections # 2.1.1 (2024-09-22 10:31) diff --git a/src/api/guards/instance.guard.ts b/src/api/guards/instance.guard.ts index 874fa07f..e692f362 100644 --- a/src/api/guards/instance.guard.ts +++ b/src/api/guards/instance.guard.ts @@ -1,8 +1,7 @@ import { InstanceDto } from '@api/dto/instance.dto'; -import { cache, waMonitor } from '@api/server.module'; +import { cache, prismaRepository, waMonitor } from '@api/server.module'; import { CacheConf, configService } from '@config/env.config'; import { BadRequestException, ForbiddenException, InternalServerErrorException, NotFoundException } from '@exceptions'; -import { prismaServer } from '@libs/prisma.connect'; import { NextFunction, Request, Response } from 'express'; async function getInstance(instanceName: string) { @@ -17,9 +16,7 @@ async function getInstance(instanceName: string) { return exists || keyExists; } - const prisma = prismaServer; - - return exists || (await prisma.instance.findMany({ where: { name: instanceName } })).length > 0; + return exists || (await prismaRepository.instance.findMany({ where: { name: instanceName } })).length > 0; } catch (error) { throw new InternalServerErrorException(error?.toString()); } diff --git a/src/libs/prisma.connect.ts b/src/libs/prisma.connect.ts deleted file mode 100644 index fa8d6600..00000000 --- a/src/libs/prisma.connect.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Logger } from '@config/logger.config'; -import { PrismaClient } from '@prisma/client'; - -const logger = new Logger('Prisma'); - -export const prismaServer = (() => { - logger.verbose('connecting'); - const db = new PrismaClient(); - - process.on('beforeExit', () => { - logger.verbose('instance destroyed'); - db.$disconnect(); - }); - - return db; -})(); diff --git a/src/utils/use-multi-file-auth-state-prisma.ts b/src/utils/use-multi-file-auth-state-prisma.ts index b7b6e1b2..02f96f15 100644 --- a/src/utils/use-multi-file-auth-state-prisma.ts +++ b/src/utils/use-multi-file-auth-state-prisma.ts @@ -1,12 +1,10 @@ +import { prismaRepository } from '@api/server.module'; import { CacheService } from '@api/services/cache.service'; import { INSTANCE_DIR } from '@config/path.config'; -import { prismaServer } from '@libs/prisma.connect'; import { AuthenticationState, BufferJSON, initAuthCreds, WAProto as proto } from 'baileys'; import fs from 'fs/promises'; import path from 'path'; -const prisma = prismaServer; - // const fixFileName = (file: string): string | undefined => { // if (!file) { // return undefined; @@ -18,7 +16,7 @@ const prisma = prismaServer; export async function keyExists(sessionId: string): Promise { try { - const key = await prisma.session.findUnique({ where: { sessionId: sessionId } }); + const key = await prismaRepository.session.findUnique({ where: { sessionId: sessionId } }); return !!key; } catch (error) { return false; @@ -29,13 +27,13 @@ export async function saveKey(sessionId: string, keyJson: any): Promise { const exists = await keyExists(sessionId); try { if (!exists) - return await prisma.session.create({ + return await prismaRepository.session.create({ data: { sessionId: sessionId, creds: JSON.stringify(keyJson), }, }); - await prisma.session.update({ + await prismaRepository.session.update({ where: { sessionId: sessionId }, data: { creds: JSON.stringify(keyJson) }, }); @@ -48,7 +46,7 @@ export async function getAuthKey(sessionId: string): Promise { try { const register = await keyExists(sessionId); if (!register) return null; - const auth = await prisma.session.findUnique({ where: { sessionId: sessionId } }); + const auth = await prismaRepository.session.findUnique({ where: { sessionId: sessionId } }); return JSON.parse(auth?.creds); } catch (error) { return null; @@ -59,7 +57,7 @@ async function deleteAuthKey(sessionId: string): Promise { try { const register = await keyExists(sessionId); if (!register) return; - await prisma.session.delete({ where: { sessionId: sessionId } }); + await prismaRepository.session.delete({ where: { sessionId: sessionId } }); } catch (error) { return; }