70 lines
1.5 KiB
JavaScript
70 lines
1.5 KiB
JavaScript
import defineAction from '../../../../helpers/define-action.js';
|
|
|
|
export default defineAction({
|
|
name: 'Respond with',
|
|
key: 'respondWith',
|
|
description: 'Respond with defined JSON body.',
|
|
arguments: [
|
|
{
|
|
label: 'Status code',
|
|
key: 'statusCode',
|
|
type: 'string',
|
|
required: true,
|
|
variables: true,
|
|
value: '200',
|
|
},
|
|
{
|
|
label: 'Headers',
|
|
key: 'headers',
|
|
type: 'dynamic',
|
|
required: false,
|
|
description: 'Add or remove headers as needed',
|
|
fields: [
|
|
{
|
|
label: 'Key',
|
|
key: 'key',
|
|
type: 'string',
|
|
required: true,
|
|
description: 'Header key',
|
|
variables: true,
|
|
},
|
|
{
|
|
label: 'Value',
|
|
key: 'value',
|
|
type: 'string',
|
|
required: true,
|
|
description: 'Header value',
|
|
variables: true,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: 'Body',
|
|
key: 'body',
|
|
type: 'string',
|
|
required: true,
|
|
description: 'The content of the response body.',
|
|
variables: true,
|
|
},
|
|
],
|
|
|
|
async run($) {
|
|
const statusCode = parseInt($.step.parameters.statusCode, 10);
|
|
const body = $.step.parameters.body;
|
|
const headers = $.step.parameters.headers.reduce((result, entry) => {
|
|
return {
|
|
...result,
|
|
[entry.key]: entry.value,
|
|
};
|
|
}, {});
|
|
|
|
$.setActionItem({
|
|
raw: {
|
|
headers,
|
|
body,
|
|
statusCode,
|
|
},
|
|
});
|
|
},
|
|
});
|