@manyos/smileconnect-api 1.38.0 → 1.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,12 +14,12 @@ const mappingUtil = require('../util/mappingUtil');
14
14
 
15
15
  const ticketCache = new CacheService(process.env.CACHETTL_TICKETS || 1); // Create a new cache service instance
16
16
 
17
- function getTickets(ticketConfig, config, includeString, customOptions) {
17
+ function getTickets(ticketConfig, config, includeString, customOptions, globalScriptParams) {
18
18
  let query = '1=1';
19
- return queryTickets(ticketConfig, config, query, null, null, customOptions, includeString);
19
+ return queryTickets(ticketConfig, config, query, null, null, customOptions, includeString, globalScriptParams);
20
20
  }
21
21
 
22
- async function createTicket(ticketConfig, clientConfig, data) {
22
+ async function createTicket(ticketConfig, clientConfig, data, globalScriptParams) {
23
23
  const scripts = clientConfig[ticketConfig.requestType].scripts.POST;
24
24
 
25
25
  //run preScripts
@@ -39,7 +39,7 @@ async function createTicket(ticketConfig, clientConfig, data) {
39
39
 
40
40
  //run postScripts
41
41
  if (scripts && scripts.postMapping) {
42
- await scriptController.runScripts(scripts.postMapping, data, clientConfig.clientId);
42
+ await scriptController.runScripts(scripts.postMapping, data, clientConfig.clientId, globalScriptParams);
43
43
  }
44
44
 
45
45
  const result = await arquery.createEntry(ticketConfig.forms.new, data, clientConfig.options)
@@ -50,12 +50,6 @@ async function createTicket(ticketConfig, clientConfig, data) {
50
50
  const resultInterfaceCreate = await arquery.executeARQuery(ticketConfig.forms.new, null, "'1'=\"" + ticketCreateId + "\"", ticketConfig.ticketIdField, clientConfig.options)
51
51
  if (resultInterfaceCreate.data && Array.isArray(resultInterfaceCreate.data) && resultInterfaceCreate.data.length && resultInterfaceCreate.data[0][ticketConfig.ticketIdField]) {
52
52
  const ticketId = resultInterfaceCreate.data[0][ticketConfig.ticketIdField];
53
- //todo fix create worklog
54
- /*createWorklog(clientConfig, ticketId, 'Created', 'Incident ' + CONSTANTS.TEXT_CREATED_BY, false).then(function (worklogResult) {
55
- log.debug('Worklog', worklogResult);
56
- }).catch(function (error) {
57
- log.error('HPD:Worklog creation error', error)
58
- });*/
59
53
  } else {
60
54
  log.error('Cannot create Ticket', resultInterfaceCreate);
61
55
  throw({message: 'Cannot create Ticket', details : resultInterfaceCreate});
@@ -63,12 +57,12 @@ async function createTicket(ticketConfig, clientConfig, data) {
63
57
 
64
58
  //run afterExecution
65
59
  if (scripts && scripts.afterExecution) {
66
- await scriptController.runScripts(scripts.afterExecution, data, clientConfig.clientId);
60
+ await scriptController.runScripts(scripts.afterExecution, data, clientConfig.clientId, globalScriptParams);
67
61
  }
68
62
  return resultInterfaceCreate;
69
63
  }
70
64
 
71
- function queryTickets(ticketConfig, clientConfig, query, mapping, customFields, customOptions, includeString) {
65
+ function queryTickets(ticketConfig, clientConfig, query, mapping, customFields, customOptions, includeString, globalScriptParams) {
72
66
  log.debug('config', ticketConfig);
73
67
  const includeArray = getIncludeArray(includeString);
74
68
  log.debug('ticketConfig.requestType', ticketConfig.requestType);
@@ -101,7 +95,7 @@ function queryTickets(ticketConfig, clientConfig, query, mapping, customFields,
101
95
  if (result && result.data && result.data.length) {
102
96
  let x = 0;
103
97
  for (x=0; x< result.data.length; x++) {
104
- const ticket = await handleTicket(ticketConfig, result.data[x], mapping, clientConfig, includeArray, globalRelationObjects);
98
+ const ticket = await handleTicket(ticketConfig, result.data[x], mapping, clientConfig, includeArray, globalRelationObjects, globalScriptParams);
105
99
  tickets.push(ticket);
106
100
  }
107
101
  }
@@ -113,7 +107,7 @@ function queryTickets(ticketConfig, clientConfig, query, mapping, customFields,
113
107
  });
114
108
  }
115
109
 
116
- async function handleTicket(ticketConfig, ticket, mapping, clientConfig, includeArray, globalRelationObjects) {
110
+ async function handleTicket(ticketConfig, ticket, mapping, clientConfig, includeArray, globalRelationObjects, globalScriptParams) {
117
111
  const allScripts = clientConfig[ticketConfig.requestType].scripts;
118
112
  let scripts = [];
119
113
  if (allScripts) {
@@ -136,7 +130,7 @@ async function handleTicket(ticketConfig, ticket, mapping, clientConfig, include
136
130
  const preScripts = scripts.preMapping;
137
131
  try {
138
132
  for (let x = 0; x < preScripts.length; x++) {
139
- const result = await scriptController.executeScript(preScripts[x], ticket, null, clientConfig.clientId);
133
+ const result = await scriptController.executeScript(preScripts[x], ticket, null, clientConfig.clientId, globalScriptParams);
140
134
  }
141
135
  } catch (error) {
142
136
  throw error;
@@ -160,7 +154,7 @@ async function handleTicket(ticketConfig, ticket, mapping, clientConfig, include
160
154
  const postScripts = scripts.postMapping;
161
155
  try {
162
156
  for (let x = 0; x < postScripts.length; x++) {
163
- const result = await scriptController.executeScript(postScripts[x], ticket, null, clientConfig.clientId);
157
+ const result = await scriptController.executeScript(postScripts[x], ticket, null, clientConfig.clientId, globalScriptParams);
164
158
  }
165
159
  } catch (error) {
166
160
  throw error;
@@ -260,7 +254,7 @@ function checkFieldsProblem(problem, globalRelationObjects) {
260
254
  }
261
255
 
262
256
 
263
- async function getTicket(ticketConfig, config, id, mapping, includeString) {
257
+ async function getTicket(ticketConfig, config, id, mapping, includeString, globalScriptParams) {
264
258
  let query = '1=2';
265
259
  const requestType = ticketConfig.requestType;
266
260
  if (requestType === 'incident') {
@@ -272,18 +266,18 @@ async function getTicket(ticketConfig, config, id, mapping, includeString) {
272
266
  } else if (requestType === 'workOrder') {
273
267
  query = `'Work Order ID'=\"${id}\"`;
274
268
  }
275
- const returnValue = await queryTickets(ticketConfig, config, query, mapping, null, null, includeString);
269
+ const returnValue = await queryTickets(ticketConfig, config, query, mapping, null, null, includeString, globalScriptParams);
276
270
  const ticket = returnValue.data[0];
277
271
  return {data: ticket, included: returnValue.included};
278
272
  }
279
273
 
280
- async function updateTicket(ticketConfig, clientConfig, id, ticketData) {
274
+ async function updateTicket(ticketConfig, clientConfig, id, ticketData, globalScriptParams) {
281
275
  const scripts = clientConfig[ticketConfig.requestType].scripts.PUT;
282
276
  const fields = clientConfig[ticketConfig.requestType].fields
283
277
 
284
278
  //run preScripts
285
279
  if (scripts && scripts.preMapping) {
286
- await scriptController.runScripts(scripts.preMapping, ticketData, clientConfig.clientId);
280
+ await scriptController.runScripts(scripts.preMapping, ticketData, clientConfig.clientId, globalScriptParams);
287
281
  }
288
282
 
289
283
  log.debug(clientConfig[ticketConfig.requestType]);
@@ -298,10 +292,10 @@ async function updateTicket(ticketConfig, clientConfig, id, ticketData) {
298
292
 
299
293
  //run postMapping
300
294
  if (scripts && scripts.postMapping) {
301
- await scriptController.runScripts(scripts.postMapping, ticketData, clientConfig.clientId);
295
+ await scriptController.runScripts(scripts.postMapping, ticketData, clientConfig.clientId, globalScriptParams);
302
296
  }
303
297
 
304
- const ticket = await getTicket(ticketConfig, myClientConfig, id, myMapping);
298
+ const ticket = await getTicket(ticketConfig, myClientConfig, id, myMapping, undefined, globalScriptParams);
305
299
  log.debug('Ticket to Update', ticket);
306
300
  //todo Abfangen wenn getTicket nichts liefert.
307
301
  const update = await arquery.updateEntry(ticketConfig.forms.regular, ticket.data.internalId, ticketData);
@@ -314,12 +308,12 @@ async function updateTicket(ticketConfig, clientConfig, id, ticketData) {
314
308
  return update;
315
309
  }
316
310
 
317
- function searchTicket(ticketConfig, clientConfig, searchString, fields, options, includeString) {
311
+ function searchTicket(ticketConfig, clientConfig, searchString, fields, options, includeString, globalScriptParams) {
318
312
  const mapping = config.getMapping(ticketConfig.requestType);
319
313
  const mappedString = searchUtil.applyMapping(searchString, mapping);
320
314
  const customFields = searchUtil.getCustomFields(clientConfig[ticketConfig.requestType].fields, mapping, fields);
321
315
  options.sort = searchUtil.applySortMapping(options.sort, mapping);
322
- return queryTickets(ticketConfig, clientConfig, mappedString, null, customFields, options, includeString);
316
+ return queryTickets(ticketConfig, clientConfig, mappedString, null, customFields, options, includeString, globalScriptParams);
323
317
  }
324
318
 
325
319
  module.exports = {
@@ -11,7 +11,7 @@ const scriptController = require('./scriptController');
11
11
 
12
12
  const ticketCache = new CacheService(process.env.CACHETTL_TICKETS || 1); // Create a new cache service instance
13
13
 
14
- async function createWorklog(ticketConfig, clientConfig, ticketId, summary, text, isPublic) {
14
+ async function createWorklog(ticketConfig, clientConfig, ticketId, summary, text, isPublic, globalScriptParams) {
15
15
  const scripts = clientConfig[ticketConfig.requestTypeWorkLog].scripts.POST;
16
16
  const mapping = config.getMapping(ticketConfig.requestTypeWorkLog);
17
17
  const fields = clientConfig[ticketConfig.requestTypeWorkLog].fields;
@@ -61,21 +61,21 @@ async function createWorklog(ticketConfig, clientConfig, ticketId, summary, text
61
61
 
62
62
  //run preScripts
63
63
  if (scripts && scripts.preMapping) {
64
- await scriptController.runScripts(scripts.preMapping, data, clientConfig.clientId);
64
+ await scriptController.runScripts(scripts.preMapping, data, clientConfig.clientId, globalScriptParams);
65
65
  }
66
66
 
67
67
  data = mappingUtil.applyMapping2Remedy(data, mapping, clientConstants, fields);
68
68
 
69
69
  //run postScripts
70
70
  if (scripts && scripts.postMapping) {
71
- await scriptController.runScripts(scripts.postMapping, data, clientConfig.clientId);
71
+ await scriptController.runScripts(scripts.postMapping, data, clientConfig.clientId, globalScriptParams);
72
72
  }
73
73
 
74
74
  const result = arquery.createEntry(ticketConfig.forms.workLog, data, clientConfig.options)
75
75
 
76
76
  //run afterExecution
77
77
  if (scripts && scripts.afterExecution) {
78
- await scriptController.runScripts(scripts.afterExecution, data, clientConfig.clientId);
78
+ await scriptController.runScripts(scripts.afterExecution, data, clientConfig.clientId, globalScriptParams);
79
79
  }
80
80
 
81
81
  return result;
@@ -102,7 +102,7 @@ function getAttachmentFieldId(attachmentId) {
102
102
  return attachmentFieldId;
103
103
  }
104
104
 
105
- async function getWorklogs(ticketConfig, clientConfig, ticketId, mapping) {
105
+ async function getWorklogs(ticketConfig, clientConfig, ticketId, mapping, globalScriptParams) {
106
106
  let query = '1=2';
107
107
  const requestType = ticketConfig.requestType;
108
108
  if (requestType === 'incident') {
@@ -114,11 +114,11 @@ async function getWorklogs(ticketConfig, clientConfig, ticketId, mapping) {
114
114
  } else if (requestType === 'workOrder') {
115
115
  query = `'Work Order ID'=\"${ticketId}\"`;
116
116
  }
117
- const returnValue = await queryWorklogs(ticketConfig, clientConfig, query, mapping);
117
+ const returnValue = await queryWorklogs(ticketConfig, clientConfig, query, mapping, globalScriptParams);
118
118
  return {data: returnValue.data};
119
119
  }
120
120
 
121
- async function getWorklog(ticketConfig, clientConfig, ticketId, worklogId, mapping) {
121
+ async function getWorklog(ticketConfig, clientConfig, ticketId, worklogId, mapping, globalScriptParams) {
122
122
  let query = '1=2';
123
123
  const requestType = ticketConfig.requestType;
124
124
  if (requestType === 'incident') {
@@ -130,7 +130,7 @@ async function getWorklog(ticketConfig, clientConfig, ticketId, worklogId, mappi
130
130
  } else if (requestType === 'workOrder') {
131
131
  query = `'Work Order ID'=\"${ticketId}\" AND '1' = \"${worklogId}\"`;
132
132
  }
133
- const returnValue = await queryWorklogs(ticketConfig, clientConfig, query, mapping);
133
+ const returnValue = await queryWorklogs(ticketConfig, clientConfig, query, mapping, globalScriptParams);
134
134
  const urls = {
135
135
  "attachmentUrl":
136
136
  `${ticketConfig.baseURI}/${ticketId}/worklogs/${worklogId}/attachments/1`
@@ -147,7 +147,7 @@ async function getWorklog(ticketConfig, clientConfig, ticketId, worklogId, mappi
147
147
  return {data: returnValue.data[0], urls};
148
148
  }
149
149
 
150
- async function queryWorklogs(ticketConfig, clientConfig, query, mapping) {
150
+ async function queryWorklogs(ticketConfig, clientConfig, query, mapping, globalScriptParams) {
151
151
  const baseQuery = clientConfig[ticketConfig.requestTypeWorkLog].basequery;
152
152
  const fields = clientConfig[ticketConfig.requestTypeWorkLog].fields;
153
153
  const key = 'worklog' + baseQuery + fields.toString() + query;
@@ -169,12 +169,12 @@ async function queryWorklogs(ticketConfig, clientConfig, query, mapping) {
169
169
  const element = result.data[x];
170
170
  //run preScripts
171
171
  if (scripts && scripts.preMapping) {
172
- await scriptController.runScripts(scripts.preMapping, result.data, clientConfig.clientId);
172
+ await scriptController.runScripts(scripts.preMapping, result.data, clientConfig.clientId, globalScriptParams);
173
173
  }
174
174
  applyMapping(element, mapping, 'Entry ID');
175
175
  //run postScripts
176
176
  if (scripts && scripts.postMapping) {
177
- await scriptController.runScripts(scripts.postMapping, result.data, clientConfig.clientId);
177
+ await scriptController.runScripts(scripts.postMapping, result.data, clientConfig.clientId, globalScriptParams);
178
178
  }
179
179
  }
180
180
  return {