@manyos/smileconnect-api 1.57.2 → 1.58.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.
- package/conf/clients.json +7 -2
- package/conf/customFormMapping.json +1 -0
- package/controller/customFormController.js +10 -19
- package/controller/scriptController.js +3 -1
- package/docs/adapter.md +128 -2
- package/docs/releases.md +7 -2
- package/docs/scripts.md +9 -0
- package/package.json +1 -1
package/conf/clients.json
CHANGED
|
@@ -2294,8 +2294,13 @@
|
|
|
2294
2294
|
},
|
|
2295
2295
|
"POST": {
|
|
2296
2296
|
"preMapping": [],
|
|
2297
|
-
"postMapping": [
|
|
2298
|
-
|
|
2297
|
+
"postMapping": [
|
|
2298
|
+
"joinSetId",
|
|
2299
|
+
"setAssetId"
|
|
2300
|
+
],
|
|
2301
|
+
"afterExecution": [
|
|
2302
|
+
"getAssetId"
|
|
2303
|
+
]
|
|
2299
2304
|
}
|
|
2300
2305
|
}
|
|
2301
2306
|
},
|
|
@@ -28,6 +28,7 @@ function getRecords(formConfig, clientConfig, includeString, customOptions, glob
|
|
|
28
28
|
|
|
29
29
|
async function createRecord(formConfig, clientConfig, data, globalScriptParams) {
|
|
30
30
|
const idField = getIdField(formConfig)
|
|
31
|
+
globalScriptParams.idField = idField;
|
|
31
32
|
const allScripts = clientConfig[formConfig.configName].scripts;
|
|
32
33
|
let scripts
|
|
33
34
|
if (allScripts) {
|
|
@@ -39,8 +40,6 @@ async function createRecord(formConfig, clientConfig, data, globalScriptParams)
|
|
|
39
40
|
await scriptController.runScripts(scripts.preMapping, data, clientConfig.clientId, globalScriptParams);
|
|
40
41
|
}
|
|
41
42
|
|
|
42
|
-
const requestType = formConfig.requestType;
|
|
43
|
-
|
|
44
43
|
const mapping = formConfig.mapping;
|
|
45
44
|
log.debug('mapping', mapping);
|
|
46
45
|
|
|
@@ -56,33 +55,25 @@ async function createRecord(formConfig, clientConfig, data, globalScriptParams)
|
|
|
56
55
|
const result = await arquery.createEntry(formConfig.formName, data, clientConfig.options)
|
|
57
56
|
|
|
58
57
|
log.debug('RecordCreateResult', result.data);
|
|
59
|
-
|
|
58
|
+
if (!globalScriptParams.id && Object.values(result)[0]) {
|
|
59
|
+
globalScriptParams.id = Object.values(result)[0];
|
|
60
|
+
}
|
|
60
61
|
//Find change id
|
|
61
|
-
if (!
|
|
62
|
-
|
|
62
|
+
if (!globalScriptParams.id) {
|
|
63
|
+
globalScriptParams.id = data[idField]
|
|
63
64
|
}
|
|
64
|
-
if (!
|
|
65
|
+
if (!globalScriptParams.id) {
|
|
65
66
|
throw ({message: `Id of new record could not be determined. Please provide ${idField} for join forms.`})
|
|
66
67
|
}
|
|
67
68
|
|
|
68
|
-
log.
|
|
69
|
-
log.
|
|
70
|
-
|
|
71
|
-
//const query = `'${idField}'=\"${recordCreateId}\"`;
|
|
69
|
+
log.debug(idField)
|
|
70
|
+
log.debug(globalScriptParams.recordCreateId)
|
|
72
71
|
|
|
73
|
-
/*const resultInterfaceCreate = await arquery.executeARQuery(formConfig.formName, null, query, formConfig.ticketIdField, clientConfig.options)
|
|
74
|
-
if (resultInterfaceCreate.data && Array.isArray(resultInterfaceCreate.data) && resultInterfaceCreate.data.length > 0) {
|
|
75
|
-
const recordCreateId = resultInterfaceCreate.data[0][formConfig.ticketIdField];
|
|
76
|
-
} else {
|
|
77
|
-
log.error('Cannot create Record', resultInterfaceCreate);
|
|
78
|
-
throw({message: 'Cannot create Record', details : resultInterfaceCreate});
|
|
79
|
-
}*/
|
|
80
|
-
globalScriptParams.id = recordCreateId
|
|
81
72
|
//run afterExecution
|
|
82
73
|
if (scripts && scripts.afterExecution) {
|
|
83
74
|
await scriptController.runScripts(scripts.afterExecution, data, clientConfig.clientId, globalScriptParams);
|
|
84
75
|
}
|
|
85
|
-
return
|
|
76
|
+
return globalScriptParams.id;
|
|
86
77
|
}
|
|
87
78
|
|
|
88
79
|
function queryRecords(formConfig, clientConfig, query, mapping, customFields, customOptions, includeString, globalScriptParams) {
|
|
@@ -2,6 +2,7 @@ const path = require('path');
|
|
|
2
2
|
const log = require('@manyos/logger').setupLog('SMILEcatalog_' + path.basename(__filename));
|
|
3
3
|
const adapterFoundation = require('@manyos/adapter-foundation');
|
|
4
4
|
const fs = require('fs');
|
|
5
|
+
const { v4 } = require('uuid');
|
|
5
6
|
|
|
6
7
|
const basePath = 'conf';
|
|
7
8
|
const basePathGlobalScripts = basePath + '/scripts';
|
|
@@ -84,7 +85,8 @@ async function executeCode(code, requestData, params, logStream, executedByScrip
|
|
|
84
85
|
script:executeScriptByScript,
|
|
85
86
|
globalScriptParams,
|
|
86
87
|
env: process.env,
|
|
87
|
-
fetch:fetch
|
|
88
|
+
fetch:fetch,
|
|
89
|
+
uid:v4
|
|
88
90
|
};
|
|
89
91
|
|
|
90
92
|
sandbox.executedByScript = executedByScript === true;
|
package/docs/adapter.md
CHANGED
|
@@ -243,8 +243,8 @@ The id of the attachment field
|
|
|
243
243
|
|
|
244
244
|
Full example:
|
|
245
245
|
```javascript
|
|
246
|
-
const file = adapter.remedy.getAttachment('CHG:WorkLog', 'CWL000000002484', '1000000353')
|
|
247
|
-
const fileName = file.
|
|
246
|
+
const file = await adapter.remedy.getAttachment('CHG:WorkLog', 'CWL000000002484', '1000000353')
|
|
247
|
+
const fileName = file.fileName
|
|
248
248
|
const fileData = file.data
|
|
249
249
|
```
|
|
250
250
|
|
|
@@ -282,6 +282,132 @@ const file = {
|
|
|
282
282
|
await adapter.remedy.setAttachment('CHG:WorkLog', 'CWL000000002484', '1000000353', file)
|
|
283
283
|
```
|
|
284
284
|
|
|
285
|
+
### getMetadata
|
|
286
|
+
|
|
287
|
+
```javascript
|
|
288
|
+
async getMetadata(form)
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
Parameter:
|
|
292
|
+
|
|
293
|
+
* form (string):
|
|
294
|
+
|
|
295
|
+
Optional. If provided all fields of the form are returned. If not provided all forms are returned.
|
|
296
|
+
|
|
297
|
+
Sample response formList
|
|
298
|
+
```javascript
|
|
299
|
+
[
|
|
300
|
+
"AAS:Activity",
|
|
301
|
+
"AAS:Activity2",
|
|
302
|
+
"AAS:ActivityInterface",
|
|
303
|
+
"AAS:ActivityInterface_Create",
|
|
304
|
+
"AAS:ActivityTaskJoin",
|
|
305
|
+
"AAS:AuditFilters",
|
|
306
|
+
"AAS:AuditLog",
|
|
307
|
+
"AAS:AuditLogSystem",
|
|
308
|
+
"AAS:CFG Notification Rules",
|
|
309
|
+
"AAS:CFG Rules",
|
|
310
|
+
"AAS:ConfigurationTicketNumGenerator",
|
|
311
|
+
"AAS:LoadActivity",
|
|
312
|
+
"AAS:LoadCFGNotificationRules",
|
|
313
|
+
"AAS:LoadCFGRules",
|
|
314
|
+
"AAS:LoadTemplate"
|
|
315
|
+
]
|
|
316
|
+
```
|
|
317
|
+
Sample response fieldList
|
|
318
|
+
```javascript
|
|
319
|
+
[
|
|
320
|
+
{
|
|
321
|
+
"entryMode": "System",
|
|
322
|
+
"fieldId": 1,
|
|
323
|
+
"fieldLimit": {
|
|
324
|
+
"QBEMatch": 1,
|
|
325
|
+
"charMenu": "",
|
|
326
|
+
"dataType": 4,
|
|
327
|
+
"fullTextOption": 0,
|
|
328
|
+
"lengthUnits": 0,
|
|
329
|
+
"maxLength": 15,
|
|
330
|
+
"menuStyle": 1,
|
|
331
|
+
"pattern": "",
|
|
332
|
+
"storageOptionForCLOB": 0
|
|
333
|
+
},
|
|
334
|
+
"name": "Request ID",
|
|
335
|
+
"type": "CharacterField",
|
|
336
|
+
"valueMapping": null
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
"entryMode": "Required",
|
|
340
|
+
"fieldId": 2,
|
|
341
|
+
"fieldLimit": {
|
|
342
|
+
"QBEMatch": 1,
|
|
343
|
+
"charMenu": "",
|
|
344
|
+
"dataType": 4,
|
|
345
|
+
"fullTextOption": 0,
|
|
346
|
+
"lengthUnits": 0,
|
|
347
|
+
"maxLength": 254,
|
|
348
|
+
"menuStyle": 2,
|
|
349
|
+
"pattern": "",
|
|
350
|
+
"storageOptionForCLOB": 0
|
|
351
|
+
},
|
|
352
|
+
"name": "Creator",
|
|
353
|
+
"type": "CharacterField",
|
|
354
|
+
"valueMapping": null
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
"entryMode": "System",
|
|
358
|
+
"fieldId": 3,
|
|
359
|
+
"fieldLimit": null,
|
|
360
|
+
"name": "Create Date",
|
|
361
|
+
"type": "DateTimeField",
|
|
362
|
+
"valueMapping": null
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
"entryMode": "Optional",
|
|
366
|
+
"fieldId": 4,
|
|
367
|
+
"fieldLimit": {
|
|
368
|
+
"QBEMatch": 1,
|
|
369
|
+
"charMenu": "",
|
|
370
|
+
"dataType": 4,
|
|
371
|
+
"fullTextOption": 0,
|
|
372
|
+
"lengthUnits": 0,
|
|
373
|
+
"maxLength": 254,
|
|
374
|
+
"menuStyle": 1,
|
|
375
|
+
"pattern": "",
|
|
376
|
+
"storageOptionForCLOB": 0
|
|
377
|
+
},
|
|
378
|
+
"name": "Assigned To",
|
|
379
|
+
"type": "CharacterField",
|
|
380
|
+
"valueMapping": null
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
"entryMode": "System",
|
|
384
|
+
"fieldId": 5,
|
|
385
|
+
"fieldLimit": {
|
|
386
|
+
"QBEMatch": 1,
|
|
387
|
+
"charMenu": "",
|
|
388
|
+
"dataType": 4,
|
|
389
|
+
"fullTextOption": 0,
|
|
390
|
+
"lengthUnits": 0,
|
|
391
|
+
"maxLength": 254,
|
|
392
|
+
"menuStyle": 1,
|
|
393
|
+
"pattern": "",
|
|
394
|
+
"storageOptionForCLOB": 0
|
|
395
|
+
},
|
|
396
|
+
"name": "Last Modified By",
|
|
397
|
+
"type": "CharacterField",
|
|
398
|
+
"valueMapping": null
|
|
399
|
+
},
|
|
400
|
+
{
|
|
401
|
+
"entryMode": "System",
|
|
402
|
+
"fieldId": 6,
|
|
403
|
+
"fieldLimit": null,
|
|
404
|
+
"name": "Modified Date",
|
|
405
|
+
"type": "DateTimeField",
|
|
406
|
+
"valueMapping": null
|
|
407
|
+
}
|
|
408
|
+
]
|
|
409
|
+
```
|
|
410
|
+
|
|
285
411
|
### Options
|
|
286
412
|
|
|
287
413
|
* limit
|
package/docs/releases.md
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
# Release Notes
|
|
2
2
|
|
|
3
|
-
## API
|
|
3
|
+
## API
|
|
4
|
+
### 1.58.0 - 31.03.22
|
|
5
|
+
Add uid() to scripts
|
|
6
|
+
In customForms(create) make globalScripts.id changeable
|
|
7
|
+
Add getMetaData to Remedy Adapter
|
|
8
|
+
Fix: Issue with special characters in fieldlist of Remedy Adapter Search function
|
|
4
9
|
|
|
5
10
|
### 1.57.2 - 28.03.22
|
|
6
11
|
Fix problem with custom ids on custom forms
|
|
@@ -9,8 +14,8 @@ Fix problem with custom ids on custom forms
|
|
|
9
14
|
Remove misleading error from CustomFormMappings
|
|
10
15
|
|
|
11
16
|
### 1.57.0 - 25.03.22
|
|
12
|
-
|
|
13
17
|
Add impersonate to update requests.
|
|
18
|
+
Add user parameter to globalScriptParams
|
|
14
19
|
Impersonate works not on the following requests:
|
|
15
20
|
- Add/Read Attachments
|
|
16
21
|
- Ticket/CI Relations
|
package/docs/scripts.md
CHANGED
|
@@ -230,6 +230,15 @@ See https://www.npmjs.com/package/node-fetch for details.
|
|
|
230
230
|
|
|
231
231
|
Allows to make adapter calls. [See details](../configuration/adapter.md)
|
|
232
232
|
|
|
233
|
+
## uid
|
|
234
|
+
|
|
235
|
+
Generated a new unique id. [See details](https://www.npmjs.com/package/uuid#uuidv4options-buffer-offset)
|
|
236
|
+
|
|
237
|
+
```javascript
|
|
238
|
+
const myInstanceId = uid();
|
|
239
|
+
requestData['Instance Id'] = myInstanceId;
|
|
240
|
+
```
|
|
241
|
+
|
|
233
242
|
# Returning values
|
|
234
243
|
|
|
235
244
|
Values can be returned with the function *resolve()*
|