Skip to content

Commit

Permalink
Fix sign up broken because of missing workspace schema (#6013)
Browse files Browse the repository at this point in the history
Allow workspace datasource factory to return null if the workspace
schema has not been created yet
  • Loading branch information
charlesBochet authored Jun 25, 2024
1 parent 7fb5c9b commit f8c057d
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,15 @@ export class DataSourceService {
});
}

async getLastDataSourceMetadataFromWorkspaceId(
workspaceId: string,
): Promise<DataSourceEntity | null> {
return this.dataSourceMetadataRepository.findOne({
where: { workspaceId },
order: { createdAt: 'DESC' },
});
}

async getLastDataSourceMetadataFromWorkspaceIdOrFail(
workspaceId: string,
): Promise<DataSourceEntity> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,10 @@ export class WorkspaceDatasourceFactory {
private readonly environmentService: EnvironmentService,
) {}

public async create(entities: EntitySchema[], workspaceId: string) {
public async create(
entities: EntitySchema[],
workspaceId: string,
): Promise<WorkspaceDataSource | null> {
const storedWorkspaceDataSource =
DataSourceStorage.getDataSource(workspaceId);

Expand All @@ -23,10 +26,14 @@ export class WorkspaceDatasourceFactory {
}

const dataSourceMetadata =
await this.dataSourceService.getLastDataSourceMetadataFromWorkspaceIdOrFail(
await this.dataSourceService.getLastDataSourceMetadataFromWorkspaceId(
workspaceId,
);

if (!dataSourceMetadata) {
return null;
}

const workspaceDataSource = new WorkspaceDataSource({
url:
dataSourceMetadata.url ??
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,11 @@ export class TwentyORMManager {
entities,
workspaceId,
);

if (!workspaceDataSource) {
throw new Error('Workspace data source not found');
}

const entitySchema = this.entitySchemaFactory.create(entityClass);

return workspaceDataSource.getRepository<T>(entitySchema);
Expand Down

0 comments on commit f8c057d

Please sign in to comment.