When the app is ran, it updates the Total Disputes custom field in the ticket but does not save the changes after updated. When viewing the ticket in Views, it doesn't show the updated custom field, appearing as though it's not saved.
Is there a save or submit action that can be used in my code?
let hasRun = false;
function runOnce() {
if (!hasRun) {
hasRun = true;
const client = ZAFClient.init();
const ticket_fields = ['ticket.customField:custom_field_13110845437979','ticket.customField:custom_field_13007174759707']
client.get(ticket_fields).then(
function(data) {
const disputes_transactions = data['ticket.customField:custom_field_13110845437979'];
const amounts = disputes_transactions.match(/Amount:\s*\$?(\d+(?:[\.,']\d+)?)/g);
const total_dispute_amount = amounts.reduce((sum, amount) => sum + parseFloat(amount.replace(/Amount:|\$/g, '')), 0);
console.log('Disputes transactions:' + disputes_transactions);
console.log('Transaction Totals: ' + total_dispute_amount);
const totalDisputes = total_dispute_amount;
const ticketCustomFieldData = {
ticket: {
fields: [
{
id: 'custom_field_13007174759707',
value: totalDisputes
}
]
}
};
client.get('ticket.id').then(function(ticketData) {
const ticketId = ticketData['ticket.id'];
client.set('ticket.customField:custom_field_13007174759707', totalDisputes);
const settings = {
url: '/api/v2/tickets/' + ticketId + '.json',
type: 'PUT',
dataType: 'json',
data: ticketCustomFieldData
};
console.log(settings);
client.request(settings).then(
function(data){
console.log(data);
},
function(error) {
console.error('Error updating ticket:', error);
});
},
function(error) {
console.error('Error getting ticket ID:', error);
});
},
function(error) {
console.error('Error getting ticket fields:', error);
});
}
}
runOnce();