import Crypto from 'crypto'; import isEmpty from 'lodash/isEmpty.js'; import defineTrigger from '../../../../helpers/define-trigger.js'; export default defineTrigger({ name: 'New clients', key: 'newClients', type: 'webhook', description: 'Triggers when a new client is added.', arguments: [], async run($) { const dataItem = { raw: $.request.body, meta: { internalId: Crypto.randomUUID(), }, }; $.pushTriggerItem(dataItem); }, async testRun($) { const lastExecutionStep = await $.getLastExecutionStep(); if (!isEmpty(lastExecutionStep?.dataOut)) { $.pushTriggerItem({ raw: lastExecutionStep.dataOut, meta: { internalId: '', }, }); } }, async registerHook($) { const CREATE_CLIENT_EVENT_ID = '1'; const payload = { target_url: $.webhookUrl, event_id: CREATE_CLIENT_EVENT_ID, format: 'JSON', rest_method: 'post', }; const response = await $.http.post('/v1/webhooks', payload); await $.flow.setRemoteWebhookId(response.data.data.id); }, async unregisterHook($) { await $.http.delete(`/v1/webhooks/${$.flow.remoteWebhookId}`); }, });