8643 fix sentry error (#8644)

- fixes missing data in event payload when adding a new workspaceMember
- add strong typing to database event emitters
This commit is contained in:
martmull
2024-11-21 17:09:36 +01:00
committed by GitHub
parent 395da91071
commit 39373b4a28
61 changed files with 460 additions and 311 deletions

View File

@ -1,6 +1,8 @@
import { ObjectRecordBaseEvent } from 'src/engine/core-modules/event-emitter/types/object-record.base.event';
export class ObjectRecordCreateEvent<T> extends ObjectRecordBaseEvent {
export class ObjectRecordCreateEvent<
T = object,
> extends ObjectRecordBaseEvent<T> {
properties: {
after: T;
};

View File

@ -1,6 +1,8 @@
import { ObjectRecordBaseEvent } from 'src/engine/core-modules/event-emitter/types/object-record.base.event';
export class ObjectRecordDeleteEvent<T> extends ObjectRecordBaseEvent {
export class ObjectRecordDeleteEvent<
T = object,
> extends ObjectRecordBaseEvent<T> {
properties: {
before: T;
};

View File

@ -1,6 +1,8 @@
import { ObjectRecordBaseEvent } from 'src/engine/core-modules/event-emitter/types/object-record.base.event';
export class ObjectRecordDestroyEvent<T> extends ObjectRecordBaseEvent {
export class ObjectRecordDestroyEvent<
T = object,
> extends ObjectRecordBaseEvent<T> {
properties: {
before: T;
};

View File

@ -0,0 +1,3 @@
export type ObjectRecordDiff<T> = {
[K in keyof T]: { before: T[K]; after: T[K] };
};

View File

@ -1,14 +1,13 @@
import { ObjectRecordBaseEvent } from 'src/engine/core-modules/event-emitter/types/object-record.base.event';
import { ObjectRecordDiff } from 'src/engine/core-modules/event-emitter/types/object-record-diff';
type Diff<T> = {
[K in keyof T]: { before: T[K]; after: T[K] };
};
export class ObjectRecordUpdateEvent<T> extends ObjectRecordBaseEvent {
export class ObjectRecordUpdateEvent<
T = object,
> extends ObjectRecordBaseEvent<T> {
properties: {
updatedFields?: string[];
before: T;
after: T;
diff?: Partial<Diff<T>>;
diff?: Partial<ObjectRecordDiff<T>>;
};
}

View File

@ -1,9 +1,18 @@
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
export class ObjectRecordBaseEvent {
import { ObjectRecordDiff } from 'src/engine/core-modules/event-emitter/types/object-record-diff';
type Properties<T> = {
updatedFields?: string[];
before?: T;
after?: T;
diff?: Partial<ObjectRecordDiff<T>>;
};
export class ObjectRecordBaseEvent<T = object> {
recordId: string;
userId?: string;
workspaceMemberId?: string;
objectMetadata: ObjectMetadataInterface;
properties: any;
properties: Properties<T>;
}