4586 fix workspace member feature (#4680)

* Fix import

* Handle delete workspace member consequences

* Add a patch to request deleted workspace member's userId

* Remove useless relations

* Handle delete workspace + refactor

* Add missing migration

* Fix test

* Code review returns

* Add missing operation in migration file

* Fix code review return update

* Fix workspaceMember<>ConnectedAccount relation
This commit is contained in:
martmull
2024-03-28 17:59:48 +01:00
committed by GitHub
parent 00eee3158e
commit 27fdb00d07
14 changed files with 298 additions and 127 deletions

View File

@ -407,6 +407,15 @@ export class WorkspaceQueryRunnerService {
args,
options,
);
// TODO START: remove this awful patch and use our upcoming custom ORM is developed
const deletedWorkspaceMember = await this.handleDeleteWorkspaceMember(
args.id,
workspaceId,
objectMetadataItem,
);
// TODO END
const result = await this.execute(query, workspaceId);
const parsedResults = (
@ -429,7 +438,10 @@ export class WorkspaceQueryRunnerService {
recordId: args.id,
objectMetadata: objectMetadataItem,
details: {
before: this.removeNestedProperties(parsedResults?.[0]),
before: {
...(deletedWorkspaceMember ?? {}),
...this.removeNestedProperties(parsedResults?.[0]),
},
},
} satisfies ObjectRecordDeleteEvent<any>);
@ -555,4 +567,33 @@ export class WorkspaceQueryRunnerService {
);
});
}
async handleDeleteWorkspaceMember(
id: string,
workspaceId: string,
objectMetadataItem: ObjectMetadataInterface,
) {
if (objectMetadataItem.nameSingular !== 'workspaceMember') {
return;
}
const workspaceMemberResult = await this.executeAndParse<IRecord>(
`
query {
workspaceMemberCollection(filter: {id: {eq: "${id}"}}) {
edges {
node {
userId: userId
}
}
}
}
`,
objectMetadataItem,
'',
workspaceId,
);
return workspaceMemberResult.edges?.[0]?.node;
}
}