feat: refactor custom object (#1887)

* chore: drop old universal entity

* feat: wip refactor graphql generation custom object

* feat: refactor custom object resolvers

fix: tests

fix: import

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
Jérémy M
2023-10-10 10:50:54 +02:00
committed by GitHub
parent 18c8f26f38
commit 017a0b1563
33 changed files with 588 additions and 770 deletions

View File

@ -0,0 +1,45 @@
import { Injectable } from '@nestjs/common';
import { GraphQLSchema } from 'graphql';
import { DataSourceMetadataService } from 'src/metadata/data-source-metadata/data-source-metadata.service';
import { ObjectMetadataService } from 'src/metadata/object-metadata/object-metadata.service';
import { SchemaBuilderService } from './schema-builder/schema-builder.service';
@Injectable()
export class TenantService {
constructor(
private readonly schemaBuilderService: SchemaBuilderService,
private readonly dataSourceMetadataService: DataSourceMetadataService,
private readonly objectMetadataService: ObjectMetadataService,
) {}
async createTenantSchema(workspaceId: string | undefined) {
if (!workspaceId) {
return new GraphQLSchema({});
}
const dataSourcesMetadata =
await this.dataSourceMetadataService.getDataSourcesMetadataFromWorkspaceId(
workspaceId,
);
// Can'f find any data sources for this workspace
if (!dataSourcesMetadata || dataSourcesMetadata.length === 0) {
return new GraphQLSchema({});
}
const dataSourceMetadata = dataSourcesMetadata[0];
const objectMetadata =
await this.objectMetadataService.getObjectMetadataFromDataSourceId(
dataSourceMetadata.id,
);
return this.schemaBuilderService.generateSchema(
workspaceId,
objectMetadata,
);
}
}