var url = params.server + ":" + params.port + "/GenericListener/Handler"; var sendRequest = function(xml) { var result = http(url, { Headers: {'Content-Type': ['application/xml;charset=utf-8']}, Method: 'POST', Body:xml }, params.insecure, params.proxy ); // return result; if (result.StatusCode !== 200) { throw 'Failed to encase-run-job, request status code: ' + result.StatusCode + ', body: ' + result.Body; } return result; }; // The command input arg holds the command sent from the user. switch (command) { // This is the call made when pressing the integration test button. case 'test-module': if (sendRequest()) { return 'ok'; } return 'something is wrong'; case 'encase-copyjob': var requestXML = '\ copy cyber job\ \ %case%\ %investigationName%\ \ \ %safeName%\ %custodianName%\ %jobName%\ \ %machineIPs%\ \ %eventName%\ %eventId%\ \ '; var result = sendRequest(replaceInTemplates(requestXML, { case: args.case, jobName: args["existing-job-name"], investigationName: args["investigation-name"], machineIPs: args["machine-ips"], safeName: args["safe-name"], custodianName: args["custodian-name"], eventName: args["event-name"], eventId: args["event-id"] })); return JSON.parse(x2j(result.Body)).task.message; case 'encase-snapshot': var requestXML = '\ snapshot\ \ %case%\ %investigationName%\ \ \ %safeName%\ %custodianName%\ \ %machineIPs%\ \ %jobName%\ \ '; var result = sendRequest(replaceInTemplates(requestXML, { case: args.case, investigationName: args["investigation-name"], machineIPs: args["machine-ips"], safeName: args["safe-name"], custodianName: args["custodian-name"], jobName: args["job-name"] })); return JSON.parse(x2j(result.Body)).task.message; case 'encase-verifyhash': var requestXML = '\ verify hash\ %sourceName%\ \ %case%\ %investigationName%\ \ \ %safeName%\ %custodianName%\ \ %machineIPs%\ \ \ \ %fileName%\ %fileSize%\ %contentHash%\ \ \ \ '; var result = sendRequest(replaceInTemplates(requestXML, { case: args.case, sourceName: args["source-name"], investigationName: args["investigation-name"], machineIPs: args["machine-ips"], safeName: args["safe-name"], custodianName: args["custodian-name"], fileName: args["file-name"], fileSize: args["file-size"], contentHash: args["content-hash"] })); return JSON.parse(x2j(result.Body)).task.message; default: // You can use args[argName] or args.argName to get a specific arg. args are strings. // You can use params[paramName] or params.paramName to get a specific params. // Params are of the type given in the integration page creation. }