Convert metadata tables to camel_case (#2420)
* Convert metadata tables to camelcase * refactor folder structure * rename datasourcemetadata * regenerate metadata schema * rename dataSourceMetadata to dataSource
This commit is contained in:
@ -66,7 +66,7 @@ export class CompositeFieldAliasFactory {
|
||||
|
||||
const targetTableName = relationMetadata.toObjectMetadata.targetTableName;
|
||||
const relationDirection = deduceRelationDirection(
|
||||
fieldMetadata.objectId,
|
||||
fieldMetadata.objectMetadataId,
|
||||
relationMetadata,
|
||||
);
|
||||
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
|
||||
import { QueryBuilderModule } from 'src/tenant/query-builder/query-builder.module';
|
||||
import { DataSourceModule } from 'src/metadata/data-source/data-source.module';
|
||||
import { TenantDataSourceModule } from 'src/tenant-datasource/tenant-datasource.module';
|
||||
|
||||
import { QueryRunnerService } from './query-runner.service';
|
||||
|
||||
@Module({
|
||||
imports: [QueryBuilderModule, DataSourceModule],
|
||||
imports: [QueryBuilderModule, TenantDataSourceModule],
|
||||
providers: [QueryRunnerService],
|
||||
exports: [QueryRunnerService],
|
||||
})
|
||||
|
||||
@ -16,8 +16,8 @@ import {
|
||||
} from 'src/tenant/query-builder/interfaces/resolvers-builder.interface';
|
||||
|
||||
import { QueryBuilderFactory } from 'src/tenant/query-builder/query-builder.factory';
|
||||
import { DataSourceService } from 'src/metadata/data-source/data-source.service';
|
||||
import { parseResult } from 'src/tenant/query-runner/utils/parse-result.util';
|
||||
import { TenantDataSourceService } from 'src/tenant-datasource/tenant-datasource.service';
|
||||
|
||||
import { QueryRunnerOptions } from './interfaces/query-runner-optionts.interface';
|
||||
import {
|
||||
@ -31,7 +31,7 @@ export class QueryRunnerService {
|
||||
|
||||
constructor(
|
||||
private readonly queryBuilderFactory: QueryBuilderFactory,
|
||||
private readonly dataSourceService: DataSourceService,
|
||||
private readonly tenantDataSourceService: TenantDataSourceService,
|
||||
) {}
|
||||
|
||||
async findMany<
|
||||
@ -130,10 +130,14 @@ export class QueryRunnerService {
|
||||
workspaceId: string,
|
||||
): Promise<PGGraphQLResult | undefined> {
|
||||
const workspaceDataSource =
|
||||
await this.dataSourceService.connectToWorkspaceDataSource(workspaceId);
|
||||
await this.tenantDataSourceService.connectToWorkspaceDataSource(
|
||||
workspaceId,
|
||||
);
|
||||
|
||||
await workspaceDataSource?.query(`
|
||||
SET search_path TO ${this.dataSourceService.getSchemaName(workspaceId)};
|
||||
SET search_path TO ${this.tenantDataSourceService.getSchemaName(
|
||||
workspaceId,
|
||||
)};
|
||||
`);
|
||||
|
||||
return workspaceDataSource?.query<PGGraphQLResult>(`
|
||||
|
||||
@ -134,7 +134,7 @@ export class ExtendObjectTypeDefinitionFactory {
|
||||
}
|
||||
|
||||
const relationDirection = deduceRelationDirection(
|
||||
fieldMetadata.objectId,
|
||||
fieldMetadata.objectMetadataId,
|
||||
relationMetadata,
|
||||
);
|
||||
const relationType = this.relationTypeFactory.create(
|
||||
|
||||
@ -0,0 +1,35 @@
|
||||
import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity';
|
||||
|
||||
export interface FieldMetadataTargetColumnMapValue {
|
||||
value: string;
|
||||
}
|
||||
|
||||
export interface FieldMetadataTargetColumnMapUrl {
|
||||
text: string;
|
||||
link: string;
|
||||
}
|
||||
|
||||
export interface FieldMetadataTargetColumnMapMoney {
|
||||
amount: number;
|
||||
currency: string;
|
||||
}
|
||||
|
||||
type AllFieldMetadataTypes = {
|
||||
[key: string]: any;
|
||||
};
|
||||
|
||||
type FieldMetadataTypeMapping = {
|
||||
[FieldMetadataType.URL]: FieldMetadataTargetColumnMapUrl;
|
||||
[FieldMetadataType.MONEY]: FieldMetadataTargetColumnMapMoney;
|
||||
};
|
||||
|
||||
type TypeByFieldMetadata<T extends FieldMetadataType | 'default'> =
|
||||
T extends keyof FieldMetadataTypeMapping
|
||||
? FieldMetadataTypeMapping[T]
|
||||
: T extends 'default'
|
||||
? AllFieldMetadataTypes
|
||||
: FieldMetadataTargetColumnMapValue;
|
||||
|
||||
export type FieldMetadataTargetColumnMap<
|
||||
T extends FieldMetadataType | 'default' = 'default',
|
||||
> = TypeByFieldMetadata<T>;
|
||||
@ -1,7 +1,7 @@
|
||||
import { FieldMetadataTargetColumnMap } from 'src/metadata/field-metadata/interfaces/field-metadata-target-column-map.interface';
|
||||
import { FieldMetadataTargetColumnMap } from 'src/tenant/schema-builder/interfaces/field-metadata-target-column-map.interface';
|
||||
|
||||
import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity';
|
||||
import { RelationMetadata } from 'src/metadata/relation-metadata/relation-metadata.entity';
|
||||
import { RelationMetadataEntity } from 'src/metadata/relation-metadata/relation-metadata.entity';
|
||||
|
||||
export interface FieldMetadataInterface<
|
||||
T extends FieldMetadataType | 'default' = 'default',
|
||||
@ -11,9 +11,9 @@ export interface FieldMetadataInterface<
|
||||
name: string;
|
||||
label: string;
|
||||
targetColumnMap: FieldMetadataTargetColumnMap<T>;
|
||||
objectId: string;
|
||||
objectMetadataId: string;
|
||||
description?: string;
|
||||
isNullable?: boolean;
|
||||
fromRelationMetadata?: RelationMetadata;
|
||||
toRelationMetadata?: RelationMetadata;
|
||||
fromRelationMetadata?: RelationMetadataEntity;
|
||||
toRelationMetadata?: RelationMetadataEntity;
|
||||
}
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import { ObjectMetadataInterface } from 'src/tenant/schema-builder/interfaces/object-metadata.interface';
|
||||
import { FieldMetadataInterface } from 'src/tenant/schema-builder/interfaces/field-metadata.interface';
|
||||
|
||||
import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity';
|
||||
|
||||
@ -13,21 +14,21 @@ export const moneyObjectDefinition = {
|
||||
{
|
||||
id: 'amount',
|
||||
type: FieldMetadataType.NUMBER,
|
||||
objectId: FieldMetadataType.MONEY.toString(),
|
||||
objectMetadataId: FieldMetadataType.MONEY.toString(),
|
||||
name: 'amount',
|
||||
label: 'Amount',
|
||||
targetColumnMap: { value: 'amount' },
|
||||
isNullable: true,
|
||||
},
|
||||
} satisfies FieldMetadataInterface,
|
||||
{
|
||||
id: 'currency',
|
||||
type: FieldMetadataType.TEXT,
|
||||
objectId: FieldMetadataType.MONEY.toString(),
|
||||
objectMetadataId: FieldMetadataType.MONEY.toString(),
|
||||
name: 'currency',
|
||||
label: 'Currency',
|
||||
targetColumnMap: { value: 'currency' },
|
||||
},
|
||||
} satisfies FieldMetadataInterface,
|
||||
],
|
||||
fromRelations: [],
|
||||
toRelations: [],
|
||||
} as ObjectMetadataInterface;
|
||||
} satisfies ObjectMetadataInterface;
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import { ObjectMetadataInterface } from 'src/tenant/schema-builder/interfaces/object-metadata.interface';
|
||||
import { FieldMetadataInterface } from 'src/tenant/schema-builder/interfaces/field-metadata.interface';
|
||||
|
||||
import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.entity';
|
||||
|
||||
@ -13,20 +14,20 @@ export const urlObjectDefinition = {
|
||||
{
|
||||
id: 'text',
|
||||
type: FieldMetadataType.TEXT,
|
||||
objectId: FieldMetadataType.URL.toString(),
|
||||
objectMetadataId: FieldMetadataType.URL.toString(),
|
||||
name: 'text',
|
||||
label: 'Text',
|
||||
targetColumnMap: { value: 'text' },
|
||||
},
|
||||
} satisfies FieldMetadataInterface,
|
||||
{
|
||||
id: 'link',
|
||||
type: FieldMetadataType.TEXT,
|
||||
objectId: FieldMetadataType.URL.toString(),
|
||||
objectMetadataId: FieldMetadataType.URL.toString(),
|
||||
name: 'link',
|
||||
label: 'Link',
|
||||
targetColumnMap: { value: 'link' },
|
||||
},
|
||||
} satisfies FieldMetadataInterface,
|
||||
],
|
||||
fromRelations: [],
|
||||
toRelations: [],
|
||||
} as ObjectMetadataInterface;
|
||||
} satisfies ObjectMetadataInterface;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { Injectable, Logger } from '@nestjs/common';
|
||||
|
||||
import { FieldMetadata } from 'src/metadata/field-metadata/field-metadata.entity';
|
||||
import { customTableDefaultColumns } from 'src/metadata/migration-runner/custom-table-default-column.util';
|
||||
import { FieldMetadataEntity } from 'src/metadata/field-metadata/field-metadata.entity';
|
||||
import { customTableDefaultColumns } from 'src/tenant-migration-runner/utils/custom-table-default-column.util';
|
||||
|
||||
import { TypeDefinitionsStorage } from './storages/type-definitions.storage';
|
||||
import {
|
||||
@ -31,7 +31,7 @@ const defaultFields = customTableDefaultColumns.map((column) => {
|
||||
type: getFieldMetadataType(column.type),
|
||||
name: column.name,
|
||||
isNullable: true,
|
||||
} as FieldMetadata;
|
||||
} as FieldMetadataEntity;
|
||||
});
|
||||
|
||||
@Injectable()
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
|
||||
import { MetadataModule } from 'src/metadata/metadata.module';
|
||||
import { DataSourceMetadataModule } from 'src/metadata/data-source-metadata/data-source-metadata.module';
|
||||
import { DataSourceModule } from 'src/metadata/data-source/data-source.module';
|
||||
import { ObjectMetadataModule } from 'src/metadata/object-metadata/object-metadata.module';
|
||||
|
||||
import { TenantService } from './tenant.service';
|
||||
@ -12,7 +12,7 @@ import { ResolverBuilderModule } from './resolver-builder/resolver-builder.modul
|
||||
@Module({
|
||||
imports: [
|
||||
MetadataModule,
|
||||
DataSourceMetadataModule,
|
||||
DataSourceModule,
|
||||
ObjectMetadataModule,
|
||||
SchemaBuilderModule,
|
||||
ResolverBuilderModule,
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { Test, TestingModule } from '@nestjs/testing';
|
||||
|
||||
import { DataSourceMetadataService } from 'src/metadata/data-source-metadata/data-source-metadata.service';
|
||||
import { ObjectMetadataService } from 'src/metadata/object-metadata/services/object-metadata.service';
|
||||
import { DataSourceService } from 'src/metadata/data-source/data-source.service';
|
||||
import { ObjectMetadataService } from 'src/metadata/object-metadata/object-metadata.service';
|
||||
|
||||
import { TenantService } from './tenant.service';
|
||||
|
||||
@ -16,7 +16,7 @@ describe('TenantService', () => {
|
||||
providers: [
|
||||
TenantService,
|
||||
{
|
||||
provide: DataSourceMetadataService,
|
||||
provide: DataSourceService,
|
||||
useValue: {},
|
||||
},
|
||||
{
|
||||
|
||||
@ -5,8 +5,8 @@ import { GraphQLSchema, printSchema } from 'graphql';
|
||||
import { makeExecutableSchema } from '@graphql-tools/schema';
|
||||
import { gql } from 'graphql-tag';
|
||||
|
||||
import { DataSourceMetadataService } from 'src/metadata/data-source-metadata/data-source-metadata.service';
|
||||
import { ObjectMetadataService } from 'src/metadata/object-metadata/services/object-metadata.service';
|
||||
import { DataSourceService } from 'src/metadata/data-source/data-source.service';
|
||||
import { ObjectMetadataService } from 'src/metadata/object-metadata/object-metadata.service';
|
||||
|
||||
import { GraphQLSchemaFactory } from './schema-builder/graphql-schema.factory';
|
||||
import { resolverBuilderMethodNames } from './resolver-builder/factories/factories';
|
||||
@ -15,7 +15,7 @@ import { ResolverFactory } from './resolver-builder/resolver.factory';
|
||||
@Injectable()
|
||||
export class TenantService {
|
||||
constructor(
|
||||
private readonly dataSourceMetadataService: DataSourceMetadataService,
|
||||
private readonly dataSourceService: DataSourceService,
|
||||
private readonly objectMetadataService: ObjectMetadataService,
|
||||
private readonly graphQLSchemaFactory: GraphQLSchemaFactory,
|
||||
private readonly resolverFactory: ResolverFactory,
|
||||
@ -27,7 +27,7 @@ export class TenantService {
|
||||
}
|
||||
|
||||
const dataSourcesMetadata =
|
||||
await this.dataSourceMetadataService.getDataSourcesMetadataFromWorkspaceId(
|
||||
await this.dataSourceService.getDataSourcesMetadataFromWorkspaceId(
|
||||
workspaceId,
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user