diff --git a/src/controllers/filesController.ts b/src/controllers/filesController.ts index bdb2890..222f35a 100644 --- a/src/controllers/filesController.ts +++ b/src/controllers/filesController.ts @@ -29,13 +29,14 @@ export const filesController = new Elysia({ prefix: "/files" }) if (!ipAddress) return status(404, "Not Found"); - return await got + const files = await got .get( - `http://${ipAddress}:3001/files/${app.fileName}/${new Date( - createdAt - ).getTime()}` + `http://${ipAddress}:3001/files/${ + app.fileName + }/${createdAt.getTime()}` ) - .json(); + .json<{ filename: string; size: string }>(); + return files; } catch (error) { console.log((error as Error).message); return status(500, "Internal Server Error"); diff --git a/src/db/schema/apps.ts b/src/db/schema/apps.ts index 9bc1ac9..891285e 100644 --- a/src/db/schema/apps.ts +++ b/src/db/schema/apps.ts @@ -39,7 +39,7 @@ export const appsRelations = relations(appsTable, ({ one, many }) => ({ fields: [appsTable.companyId], references: [companiesTable.id], }), - servers: many(appsToServers), + appsToServers: many(appsToServers), })); export const appsToServers = pgTable( diff --git a/src/db/schema/clients.ts b/src/db/schema/clients.ts index dd4319e..1a3e6fe 100644 --- a/src/db/schema/clients.ts +++ b/src/db/schema/clients.ts @@ -33,7 +33,7 @@ export const clientsRelations = relations(clientsTable, ({ one, many }) => ({ references: [companiesTable.id], }), sessions: many(sessionsTable), - managers: many(clientsToManagers), + clientsToManagers: many(clientsToManagers), })); export const clientsToManagers = pgTable( diff --git a/src/db/schema/managers.ts b/src/db/schema/managers.ts index 8f8a0d3..812881f 100644 --- a/src/db/schema/managers.ts +++ b/src/db/schema/managers.ts @@ -29,5 +29,5 @@ export const managersRelations = relations(managersTable, ({ one, many }) => ({ }), tokens: many(tokensTable), comments: many(commentsTable), - clients: many(clientsToManagers), + clientsToManagers: many(clientsToManagers), })); diff --git a/src/db/schema/servers.ts b/src/db/schema/servers.ts index 3f1fb6c..6cc5e6b 100644 --- a/src/db/schema/servers.ts +++ b/src/db/schema/servers.ts @@ -49,5 +49,5 @@ export const serversRelations = relations(serversTable, ({ one, many }) => ({ references: [companiesTable.id], }), sessions: many(sessionsTable), - apps: many(appsToServers), + appsToServers: many(appsToServers), })); diff --git a/src/services/clients/createClient.ts b/src/services/clients/createClient.ts index 97cbb7d..f97ac02 100644 --- a/src/services/clients/createClient.ts +++ b/src/services/clients/createClient.ts @@ -28,10 +28,19 @@ async function createClient( }) .returning(); - await tx.insert(clientsToManagers).values({ - clientId: newClient.id, - managerId: auth.managerId, - }); + await tx + .insert(clientsToManagers) + .values({ + clientId: newClient.id, + managerId: auth.managerId, + }) + .onConflictDoUpdate({ + target: [clientsToManagers.clientId, clientsToManagers.managerId], + set: { + clientId: newClient.id, + managerId: auth.managerId, + }, + }); return newClient; }); diff --git a/src/services/clients/getClients.ts b/src/services/clients/getClients.ts index 37d6a78..1f54a74 100644 --- a/src/services/clients/getClients.ts +++ b/src/services/clients/getClients.ts @@ -13,31 +13,38 @@ async function getClients({ companyId: string; }) { try { - return await db.query.clientsTable.findMany({ - where: and( - eq(clientsTable.companyId, companyId), - search - ? or( - ilike(clientsTable.name, `%${search}%`), - ilike(clientsTable.email, `%${search}%`), - ilike(clientsTable.phone, `%${search}%`) - ) - : undefined - ), - limit, - with: { - managers: { with: { manager: { columns: { password: false } } } }, - sessions: { - with: { - manager: { columns: { password: false } }, - app: true, - comments: { with: { manager: { columns: { password: false } } } }, - server: true, - client: true, + return ( + await db.query.clientsTable.findMany({ + where: and( + eq(clientsTable.companyId, companyId), + search + ? or( + ilike(clientsTable.name, `%${search}%`), + ilike(clientsTable.email, `%${search}%`), + ilike(clientsTable.phone, `%${search}%`) + ) + : undefined + ), + limit, + with: { + clientsToManagers: { + with: { manager: { columns: { password: false } } }, + }, + sessions: { + with: { + manager: { columns: { password: false } }, + app: true, + comments: { with: { manager: { columns: { password: false } } } }, + server: true, + client: true, + }, }, }, - }, - }); + }) + ).map(({ clientsToManagers, ...client }) => ({ + ...client, + managers: clientsToManagers.map(({ manager }) => manager), + })); } catch (error) { console.log((error as Error).message); return status(500, "Internal Server Error"); diff --git a/src/services/comments/getComments.ts b/src/services/comments/getComments.ts index a50a4dc..d399c62 100644 --- a/src/services/comments/getComments.ts +++ b/src/services/comments/getComments.ts @@ -17,6 +17,7 @@ export async function getComments(sessionId: string, managerId: string) { id: true, }, }, + session: true, }, orderBy: desc(commentsTable.createdAt), }); diff --git a/src/services/servers/getServers.ts b/src/services/servers/getServers.ts index 5785e78..838d92a 100644 --- a/src/services/servers/getServers.ts +++ b/src/services/servers/getServers.ts @@ -52,7 +52,7 @@ export default async function getServers( }, }, }, - apps: { with: { app: true } }, + appsToServers: { with: { app: true } }, } : undefined), },