mirror of
https://github.com/lingble/twenty.git
synced 2025-11-01 21:27:58 +00:00
@@ -31,44 +31,54 @@ export class CopyWebhookOperationIntoOperationsCommand extends ActiveWorkspacesC
|
|||||||
this.logger.log('Running command to copy operation to operations');
|
this.logger.log('Running command to copy operation to operations');
|
||||||
|
|
||||||
for (const workspaceId of activeWorkspaceIds) {
|
for (const workspaceId of activeWorkspaceIds) {
|
||||||
this.logger.log(`Running command for workspace ${workspaceId}`);
|
try {
|
||||||
|
this.logger.log(`Running command for workspace ${workspaceId}`);
|
||||||
|
|
||||||
const webhookRepository =
|
const webhookRepository =
|
||||||
await this.twentyORMGlobalManager.getRepositoryForWorkspace(
|
await this.twentyORMGlobalManager.getRepositoryForWorkspace(
|
||||||
workspaceId,
|
workspaceId,
|
||||||
'webhook',
|
'webhook',
|
||||||
);
|
|
||||||
|
|
||||||
const webhooks = await webhookRepository.find();
|
|
||||||
|
|
||||||
for (const webhook of webhooks) {
|
|
||||||
if ('operation' in webhook) {
|
|
||||||
let newOpe = webhook.operation;
|
|
||||||
|
|
||||||
newOpe = newOpe.replace(/\bcreate\b(?=\.|$)/g, 'created');
|
|
||||||
newOpe = newOpe.replace(/\bupdate\b(?=\.|$)/g, 'updated');
|
|
||||||
newOpe = newOpe.replace(/\bdelete\b(?=\.|$)/g, 'deleted');
|
|
||||||
newOpe = newOpe.replace(/\bdestroy\b(?=\.|$)/g, 'destroyed');
|
|
||||||
|
|
||||||
const [firstWebhookPart, lastWebhookPart] = newOpe.split('.');
|
|
||||||
|
|
||||||
if (
|
|
||||||
['created', 'updated', 'deleted', 'destroyed'].includes(
|
|
||||||
firstWebhookPart,
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
newOpe = `${lastWebhookPart}.${firstWebhookPart}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
await webhookRepository.update(webhook.id, {
|
|
||||||
operation: newOpe,
|
|
||||||
operations: [newOpe],
|
|
||||||
});
|
|
||||||
|
|
||||||
this.logger.log(
|
|
||||||
chalk.yellow(`Handled webhook operation updates for ${webhook.id}`),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const webhooks = await webhookRepository.find();
|
||||||
|
|
||||||
|
for (const webhook of webhooks) {
|
||||||
|
if ('operation' in webhook) {
|
||||||
|
let newOpe = webhook.operation;
|
||||||
|
|
||||||
|
newOpe = newOpe.replace(/\bcreate\b(?=\.|$)/g, 'created');
|
||||||
|
newOpe = newOpe.replace(/\bupdate\b(?=\.|$)/g, 'updated');
|
||||||
|
newOpe = newOpe.replace(/\bdelete\b(?=\.|$)/g, 'deleted');
|
||||||
|
newOpe = newOpe.replace(/\bdestroy\b(?=\.|$)/g, 'destroyed');
|
||||||
|
|
||||||
|
const [firstWebhookPart, lastWebhookPart] = newOpe.split('.');
|
||||||
|
|
||||||
|
if (
|
||||||
|
['created', 'updated', 'deleted', 'destroyed'].includes(
|
||||||
|
firstWebhookPart,
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
newOpe = `${lastWebhookPart}.${firstWebhookPart}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
await webhookRepository.update(webhook.id, {
|
||||||
|
operation: newOpe,
|
||||||
|
operations: [newOpe],
|
||||||
|
});
|
||||||
|
|
||||||
|
this.logger.log(
|
||||||
|
chalk.yellow(
|
||||||
|
`Handled webhook operation updates for ${webhook.id}`,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} catch (e) {
|
||||||
|
this.logger.log(
|
||||||
|
chalk.red(
|
||||||
|
`Error when running command on workspace ${workspaceId}: ${e}`,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user