|
|
|
|
@ -1,49 +1,49 @@
|
|
|
|
|
import { Logger } from '@nestjs/common';
|
|
|
|
|
import { InjectRepository } from '@nestjs/typeorm';
|
|
|
|
|
|
|
|
|
|
import { Repository } from 'typeorm';
|
|
|
|
|
import { plural } from 'pluralize';
|
|
|
|
|
import isEmpty from 'lodash.isempty';
|
|
|
|
|
import { plural } from 'pluralize';
|
|
|
|
|
import { Repository } from 'typeorm';
|
|
|
|
|
|
|
|
|
|
import { DataSourceService } from 'src/engine/metadata-modules/data-source/data-source.service';
|
|
|
|
|
import { CreateFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/create-field.input';
|
|
|
|
|
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
|
|
|
|
|
import { FieldMetadataService } from 'src/engine/metadata-modules/field-metadata/field-metadata.service';
|
|
|
|
|
import { CreateObjectInput } from 'src/engine/metadata-modules/object-metadata/dtos/create-object.input';
|
|
|
|
|
import { ObjectMetadataService } from 'src/engine/metadata-modules/object-metadata/object-metadata.service';
|
|
|
|
|
import {
|
|
|
|
|
RemoteServerType,
|
|
|
|
|
RemoteServerEntity,
|
|
|
|
|
RemoteServerType,
|
|
|
|
|
} from 'src/engine/metadata-modules/remote-server/remote-server.entity';
|
|
|
|
|
import { DistantTableService } from 'src/engine/metadata-modules/remote-server/remote-table/distant-table/distant-table.service';
|
|
|
|
|
import { sortDistantTables } from 'src/engine/metadata-modules/remote-server/remote-table/distant-table/utils/sort-distant-tables.util';
|
|
|
|
|
import { RemoteTableInput } from 'src/engine/metadata-modules/remote-server/remote-table/dtos/remote-table-input';
|
|
|
|
|
import {
|
|
|
|
|
DistantTableUpdate,
|
|
|
|
|
RemoteTableStatus,
|
|
|
|
|
} from 'src/engine/metadata-modules/remote-server/remote-table/dtos/remote-table.dto';
|
|
|
|
|
import {
|
|
|
|
|
mapUdtNameToFieldSettings,
|
|
|
|
|
mapUdtNameToFieldType,
|
|
|
|
|
} from 'src/engine/metadata-modules/remote-server/remote-table/utils/udt-name-mapper.util';
|
|
|
|
|
import { RemoteTableInput } from 'src/engine/metadata-modules/remote-server/remote-table/dtos/remote-table-input';
|
|
|
|
|
import { DataSourceService } from 'src/engine/metadata-modules/data-source/data-source.service';
|
|
|
|
|
import { ObjectMetadataService } from 'src/engine/metadata-modules/object-metadata/object-metadata.service';
|
|
|
|
|
import { CreateObjectInput } from 'src/engine/metadata-modules/object-metadata/dtos/create-object.input';
|
|
|
|
|
import { FieldMetadataService } from 'src/engine/metadata-modules/field-metadata/field-metadata.service';
|
|
|
|
|
import { WorkspaceCacheVersionService } from 'src/engine/metadata-modules/workspace-cache-version/workspace-cache-version.service';
|
|
|
|
|
import { camelCase } from 'src/utils/camel-case';
|
|
|
|
|
import { camelToTitleCase } from 'src/utils/camel-to-title-case';
|
|
|
|
|
import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service';
|
|
|
|
|
import { RemoteTableEntity } from 'src/engine/metadata-modules/remote-server/remote-table/remote-table.entity';
|
|
|
|
|
import { getRemoteTableLocalName } from 'src/engine/metadata-modules/remote-server/remote-table/utils/get-remote-table-local-name.util';
|
|
|
|
|
import { DistantTableService } from 'src/engine/metadata-modules/remote-server/remote-table/distant-table/distant-table.service';
|
|
|
|
|
import { PostgresTableSchemaColumn } from 'src/engine/metadata-modules/remote-server/types/postgres-table-schema-column';
|
|
|
|
|
import { fetchTableColumns } from 'src/engine/metadata-modules/remote-server/remote-table/utils/fetch-table-columns.util';
|
|
|
|
|
import { ForeignTableService } from 'src/engine/metadata-modules/remote-server/remote-table/foreign-table/foreign-table.service';
|
|
|
|
|
import { RemoteTableSchemaUpdateService } from 'src/engine/metadata-modules/remote-server/remote-table/remote-table-schema-update/remote-table-schema-update.service';
|
|
|
|
|
import { sortDistantTables } from 'src/engine/metadata-modules/remote-server/remote-table/distant-table/utils/sort-distant-tables.util';
|
|
|
|
|
import {
|
|
|
|
|
WorkspaceMigrationColumnAction,
|
|
|
|
|
WorkspaceMigrationColumnActionType,
|
|
|
|
|
} from 'src/engine/metadata-modules/workspace-migration/workspace-migration.entity';
|
|
|
|
|
import { CreateFieldInput } from 'src/engine/metadata-modules/field-metadata/dtos/create-field.input';
|
|
|
|
|
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
|
|
|
|
|
import { RemoteTableEntity } from 'src/engine/metadata-modules/remote-server/remote-table/remote-table.entity';
|
|
|
|
|
import {
|
|
|
|
|
RemoteTableException,
|
|
|
|
|
RemoteTableExceptionCode,
|
|
|
|
|
} from 'src/engine/metadata-modules/remote-server/remote-table/remote-table.exception';
|
|
|
|
|
import { fetchTableColumns } from 'src/engine/metadata-modules/remote-server/remote-table/utils/fetch-table-columns.util';
|
|
|
|
|
import { getRemoteTableLocalName } from 'src/engine/metadata-modules/remote-server/remote-table/utils/get-remote-table-local-name.util';
|
|
|
|
|
import {
|
|
|
|
|
mapUdtNameToFieldSettings,
|
|
|
|
|
mapUdtNameToFieldType,
|
|
|
|
|
} from 'src/engine/metadata-modules/remote-server/remote-table/utils/udt-name-mapper.util';
|
|
|
|
|
import { PostgresTableSchemaColumn } from 'src/engine/metadata-modules/remote-server/types/postgres-table-schema-column';
|
|
|
|
|
import { WorkspaceMetadataVersionService } from 'src/engine/metadata-modules/workspace-metadata-version/workspace-metadata-version.service';
|
|
|
|
|
import {
|
|
|
|
|
WorkspaceMigrationColumnAction,
|
|
|
|
|
WorkspaceMigrationColumnActionType,
|
|
|
|
|
} from 'src/engine/metadata-modules/workspace-migration/workspace-migration.entity';
|
|
|
|
|
import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service';
|
|
|
|
|
import { camelCase } from 'src/utils/camel-case';
|
|
|
|
|
import { camelToTitleCase } from 'src/utils/camel-to-title-case';
|
|
|
|
|
|
|
|
|
|
export class RemoteTableService {
|
|
|
|
|
private readonly logger = new Logger(RemoteTableService.name);
|
|
|
|
|
@ -55,7 +55,7 @@ export class RemoteTableService {
|
|
|
|
|
private readonly remoteServerRepository: Repository<
|
|
|
|
|
RemoteServerEntity<RemoteServerType>
|
|
|
|
|
>,
|
|
|
|
|
private readonly workspaceCacheVersionService: WorkspaceCacheVersionService,
|
|
|
|
|
private readonly workspaceMetadataVersionService: WorkspaceMetadataVersionService,
|
|
|
|
|
private readonly dataSourceService: DataSourceService,
|
|
|
|
|
private readonly objectMetadataService: ObjectMetadataService,
|
|
|
|
|
private readonly fieldMetadataService: FieldMetadataService,
|
|
|
|
|
@ -250,7 +250,9 @@ export class RemoteTableService {
|
|
|
|
|
|
|
|
|
|
await this.remoteTableRepository.save(remoteTableEntity);
|
|
|
|
|
|
|
|
|
|
await this.workspaceCacheVersionService.incrementVersion(workspaceId);
|
|
|
|
|
await this.workspaceMetadataVersionService.incrementMetadataVersion(
|
|
|
|
|
workspaceId,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
id: remoteTableEntity.id,
|
|
|
|
|
@ -435,7 +437,9 @@ export class RemoteTableService {
|
|
|
|
|
|
|
|
|
|
await this.remoteTableRepository.delete(remoteTable.id);
|
|
|
|
|
|
|
|
|
|
await this.workspaceCacheVersionService.incrementVersion(workspaceId);
|
|
|
|
|
await this.workspaceMetadataVersionService.incrementMetadataVersion(
|
|
|
|
|
workspaceId,
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async createRemoteTableMetadata(
|
|
|
|
|
|