Skip to content

Commit 773e4cb

Browse files
thomtrpThomas Trompette
and
Thomas Trompette
authored
Fix get available tables (twentyhq#4873)
Endpoint is broken since we now use `Remote` as a suffix for remote table names. This PR: - creates a common function to calculate the name of the remote table - use it in the `findAvailableRemotePostgresTables` to know if a table has been synced or not Co-authored-by: Thomas Trompette <[email protected]>
1 parent ff8874b commit 773e4cb

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

packages/twenty-server/src/engine/metadata-modules/remote-server/remote-table/remote-postgres-table/remote-postgres-table.service.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import {
1313
} from 'src/engine/metadata-modules/remote-server/remote-table/remote-postgres-table/utils/remote-postgres-table.util';
1414
import { EnvironmentService } from 'src/engine/integrations/environment/environment.service';
1515
import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service';
16+
import { getRemoteTableName } from 'src/engine/metadata-modules/remote-server/remote-table/utils/get-remote-table-name.util';
1617

1718
@Injectable()
1819
export class RemotePostgresTableService {
@@ -42,7 +43,9 @@ export class RemotePostgresTableService {
4243
return remotePostgresTables.map((remoteTable) => ({
4344
name: remoteTable.table_name,
4445
schema: remoteTable.table_schema,
45-
status: currentForeignTableNames.includes(remoteTable.table_name)
46+
status: currentForeignTableNames.includes(
47+
getRemoteTableName(remoteTable.table_name),
48+
)
4649
? RemoteTableStatus.SYNCED
4750
: RemoteTableStatus.NOT_SYNCED,
4851
}));

packages/twenty-server/src/engine/metadata-modules/remote-server/remote-table/remote-table.service.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import { RemotePostgresTableService } from 'src/engine/metadata-modules/remote-s
2525
import { WorkspaceCacheVersionService } from 'src/engine/metadata-modules/workspace-cache-version/workspace-cache-version.service';
2626
import { camelCase } from 'src/utils/camel-case';
2727
import { camelToTitleCase } from 'src/utils/camel-to-title-case';
28+
import { getRemoteTableName } from 'src/engine/metadata-modules/remote-server/remote-table/utils/get-remote-table-name.util';
2829

2930
export class RemoteTableService {
3031
constructor(
@@ -149,7 +150,7 @@ export class RemoteTableService {
149150
.map((column) => `"${column.column_name}" ${column.data_type}`)
150151
.join(', ');
151152

152-
const remoteTableName = `${camelCase(input.name)}Remote`;
153+
const remoteTableName = getRemoteTableName(input.name);
153154
const remoteTableLabel = camelToTitleCase(remoteTableName);
154155

155156
// We only support remote tables with an id column for now.
@@ -211,9 +212,11 @@ export class RemoteTableService {
211212
workspaceDataSource: DataSource,
212213
localSchema: string,
213214
) {
215+
const remoteTableName = getRemoteTableName(input.name);
216+
214217
const objectMetadata =
215218
await this.objectMetadataService.findOneWithinWorkspace(workspaceId, {
216-
where: { nameSingular: `${input.name}Remote` },
219+
where: { nameSingular: remoteTableName },
217220
});
218221

219222
if (objectMetadata) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { camelCase } from 'src/utils/camel-case';
2+
3+
export const getRemoteTableName = (distantTableName: string) =>
4+
`${camelCase(distantTableName)}Remote`;

0 commit comments

Comments
 (0)