85 lines
2.1 KiB
TypeScript
85 lines
2.1 KiB
TypeScript
import defineAction from '../../../../helpers/define-action';
|
|
import { filterProvidedFields } from '../../common/filter-provided-fields';
|
|
import { fields } from './fields';
|
|
|
|
export default defineAction({
|
|
name: 'Create client',
|
|
key: 'createClient',
|
|
description: 'Creates a new client.',
|
|
arguments: fields,
|
|
|
|
async run($) {
|
|
const {
|
|
clientName,
|
|
contactFirstName,
|
|
contactLastName,
|
|
contactEmail,
|
|
contactPhone,
|
|
languageCode,
|
|
currencyCode,
|
|
idNumber,
|
|
vatNumber,
|
|
streetAddress,
|
|
aptSuite,
|
|
city,
|
|
stateProvince,
|
|
postalCode,
|
|
countryCode,
|
|
shippingStreetAddress,
|
|
shippingAptSuite,
|
|
shippingCity,
|
|
shippingStateProvince,
|
|
shippingPostalCode,
|
|
shippingCountryCode,
|
|
privateNotes,
|
|
publicNotes,
|
|
website,
|
|
customValue1,
|
|
customValue2,
|
|
customValue3,
|
|
customValue4,
|
|
} = $.step.parameters;
|
|
|
|
const bodyFields = {
|
|
name: clientName,
|
|
contacts: {
|
|
first_name: contactFirstName,
|
|
last_name: contactLastName,
|
|
email: contactEmail,
|
|
phone: contactPhone,
|
|
},
|
|
settings: {
|
|
language_id: languageCode,
|
|
currency_id: currencyCode,
|
|
},
|
|
id_number: idNumber,
|
|
vat_number: vatNumber,
|
|
address1: streetAddress,
|
|
address2: aptSuite,
|
|
city: city,
|
|
state: stateProvince,
|
|
postal_code: postalCode,
|
|
country_id: countryCode,
|
|
shipping_address1: shippingStreetAddress,
|
|
shipping_address2: shippingAptSuite,
|
|
shipping_city: shippingCity,
|
|
shipping_state: shippingStateProvince,
|
|
shipping_postal_code: shippingPostalCode,
|
|
shipping_country_id: shippingCountryCode,
|
|
private_notes: privateNotes,
|
|
public_notes: publicNotes,
|
|
website: website,
|
|
custom_value1: customValue1,
|
|
custom_value2: customValue2,
|
|
custom_value3: customValue3,
|
|
custom_value4: customValue4,
|
|
};
|
|
|
|
const body = filterProvidedFields(bodyFields);
|
|
|
|
const response = await $.http.post('/v1/clients', body);
|
|
|
|
$.setActionItem({ raw: response.data.data });
|
|
},
|
|
});
|