|
import defineAction from '../../../../helpers/define-action.js'; |
|
|
|
export default defineAction({ |
|
name: 'Send message', |
|
key: 'sendMessage', |
|
description: 'Sends a message to a topic you specify.', |
|
arguments: [ |
|
{ |
|
label: 'Topic', |
|
key: 'topic', |
|
type: 'string', |
|
required: true, |
|
description: 'Target topic name.', |
|
variables: true, |
|
}, |
|
{ |
|
label: 'Message body', |
|
key: 'message', |
|
type: 'string', |
|
required: true, |
|
description: |
|
'Message body to be sent, set to triggered if empty or not passed.', |
|
variables: true, |
|
}, |
|
{ |
|
label: 'Title', |
|
key: 'title', |
|
type: 'string', |
|
required: false, |
|
description: 'Message title.', |
|
variables: true, |
|
}, |
|
{ |
|
label: 'Email', |
|
key: 'email', |
|
type: 'string', |
|
required: false, |
|
description: 'E-mail address for e-mail notifications.', |
|
variables: true, |
|
}, |
|
{ |
|
label: 'Click URL', |
|
key: 'click', |
|
type: 'string', |
|
required: false, |
|
description: 'Website opened when notification is clicked.', |
|
variables: true, |
|
}, |
|
{ |
|
label: 'Attach file by URL', |
|
key: 'attach', |
|
type: 'string', |
|
required: false, |
|
description: 'URL of an attachment.', |
|
variables: true, |
|
}, |
|
{ |
|
label: 'Filename', |
|
key: 'filename', |
|
type: 'string', |
|
required: false, |
|
description: 'File name of the attachment.', |
|
variables: true, |
|
}, |
|
{ |
|
label: 'Delay', |
|
key: 'delay', |
|
type: 'string', |
|
required: false, |
|
description: |
|
'Timestamp or duration for delayed delivery. For example, 30min or 9am.', |
|
variables: true, |
|
}, |
|
], |
|
|
|
async run($) { |
|
const { topic, message, title, email, click, attach, filename, delay } = |
|
$.step.parameters; |
|
const payload = { |
|
topic, |
|
message, |
|
title, |
|
email, |
|
click, |
|
attach, |
|
filename, |
|
delay, |
|
}; |
|
|
|
const response = await $.http.post('/', payload); |
|
|
|
$.setActionItem({ |
|
raw: response.data, |
|
}); |
|
}, |
|
}); |
|
|