From c44214b5a4e24dc63a4490f550b34891cb583d55 Mon Sep 17 00:00:00 2001 From: Artem Niehrieiev Date: Mon, 13 Oct 2025 13:57:16 +0000 Subject: [PATCH 1/2] refactor: remove deprecated methods from company, connection, and group repositories --- ...ompany-info-custom-repository.extension.ts | 29 ------------------- .../company-info-repository.interface.ts | 5 ---- .../connection.repository.interface.ts | 2 -- .../custom-connection-repository-extension.ts | 9 ------ .../group-custom-repository-extension.ts | 7 ----- .../repository/group.repository.interface.ts | 2 -- 6 files changed, 54 deletions(-) diff --git a/backend/src/entities/company-info/repository/company-info-custom-repository.extension.ts b/backend/src/entities/company-info/repository/company-info-custom-repository.extension.ts index 3cb121c91..4a12eb0ac 100644 --- a/backend/src/entities/company-info/repository/company-info-custom-repository.extension.ts +++ b/backend/src/entities/company-info/repository/company-info-custom-repository.extension.ts @@ -48,19 +48,6 @@ export const companyInfoRepositoryExtension: ICompanyInfoRepository = { .getOne(); }, - async findFullCompanyInfoByCompanyId(companyId: string): Promise { - return await this.createQueryBuilder('company_info') - .leftJoinAndSelect('company_info.users', 'current_user') - .leftJoinAndSelect('company_info.users', 'users') - .leftJoinAndSelect('company_info.connections', 'connections') - .leftJoinAndSelect('company_info.invitations', 'invitations') - .leftJoinAndSelect('connections.groups', 'groups') - .leftJoinAndSelect('connections.author', 'connection_author') - .leftJoinAndSelect('groups.users', 'groups_users') - .where('company_info.id = :companyId', { companyId }) - .getOne(); - }, - async findCompanyInfoByCompanyIdWithoutConnections(companyId: string): Promise { return await this.createQueryBuilder('company_info') .leftJoinAndSelect('company_info.users', 'current_user') @@ -90,22 +77,6 @@ export const companyInfoRepositoryExtension: ICompanyInfoRepository = { .getOne(); }, - //todo deprecated code, will be removed in future - // async findAllCompanyWithConnectionsUsersJoining(companyId: string): Promise { - // return await this.createQueryBuilder('company_info') - // .leftJoinAndSelect('company_info.users', 'users') - // .leftJoinAndSelect('company_info.logo', 'logo') - // .leftJoinAndSelect('company_info.favicon', 'favicon') - // .leftJoinAndSelect('company_info.tab_title', 'tab_title') - // .leftJoinAndSelect('users.groups', 'groups') - // .leftJoinAndSelect('groups.connection', 'connections') - // .leftJoinAndSelect('connections.author', 'connection_author') - // .leftJoinAndSelect('connections.groups', 'connection_groups') - // .leftJoinAndSelect('connection_groups.users', 'connection_groups_users') - // .where('company_info.id = :companyId', { companyId }) - // .getOne(); - // }, - async findCompanyInfosByUserEmail(userEmail: string): Promise { return await this.createQueryBuilder('company_info') .leftJoinAndSelect('company_info.users', 'users') diff --git a/backend/src/entities/company-info/repository/company-info-repository.interface.ts b/backend/src/entities/company-info/repository/company-info-repository.interface.ts index 57d797ca3..5d27ebd4f 100644 --- a/backend/src/entities/company-info/repository/company-info-repository.interface.ts +++ b/backend/src/entities/company-info/repository/company-info-repository.interface.ts @@ -20,11 +20,6 @@ export interface ICompanyInfoRepository { findUserCompanyWithUsers(userId: string): Promise; - //todo deprecated code, will be removed in future - // findAllCompanyWithConnectionsUsersJoining(companyId: string): Promise; - - findFullCompanyInfoByCompanyId(companyId: string): Promise; - findCompaniesPaidConnections(companyIds: Array): Promise; findCompanyFrozenPaidConnections(companyIds: Array): Promise>; diff --git a/backend/src/entities/connection/repository/connection.repository.interface.ts b/backend/src/entities/connection/repository/connection.repository.interface.ts index f4a76e21d..d28ea7475 100644 --- a/backend/src/entities/connection/repository/connection.repository.interface.ts +++ b/backend/src/entities/connection/repository/connection.repository.interface.ts @@ -12,8 +12,6 @@ export interface IConnectionRepository { findOneConnection(connectionId: string): Promise; - getConnectionAuthorIdByGroupInConnectionId(groupId: string): Promise; - findAndDecryptConnection(connectionId: string, masterPwd: string): Promise; removeConnection(connection: ConnectionEntity): Promise; diff --git a/backend/src/entities/connection/repository/custom-connection-repository-extension.ts b/backend/src/entities/connection/repository/custom-connection-repository-extension.ts index 7bdc1bcac..784962b33 100644 --- a/backend/src/entities/connection/repository/custom-connection-repository-extension.ts +++ b/backend/src/entities/connection/repository/custom-connection-repository-extension.ts @@ -148,15 +148,6 @@ export const customConnectionRepositoryExtension: IConnectionRepository = { return await qb.getOne(); }, - async getConnectionAuthorIdByGroupInConnectionId(groupId: string): Promise { - const connectionQb = this.createQueryBuilder('connection') - .leftJoinAndSelect('connection.groups', 'group') - .leftJoinAndSelect('connection.author', 'author') - .andWhere('group.id = :id', { id: groupId }); - const connection: ConnectionEntity = await connectionQb.getOne(); - return connection.author.id; - }, - async findOneById(connectionId: string): Promise { return await this.findOne({ where: { id: connectionId } }); }, diff --git a/backend/src/entities/group/repository/group-custom-repository-extension.ts b/backend/src/entities/group/repository/group-custom-repository-extension.ts index 04c3902ec..798069af3 100644 --- a/backend/src/entities/group/repository/group-custom-repository-extension.ts +++ b/backend/src/entities/group/repository/group-custom-repository-extension.ts @@ -61,13 +61,6 @@ export const groupCustomRepositoryExtension: IGroupRepository = { return await qb.getMany(); }, - async countAllUserGroups(userId: string): Promise { - const qb = this.createQueryBuilder('group') - .leftJoin('group.users', 'user') - .andWhere('user.id = :userId', { userId: userId }); - return await qb.getCount(); - }, - async findAllUsersInGroup(groupId: string): Promise> { const qb = this.manager .getRepository(UserEntity) diff --git a/backend/src/entities/group/repository/group.repository.interface.ts b/backend/src/entities/group/repository/group.repository.interface.ts index 907ae8c42..d4e03c061 100644 --- a/backend/src/entities/group/repository/group.repository.interface.ts +++ b/backend/src/entities/group/repository/group.repository.interface.ts @@ -24,6 +24,4 @@ export interface IGroupRepository { findGroupWithPermissionsById(groupId: string): Promise; findAllUsersInGroupsWhereUserIsAdmin(userId: string, connectionId: string): Promise>; - - countAllUserGroups(userId: string): Promise; } From bbc1168bd2e1c5ed7863064f62574445585509ec Mon Sep 17 00:00:00 2001 From: Artem Niehrieiev Date: Tue, 14 Oct 2025 10:10:51 +0000 Subject: [PATCH 2/2] refactor: simplify table sorting logic in FindTablesInConnectionV2UseCase --- .../permission-custom-repository-extension.ts | 6 +++--- .../find-tables-in-connection-v2.use.case.ts | 18 +++--------------- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/backend/src/entities/permission/repository/permission-custom-repository-extension.ts b/backend/src/entities/permission/repository/permission-custom-repository-extension.ts index 44cc1c12c..46ed8c875 100644 --- a/backend/src/entities/permission/repository/permission-custom-repository-extension.ts +++ b/backend/src/entities/permission/repository/permission-custom-repository-extension.ts @@ -143,9 +143,9 @@ export const permissionCustomRepositoryExtension = { connectionId: string, ): Promise> { const qb = this.createQueryBuilder('permission') - .leftJoinAndSelect('permission.groups', 'group') - .leftJoinAndSelect('group.users', 'user') - .leftJoinAndSelect('group.connection', 'connection') + .leftJoin('permission.groups', 'group') + .leftJoin('group.users', 'user') + .leftJoin('group.connection', 'connection') .andWhere('connection.id = :connectionId', { connectionId: connectionId }) .andWhere('user.id = :userId', { userId: userId }) .andWhere('permission.type = :permissionType', { permissionType: PermissionTypeEnum.Table }); diff --git a/backend/src/entities/table/use-cases/find-tables-in-connection-v2.use.case.ts b/backend/src/entities/table/use-cases/find-tables-in-connection-v2.use.case.ts index 454713e1e..a6b0f3523 100644 --- a/backend/src/entities/table/use-cases/find-tables-in-connection-v2.use.case.ts +++ b/backend/src/entities/table/use-cases/find-tables-in-connection-v2.use.case.ts @@ -136,21 +136,9 @@ export class FindTablesInConnectionV2UseCase } const sortedTables = tablesRO.sort((tableRO1, tableRO2) => { - const display_name1 = tableRO1.display_name; - const display_name2 = tableRO2.display_name; - if (display_name1 && display_name2) { - return display_name1.localeCompare(display_name2); - } - if (!display_name1 && !display_name2) { - return tableRO1.table.localeCompare(tableRO2.table); - } - if (!display_name1 && display_name2) { - return tableRO1.table.localeCompare(display_name2); - } - if (display_name1 && !display_name2) { - return display_name1.localeCompare(tableRO2.table); - } - return 0; + const name1 = tableRO1.display_name || tableRO1.table; + const name2 = tableRO2.display_name || tableRO2.table; + return name1.localeCompare(name2); }); const tableCategories = foundConnectionProperties?.table_categories || [];