Skip to content

Refactor data access layer to use shared enums and interfaces#1461

Merged
Artuomka merged 5 commits into
mainfrom
backend_refactoring
Dec 8, 2025
Merged

Refactor data access layer to use shared enums and interfaces#1461
Artuomka merged 5 commits into
mainfrom
backend_refactoring

Conversation

@Artuomka

@Artuomka Artuomka commented Dec 8, 2025

Copy link
Copy Markdown
Collaborator

No description provided.

Copilot AI review requested due to automatic review settings December 8, 2025 13:35

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refactors the data access layer to consolidate shared enums and interfaces into a centralized shared-code/src/shared/ directory, moving them out of shared-code/src/data-access-layer/shared/. The refactoring aims to improve code organization and reduce coupling between the data access layer and shared types.

  • Moves ConnectionTypesEnum and other enums from data-access-layer/shared/enums/ to shared/enums/
  • Introduces new shared enums (TableWidgetTypeEnum, QueryOrderingEnum, FilterCriteriaEnum, DataAccessObjectCommandsEnum)
  • Moves IUnknownDataStructure interface to shared/interfaces/
  • Updates import paths across data access objects, data structures, and helper functions

Reviewed changes

Copilot reviewed 30 out of 35 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
shared-code/src/shared/interfaces/unknown-datastructure.interface.ts New generic interface for untyped data structures
shared-code/src/shared/interfaces/data-access-object.interface.ts Updates imports to reference data structures from new centralized location
shared-code/src/shared/interfaces/data-access-object-agent.interface.ts Updates imports to reference data structures from new centralized location
shared-code/src/shared/enums/table-widget-type.enum.ts New enum defining table widget types
shared-code/src/shared/enums/query-ordering.enum.ts New enum for query ordering (ASC/DESC)
shared-code/src/shared/enums/filter-criteria.enum.ts New enum for filter criteria operations
shared-code/src/shared/enums/data-access-object-commands.enum.ts New enum defining data access object command names
shared-code/src/shared/enums/connection-types-enum.ts Moves ConnectionTypesEnum from data-access-layer to shared location
shared-code/src/helpers/validation/table-settings-validator.ts Updates import path for QueryOrderingEnum and removes trailing whitespace
shared-code/src/helpers/validation/table-settings-validation-errors.ts Updates import path for QueryOrderingEnum
shared-code/src/helpers/data-structures-builders/validate-table-settings-ds.builder.ts Updates import path for IUnknownDataStructure
shared-code/src/helpers/data-structures-builders/table-widget-ds.builder.ts Updates import path for IUnknownDataStructure
shared-code/src/data-access-layer/shared/enums/connection-types-enum.ts Deletes old enum file (moved to shared directory)
shared-code/src/data-access-layer/shared/data-structures/validate-table-settings.ds.ts Updates import path for QueryOrderingEnum
shared-code/src/data-access-layer/shared/data-structures/table-widget.ds.ts Updates import path for TableWidgetTypeEnum
shared-code/src/data-access-layer/shared/data-structures/table-settings.ds.ts Updates import path for QueryOrderingEnum
shared-code/src/data-access-layer/shared/data-structures/filtering-fields.ds.ts Updates import path for FilterCriteriaEnum
shared-code/src/data-access-layer/shared/create-data-access-object.ts Updates import paths for moved enums and interfaces
shared-code/src/data-access-layer/data-access-objects/data-access-object-redis.ts Updates import paths for FilterCriteriaEnum and IDataAccessObject
shared-code/src/data-access-layer/data-access-objects/data-access-object-postgres.ts Updates import paths for FilterCriteriaEnum and IDataAccessObject
shared-code/src/data-access-layer/data-access-objects/data-access-object-oracle.ts Updates import paths and improves code formatting
shared-code/src/data-access-layer/data-access-objects/data-access-object-mysql.ts Updates import paths for FilterCriteriaEnum and IDataAccessObject
shared-code/src/data-access-layer/data-access-objects/data-access-object-mssql.ts Updates import paths for enums and interfaces
shared-code/src/data-access-layer/data-access-objects/data-access-object-mongodb.ts Updates import paths for FilterCriteriaEnum and IDataAccessObject
shared-code/src/data-access-layer/data-access-objects/data-access-object-ibmdb2.ts Updates import paths for FilterCriteriaEnum and IDataAccessObject
shared-code/src/data-access-layer/data-access-objects/data-access-object-elasticsearch.ts Updates import paths for FilterCriteriaEnum and IDataAccessObject
shared-code/src/data-access-layer/data-access-objects/data-access-object-dynamodb.ts Updates import paths for enums and interfaces
shared-code/src/data-access-layer/data-access-objects/data-access-object-clickhouse.ts Updates import paths for FilterCriteriaEnum and IDataAccessObject
shared-code/src/data-access-layer/data-access-objects/data-access-object-cassandra.ts Updates import paths for enums and interfaces
shared-code/src/data-access-layer/data-access-objects/data-access-object-agent.ts Updates import paths for interfaces and enums
backend/test/mock.factory.ts Removes unused import; needs update for ConnectionTypesEnum import path
backend/src/helpers/is-connection-entity-agent.ts Updates ConnectionTypeTestEnum import; needs update for ConnectionTypesEnum import path
backend/src/entities/connection/utils/validate-create-connection-data.ts Updates ConnectionTypeTestEnum import; needs update for ConnectionTypesEnum import path
backend/src/entities/connection/application/dto/create-connection.dto.ts Updates ConnectionTypeTestEnum import; needs update for ConnectionTypesEnum import path
backend/src/entities/agent/repository/custom-agent-repository-extension.ts Updates ConnectionTypeTestEnum import path

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread backend/test/mock.factory.ts Outdated
import json5 from 'json5';
import { ConnectionTypeTestEnum } from '../src/enums/connection-type.enum.js';
import { CreateConnectionDto } from '../src/entities/connection/application/dto/create-connection.dto.js';
import { ConnectionTypesEnum } from '@rocketadmin/shared-code/dist/src/data-access-layer/shared/enums/connection-types-enum.js';

