7092 destroy connected account instead of soft deleting it (#7099)
- Create `destroyOne` endpoint - Call `destroyOne` when removing a `connectedAccount`
This commit is contained in:
@ -0,0 +1,33 @@
|
||||
import { Record as IRecord } from 'src/engine/api/graphql/workspace-query-builder/interfaces/record.interface';
|
||||
import { WorkspaceQueryRunnerOptions } from 'src/engine/api/graphql/workspace-query-runner/interfaces/query-runner-option.interface';
|
||||
import { DestroyOneResolverArgs } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface';
|
||||
|
||||
import { TwentyORMGlobalManager } from 'src/engine/twenty-orm/twenty-orm-global.manager';
|
||||
|
||||
export class GraphqlQueryDestroyOneResolverService {
|
||||
private twentyORMGlobalManager: TwentyORMGlobalManager;
|
||||
|
||||
constructor(twentyORMGlobalManager: TwentyORMGlobalManager) {
|
||||
this.twentyORMGlobalManager = twentyORMGlobalManager;
|
||||
}
|
||||
|
||||
async destroyOne<ObjectRecord extends IRecord = IRecord>(
|
||||
args: DestroyOneResolverArgs,
|
||||
options: WorkspaceQueryRunnerOptions,
|
||||
): Promise<ObjectRecord> {
|
||||
const { authContext, objectMetadataItem } = options;
|
||||
const repository =
|
||||
await this.twentyORMGlobalManager.getRepositoryForWorkspace(
|
||||
authContext.workspace.id,
|
||||
objectMetadataItem.nameSingular,
|
||||
);
|
||||
|
||||
const record = await repository.findOne({
|
||||
where: { id: args.id },
|
||||
});
|
||||
|
||||
await repository.delete(args.id);
|
||||
|
||||
return record as ObjectRecord;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user