79 lines
1.8 KiB
JavaScript
79 lines
1.8 KiB
JavaScript
import defineAction from '../../../../helpers/define-action.js';
|
|
import { fields } from './fields.js';
|
|
|
|
export default defineAction({
|
|
name: 'Create case',
|
|
key: 'createCase',
|
|
description: 'Create a new case.',
|
|
arguments: fields,
|
|
|
|
async run($) {
|
|
const {
|
|
summary,
|
|
recordCurrencyId,
|
|
caseTitle,
|
|
status,
|
|
priority,
|
|
contactId,
|
|
organizationId,
|
|
groupId,
|
|
assignedTo,
|
|
productId,
|
|
channel,
|
|
resolution,
|
|
category,
|
|
subCategory,
|
|
resolutionType,
|
|
deferredDate,
|
|
serviceContractId,
|
|
assetId,
|
|
slaId,
|
|
isBillable,
|
|
service,
|
|
rate,
|
|
serviceType,
|
|
serviceLocation,
|
|
workLocation,
|
|
} = $.step.parameters;
|
|
|
|
const elementData = {
|
|
description: summary,
|
|
record_currency_id: recordCurrencyId,
|
|
title: caseTitle,
|
|
casestatus: status,
|
|
casepriority: priority,
|
|
contact_id: contactId,
|
|
parent_id: organizationId,
|
|
group_id: groupId,
|
|
assigned_user_id: assignedTo,
|
|
product_id: productId,
|
|
casechannel: channel,
|
|
resolution: resolution,
|
|
impact_type: category,
|
|
impact_area: subCategory,
|
|
resolution_type: resolutionType,
|
|
deferred_date: deferredDate,
|
|
servicecontract_id: serviceContractId,
|
|
asset_id: assetId,
|
|
slaid: slaId,
|
|
is_billable: isBillable,
|
|
billing_service: service,
|
|
rate: rate,
|
|
servicetype: serviceType,
|
|
servicelocation: serviceLocation,
|
|
work_location: workLocation,
|
|
};
|
|
|
|
const body = {
|
|
operation: 'create',
|
|
sessionName: $.auth.data.sessionName,
|
|
element: JSON.stringify(elementData),
|
|
elementType: 'Cases',
|
|
};
|
|
|
|
const response = await $.http.post('/webservice.php', body);
|
|
|
|
$.setActionItem({ raw: response.data });
|
|
},
|
|
});
|