bc7791871f
Migrate webhook to v2 entity
36 lines
991 B
TypeScript
36 lines
991 B
TypeScript
import { isDefined } from 'twenty-shared/utils';
|
|
|
|
import type { ObjectRecordEvent } from 'twenty-shared/database-events';
|
|
|
|
import { removeSecretFromWebhookRecord } from 'src/utils/remove-secret-from-webhook-record';
|
|
|
|
export const transformEventToWebhookEvent = ({
|
|
eventName,
|
|
event,
|
|
}: {
|
|
eventName: string;
|
|
event: ObjectRecordEvent;
|
|
}) => {
|
|
const [nameSingular, _] = eventName.split('.');
|
|
|
|
const record =
|
|
'after' in event.properties && isDefined(event.properties.after)
|
|
? event.properties.after
|
|
: 'before' in event.properties && isDefined(event.properties.before)
|
|
? event.properties.before
|
|
: {};
|
|
const updatedFields =
|
|
'updatedFields' in event.properties
|
|
? event.properties.updatedFields
|
|
: undefined;
|
|
|
|
const isWebhookEvent = nameSingular === 'webhook';
|
|
|
|
const sanitizedRecord = removeSecretFromWebhookRecord(record, isWebhookEvent);
|
|
|
|
return {
|
|
record: sanitizedRecord,
|
|
...(updatedFields && { updatedFields }),
|
|
};
|
|
};
|