var dashboardId = '63fcf1cb30c4480036995b57'; var widgetId = '63fcf1cb30c4480036995b5a'; var elastiCubeName = 'AUSTRAC XML'; //Get widget's structure var widgetStructure = sendAPIRequest('GET', '/api/v1/dashboards/' + dashboardId + '/widgets/' + widgetId, ''); //Prepare response to use it in next API request var currectStructure = prepareResponse(widgetStructure) //Send request to server var jaqlResponse = sendAPIRequest('POST', '/api/datasources/' + elastiCubeName + '/jaql', currectStructure); /*optional*/ var keys = jaqlResponse.headers; var values = jaqlResponse.values; const objects = values.map(value => keys.reduce((obj, key, index) => { obj[key] = value[index]; return obj; }, {})); //process request function prepareResponse(a) { var result = []; for (i = 0; i < a.metadata.panels.length; i++) { for (j = 0; j < a.metadata.panels[i].items.length; j++) { if (a.metadata.panels[i].items[j]) { result.push(a.metadata.panels[i].items[j].jaql); }; } }; var payload = { metadata: result }; payload = JSON.stringify(payload); return payload; }; function sendAPIRequest(method, url, data) { var response = $.ajax({ method: method, url: url, async: false, data: data, contentType: 'application/json' }).responseJSON; return response; } //formatetedDate = new Date().toISOString().slice(0, 10).replace(/-/g, ""); const formattedDateTime = new Date().toISOString().slice(0, 11).replace(/[-:.T]/g, ""); const fileName = "IFTI-E" + formattedDateTime + "11" + ".xml" function prepareResponseINXML(objects) { // xml = "" xml = `\n` xml += `\n`; xml += `0041436\n`; xml += `${fileName}\n`; xml += `${objects.length}`; for (var i = 0; i < objects.length; i++) { id = i + 1; childId = 1; const structID = "ID_" + id.toString() + "F"; xml += `\n` if (objects[i].UETR !== 'N\\A') { xml += `\n
`; xml += `${objects[i].UETR !== 'N\\A' ? `\n${objects[i].UETR}` : ''}` xml += `\n
` childId += 1; } if (objects[i].CREATE_DT !== 'N\\A' || objects[i].DRCTN !== 'N\\A' || objects[i].CURRENCY_CD !== 'N\\A' || objects[i].ORIGINAL_TRN_AMT !== 'N\\A' || objects[i].VALUE_DT !== 'N\\A') { xml += `\n` xml += `${objects[i].CREATE_DT !== 'N\\A' ? `\n${objects[i].CREATE_DT.split('T')[0]}` : ''}` xml += `${objects[i].DRCTN !== 'N\\A' ? `\n${objects[i].DRCTN}` : ''}` childId += 1 if (objects[i].CURRENCY_CD !== 'N\\A' || objects[i].ORIGINAL_TRN_AMT !== 'N\\A') { xml += `\n` xml += `${objects[i].CURRENCY_CD !== 'N\\A' ? `\n${objects[i].CURRENCY_CD}` : ''}` xml += `${objects[i].ORIGINAL_TRN_AMT !== 'N\\A' ? `\n${objects[i].ORIGINAL_TRN_AMT}` : ''}` xml += `\n` childId += 1 } xml += `${objects[i].VALUE_DT !== 'N\\A' ? `\n${objects[i].VALUE_DT.split('T')[0]}` : ''}` xml += `\n` } if (objects[i].DBTR_NM !== 'N\\A' || objects[i].DBTR_ADRLN !== 'N\\A' || objects[i].DBTR_SUBURB !== 'N\\A' || objects[i].DBTR_STATE !== 'N\\A' || objects[i].DBTR_PSTL_CD !== 'N\\A' || objects[i].DBTR_COUNTRY !== 'N\\A') { xml += `\n` xml += `${objects[i].DBTR_NM !== 'N\\A' ? `\n${objects[i].DBTR_NM}` : ''}`; childId += 1; if (objects[i].DBTR_ADRLN !== 'N\\A' || objects[i].DBTR_SUBURB !== 'N\\A' || objects[i].DBTR_STATE !== 'N\\A' || objects[i].DBTR_PSTL_CD !== 'N\\A' || objects[i].DBTR_COUNTRY !== 'N\\A') { xml += `\n` xml += `${objects[i].DBTR_ADRLN !== 'N\\A' ? `\n${objects[i].DBTR_ADRLN}` : ''}` xml += `${objects[i].DBTR_SUBURB !== 'N\\A' ? `\n${objects[i].DBTR_SUBURB}` : ''}` xml += `${objects[i].DBTR_STATE !== 'N\\A' ? `\n${objects[i].DBTR_STATE}` : ''}` xml += `${objects[i].DBTR_PSTL_CD !== 'N\\A' ? `\n${objects[i].DBTR_PSTL_CD}` : ''}` xml += `${objects[i].DBTR_COUNTRY !== 'N\\A' ? `\n${objects[i].DBTR_COUNTRY}` : ''}` xml += `\n` childId += 1; } if (objects[i].DBTR_ACCT_ID !== 'N\\A') { xml += `\n` xml += `${objects[i].DBTR_ACCT_ID !== 'N\\A' ? `\n${objects[i].DBTR_ACCT_ID}` : ''}` xml += `\n` childId += 1; } xml += `\n` } if (objects[i].CDTR_NM !== 'N\\A' || objects[i].CDTR_ADRLN !== 'N\\A' || objects[i].CDTR_SUBURB !== 'N\\A' || objects[i].CDTR_STATE !== 'N\\A' || objects[i].CDTR_PSTL_CD !== 'N\\A' || objects[i].CDTR_COUNTRY !== 'N\\A') { xml += `\n` xml += `${objects[i].CDTR_NM !== 'N\\A' ? `\n${objects[i].CDTR_NM}` : ''}`; childId += 1; if (objects[i].CDTR_ADRLN !== 'N\\A' || objects[i].CDTR_SUBURB !== 'N\\A' || objects[i].CDTR_STATE !== 'N\\A' || objects[i].CDTR_PSTL_CD !== 'N\\A' || objects[i].CDTR_COUNTRY !== 'N\\A') { xml += `\n`; xml += `${objects[i].CDTR_ADRLN !== 'N\\A' ? `\n${objects[i].CDTR_ADRLN}` : ''}`; xml += `${objects[i].CDTR_SUBURB !== 'N\\A' ? `\n${objects[i].CDTR_SUBURB}` : ''}`; xml += `${objects[i].CDTR_STATE !== 'N\\A' ? `\n${objects[i].CDTR_STATE}` : ''}`; xml += `${objects[i].CDTR_PSTL_CD !== 'N\\A' ? `\n${objects[i].CDTR_PSTL_CD}` : ''}`; xml += `${objects[i].CDTR_COUNTRY !== 'N\\A' ? `\n${objects[i].CDTR_COUNTRY}` : ''}`; xml += `\n`; childId += 1; } if (objects[i].CDTR_ACCT_ID !== 'N\\A') { xml += `\n`; xml += `${objects[i].CDTR_ACCT_ID !== 'N\\A' ? `\n${objects[i].CDTR_ACCT_ID}` : ''}`; xml += `\n`; childId += 1; } xml += `\n` } if (objects[i].DBTR_AGNT_BIC !== 'N\\A' || objects[i].DBTR_AGNT_NM !== 'N\\A' || objects[i].DBTR_AGNT_CITY !== 'N\\A' || objects[i].DBTR_AGNT_COUNTRY !== 'N\\A') { xml += `\n`; childId += 1; xml += `\n`; xml += `${objects[i].DBTR_AGNT_BIC !== 'N\\A' ? `\n${objects[i].DBTR_AGNT_BIC}` : ''}`; if (objects[i].DBTR_AGNT_BIC == 'N\\A') { xml += `${objects[i].DBTR_AGNT_NM !== 'N\\A' ? `\n${objects[i].DBTR_AGNT_NM}` : ''}`; xml += `${objects[i].DBTR_AGNT_CITY !== 'N\\A' ? `\n${objects[i].DBTR_AGNT_CITY}` : ''}`; xml += `${objects[i].DBTR_AGNT_COUNTRY !== 'N\\A' ? `\n${objects[i].DBTR_AGNT_COUNTRY}` : ''}`; } xml += `\n`; xml += `\n`; childId += 1; } if (objects[i].INSTRCTNG_AGNT_BIC !== 'N\\A' || objects[i].INSTRCTNG_AGNT_NM !== 'N\\A' || objects[i].INSTRCTNG_AGNT_CITY !== 'N\\A' || objects[i].INSTRCTNG_AGNT_COUNTRY !== 'N\\A') { xml += `\n`; childId += 1; xml += `\n`; xml += `${objects[i].INSTRCTNG_AGNT_BIC !== 'N\\A' ? `\n${objects[i].INSTRCTNG_AGNT_BIC}` : ''}`; if (objects[i].INSTRCTNG_AGNT_BIC == 'N\\A') { xml += `${objects[i].INSTRCTNG_AGNT_NM !== 'N\\A' ? `\n${objects[i].INSTRCTNG_AGNT_NM}` : ''}`; xml += `${objects[i].INSTRCTNG_AGNT_CITY !== 'N\\A' ? `\n${objects[i].INSTRCTNG_AGNT_CITY}` : ''}`; xml += `${objects[i].INSTRCTNG_AGNT_COUNTRY !== 'N\\A' ? `\n${objects[i].INSTRCTNG_AGNT_COUNTRY}` : ''}`; } xml += `\n`; xml += `\n`; childId += 1; } if (objects[i].INSTRCTNG_AGNT_INTRMDRY !== 'N\\A') { xml += `\n` childId += 1; xml += `\n` xml += `\n${objects[i].INSTRCTNG_AGNT_INTRMDRY}` xml += `\n` xml += `\n` childId += 1; } if (objects[i].CDTR_AGNT_BIC !== 'N\\A' || objects[i].CDTR_AGNT_NM !== 'N\\A' || objects[i].CDTR_AGNT_CITY !== 'N\\A' || objects[i].CDTR_AGNT_COUNTRY !== 'N\\A') { xml += `\n`; childId += 1; xml += `\n`; xml += `${objects[i].CDTR_AGNT_BIC !== 'N\\A' ? `\n${objects[i].CDTR_AGNT_BIC}` : ''}`; if (objects[i].CDTR_AGNT_BIC == 'N\\A') { xml += `${objects[i].CDTR_AGNT_NM !== 'N\\A' ? `\n${objects[i].CDTR_AGNT_NM}` : ''}`; xml += `${objects[i].CDTR_AGNT_CITY !== 'N\\A' ? `\n${objects[i].CDTR_AGNT_CITY}` : ''}`; xml += `${objects[i].CDTR_AGNT_COUNTRY !== 'N\\A' ? `\n${objects[i].CDTR_AGNT_COUNTRY}` : ''}`; } xml += `\n`; xml += `\n`; childId += 1; } if (objects[i].INSTRCTD_AGNT_BIC !== 'N\\A' || objects[i].INSTRCTD_AGNT_NM !== 'N\\A' || objects[i].INSTRCTD_AGNT_CITY !== 'N\\A' || objects[i].INSTRCTD_AGNT_COUNTRY !== 'N\\A') { xml += `\n`; childId += 1; xml += `\n`; xml += `${objects[i].INSTRCTD_AGNT_BIC !== 'N\\A' ? `\n${objects[i].INSTRCTD_AGNT_BIC}` : ''}`; if (objects[i].INSTRCTD_AGNT_BIC == 'N\\A') { xml += `${objects[i].INSTRCTD_AGNT_NM !== 'N\\A' ? `\n${objects[i].INSTRCTD_AGNT_NM}` : ''}`; xml += `${objects[i].INSTRCTD_AGNT_CITY !== 'N\\A' ? `\n${objects[i].INSTRCTD_AGNT_CITY}` : ''}`; xml += `${objects[i].INSTRCTD_AGNT_COUNTRY !== 'N\\A' ? `\n${objects[i].INSTRCTD_AGNT_COUNTRY}` : ''}`; } xml += `\n`; xml += `\n`; childId += 1; } if (objects[i].INSTRCTD_AGNT_INTRMDRY !== 'N\\A') { xml += `\n` childId += 1; xml += `\n` xml += `\n${objects[i].INSTRCTD_AGNT_INTRMDRY}` xml += `\n` xml += `\n` childId += 1; } if (objects[i].PYMNT_DTLS !== 'N\\A' || objects[i].OTHR_DTLS !== 'N\\A' || objects[i].SNDR_RCVR_INFO !== 'N\\A') { xml += `\n`; xml += `${objects[i].PYMNT_DTLS !== 'N\\A' ? `\n${objects[i].PYMNT_DTLS}` : ''}`; xml += `${objects[i].OTHR_DTLS !== 'N\\A' ? `\n${objects[i].OTHR_DTLS}` : ''}`; xml += `${objects[i].SNDR_RCVR_INFO !== 'N\\A' ? `\n${objects[i].SNDR_RCVR_INFO}` : ''}`; xml += `\n`; } xml += `\n
`; } xml += "\n
"; //console.log(xml); return xml; } function processRequest(jaqlResponse) { return jaqlResponse; } function getChildId(structID, tempID) { return structID + tempID.toString().padStart(2, "0"); } function download(content, fileName, mimeType) { var a = document.createElement('a'); mimeType = mimeType || 'application/octet-stream'; //create a Blob object with the content and content type var blob = new Blob([content], { type: 'text/xml' }); if (navigator.msSaveBlob) { // IE10 navigator.msSaveBlob(blob, fileName); } else if (URL && 'download' in a) { //html5 A[download] a.href = URL.createObjectURL(blob); a.setAttribute('download', fileName); document.body.appendChild(a); a.click(); document.body.removeChild(a); } else { location.href = 'data:application/octet-stream,' + encodeURIComponent(content); // only this mime type is supported } } var res = processRequest(jaqlResponse); function downloadXml(xmlString, filename) { const blob = new Blob([xmlString], { type: 'text/xml' }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.setAttribute('href', url); a.setAttribute('download', filename); document.body.appendChild(a); a.click(); document.body.removeChild(a); URL.revokeObjectURL(url); }; xmlcontent = prepareResponseINXML(objects); csvContent = res.headers.join(",") + "\n" csvContent += res.values.map(e => e.join(",")).join("\n") //download(xmlcontent, fileName, 'text/xml; charset=utf-8'); downloadXml(xmlcontent, fileName)