Fix broken graphql playground (#13287)
Fixes https://github.com/twentyhq/twenty/issues/12991 Also fixes a regression on main where updateEvent are not correctly emit when calling repository.update()
This commit is contained in:
@ -15,6 +15,10 @@ export const DateScalarType = new GraphQLScalarType({
|
||||
return new Date(parseInt(ast.value, 10));
|
||||
}
|
||||
|
||||
if (ast.kind === Kind.STRING) {
|
||||
return new Date(ast.value);
|
||||
}
|
||||
|
||||
return null;
|
||||
},
|
||||
});
|
||||
|
||||
@ -285,7 +285,7 @@ describe('WorkspaceEntityManager', () => {
|
||||
it('should call createQueryBuilder with permissionOptions for update', async () => {
|
||||
await entityManager.update('test-entity', {}, {}, mockPermissionOptions);
|
||||
expect(entityManager['createQueryBuilder']).toHaveBeenCalledWith(
|
||||
undefined,
|
||||
'test-entity',
|
||||
undefined,
|
||||
undefined,
|
||||
mockPermissionOptions,
|
||||
|
||||
@ -275,6 +275,8 @@ export class WorkspaceEntityManager extends EntityManager {
|
||||
partialEntity: QueryDeepPartialEntity<Entity>,
|
||||
permissionOptions?: PermissionOptions,
|
||||
): Promise<UpdateResult> {
|
||||
const metadata = this.connection.getMetadata(target);
|
||||
|
||||
if (
|
||||
criteria === undefined ||
|
||||
criteria === null ||
|
||||
@ -294,23 +296,23 @@ export class WorkspaceEntityManager extends EntityManager {
|
||||
Array.isArray(criteria)
|
||||
) {
|
||||
return this.createQueryBuilder(
|
||||
undefined,
|
||||
undefined,
|
||||
target,
|
||||
metadata.name,
|
||||
undefined,
|
||||
permissionOptions,
|
||||
)
|
||||
.update(target)
|
||||
.update()
|
||||
.set(partialEntity)
|
||||
.whereInIds(criteria)
|
||||
.execute();
|
||||
} else {
|
||||
return this.createQueryBuilder(
|
||||
undefined,
|
||||
undefined,
|
||||
target,
|
||||
metadata.name,
|
||||
undefined,
|
||||
permissionOptions,
|
||||
)
|
||||
.update(target)
|
||||
.update()
|
||||
.set(partialEntity)
|
||||
.where(criteria)
|
||||
.execute();
|
||||
|
||||
@ -71,19 +71,19 @@ export class WorkspaceUpdateQueryBuilder<
|
||||
this.internalContext,
|
||||
);
|
||||
|
||||
const beforeSelectQueryBuilder = new WorkspaceSelectQueryBuilder(
|
||||
const eventSelectQueryBuilder = new WorkspaceSelectQueryBuilder(
|
||||
this as unknown as WorkspaceSelectQueryBuilder<T>,
|
||||
this.objectRecordsPermissions,
|
||||
this.internalContext,
|
||||
this.shouldBypassPermissionChecks,
|
||||
true,
|
||||
this.authContext,
|
||||
);
|
||||
|
||||
beforeSelectQueryBuilder.expressionMap.wheres = this.expressionMap.wheres;
|
||||
beforeSelectQueryBuilder.expressionMap.aliases = this.expressionMap.aliases;
|
||||
beforeSelectQueryBuilder.setParameters(this.getParameters());
|
||||
eventSelectQueryBuilder.expressionMap.wheres = this.expressionMap.wheres;
|
||||
eventSelectQueryBuilder.expressionMap.aliases = this.expressionMap.aliases;
|
||||
eventSelectQueryBuilder.setParameters(this.getParameters());
|
||||
|
||||
const before = await beforeSelectQueryBuilder.getMany();
|
||||
const before = await eventSelectQueryBuilder.getMany();
|
||||
|
||||
const formattedBefore = formatResult<T[]>(
|
||||
before,
|
||||
@ -91,10 +91,11 @@ export class WorkspaceUpdateQueryBuilder<
|
||||
this.internalContext.objectMetadataMaps,
|
||||
);
|
||||
|
||||
const after = await super.execute();
|
||||
const result = await super.execute();
|
||||
const after = await eventSelectQueryBuilder.getMany();
|
||||
|
||||
const formattedAfter = formatResult<T[]>(
|
||||
after.raw,
|
||||
after,
|
||||
objectMetadata,
|
||||
this.internalContext.objectMetadataMaps,
|
||||
);
|
||||
@ -109,9 +110,9 @@ export class WorkspaceUpdateQueryBuilder<
|
||||
});
|
||||
|
||||
return {
|
||||
raw: after.raw,
|
||||
raw: result.raw,
|
||||
generatedMaps: formattedAfter,
|
||||
affected: after.affected,
|
||||
affected: result.affected,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user