Copilot AI Dec 8, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This import path is incorrect after the refactoring. The ConnectionTypesEnum has been moved from @rocketadmin/shared-code/dist/src/data-access-layer/shared/enums/connection-types-enum.js to @rocketadmin/shared-code/dist/src/shared/enums/connection-types-enum.js. This will cause a compilation error since the old file is being deleted.

Update the import to:

import { ConnectionTypesEnum } from '@rocketadmin/shared-code/dist/src/shared/enums/connection-types-enum.js';
Suggested change
import { ConnectionTypesEnum } from '@rocketadmin/shared-code/dist/src/data-access-layer/shared/enums/connection-types-enum.js';
import { ConnectionTypesEnum } from '@rocketadmin/shared-code/dist/src/shared/enums/connection-types-enum.js';

Copilot uses AI. Check for mistakes.
@@ -1,7 +1,7 @@
import { ConnectionEntity } from '../entities/connection/connection.entity.js';
import { ConnectionTypesEnum } from '@rocketadmin/shared-code/dist/src/data-access-layer/shared/enums/connection-types-enum.js';

Copilot AI Dec 8, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This import path is incorrect after the refactoring. The ConnectionTypesEnum has been moved from @rocketadmin/shared-code/dist/src/data-access-layer/shared/enums/connection-types-enum.js to @rocketadmin/shared-code/dist/src/shared/enums/connection-types-enum.js. This will cause a compilation error since the old file is being deleted.

Update the import to:

import { ConnectionTypesEnum } from '@rocketadmin/shared-code/dist/src/shared/enums/connection-types-enum.js';
Suggested change
import { ConnectionTypesEnum } from '@rocketadmin/shared-code/dist/src/data-access-layer/shared/enums/connection-types-enum.js';
import { ConnectionTypesEnum } from '@rocketadmin/shared-code/dist/src/shared/enums/connection-types-enum.js';

Copilot uses AI. Check for mistakes.
@@ -3,13 +3,13 @@ import { HttpException } from '@nestjs/common/exceptions/http.exception.js';
import { ConnectionTypesEnum } from '@rocketadmin/shared-code/dist/src/data-access-layer/shared/enums/connection-types-enum.js';

Copilot AI Dec 8, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This import path is incorrect after the refactoring. The ConnectionTypesEnum has been moved from @rocketadmin/shared-code/dist/src/data-access-layer/shared/enums/connection-types-enum.js to @rocketadmin/shared-code/dist/src/shared/enums/connection-types-enum.js. This will cause a compilation error since the old file is being deleted.

Update the import to:

import { ConnectionTypesEnum } from '@rocketadmin/shared-code/dist/src/shared/enums/connection-types-enum.js';
Suggested change
import { ConnectionTypesEnum } from '@rocketadmin/shared-code/dist/src/data-access-layer/shared/enums/connection-types-enum.js';
import { ConnectionTypesEnum } from '@rocketadmin/shared-code/dist/src/shared/enums/connection-types-enum.js';

Copilot uses AI. Check for mistakes.
@@ -2,7 +2,7 @@ import { ApiProperty } from '@nestjs/swagger';
import { IsBoolean, IsEnum, IsNumber, IsOptional, IsString, Max, Min } from 'class-validator';
import { ConnectionTypesEnum } from '@rocketadmin/shared-code/dist/src/data-access-layer/shared/enums/connection-types-enum.js';

Copilot AI Dec 8, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This import path is incorrect after the refactoring. The ConnectionTypesEnum has been moved from @rocketadmin/shared-code/dist/src/data-access-layer/shared/enums/connection-types-enum.js to @rocketadmin/shared-code/dist/src/shared/enums/connection-types-enum.js. This will cause a compilation error since the old file is being deleted.

Update the import to:

import { ConnectionTypesEnum } from '@rocketadmin/shared-code/dist/src/shared/enums/connection-types-enum.js';
Suggested change
import { ConnectionTypesEnum } from '@rocketadmin/shared-code/dist/src/data-access-layer/shared/enums/connection-types-enum.js';
import { ConnectionTypesEnum } from '@rocketadmin/shared-code/dist/src/shared/enums/connection-types-enum.js';

Copilot uses AI. Check for mistakes.
@Artuomka Artuomka merged commit cbc1759 into main Dec 8, 2025
18 checks passed
@Artuomka Artuomka deleted the backend_refactoring branch December 8, 2025 15:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants