Built motion from commit da617fac.|2.6.6
[motion2.git] / server / components / export / pdf.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xe1a8=['map','tableHeader','value','length','body','push','chunk','keys','forEach','format','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','startDate','endDate','header','pageBreak','before','margin','landscape','toString','\x20/\x20','footer','Arial','black','right','Empty','find','split','splitSizePdf','then','isInteger','num','sequelize','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','query','SELECT','dirname','basename','.pdf','existsSync','mkdirSync','join','each','flatten','%s%d.%s','pdf','%s.%s','all','zip','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','PDF','Completed','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','findOne','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','exit','/fonts/arial-bold.ttf','/fonts/arial-italic.ttf','/fonts/arial-bold-italic.ttf','%s\x20#%d','interactionId','YYYY-MM-DD','center','Interaction\x20Transcript','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','pipe','createWriteStream','finish','error','end','createPdfFromHTML','createPdfKitDocument','lodash','util','moment','html-to-pdfmake','pdfmake/src/printer','rimraf','jsdom','window','../../mysqldb','dbH','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','AnalyticExtractedReport'];(function(_0x1a165f,_0xaf7889){var _0x17d3ae=function(_0x392130){while(--_0x392130){_0x1a165f['push'](_0x1a165f['shift']());}};_0x17d3ae(++_0xaf7889);}(_0xe1a8,0x161));var _0x8e1a=function(_0x552102,_0x522dfb){_0x552102=_0x552102-0x0;var _0x4c7422=_0xe1a8[_0x552102];return _0x4c7422;};'use strict';var _=require(_0x8e1a('0x0'));var fs=require('fs');var util=require(_0x8e1a('0x1'));var path=require('path');var moment=require(_0x8e1a('0x2'));var htmlToPdfmake=require(_0x8e1a('0x3'));var PdfPrinter=require(_0x8e1a('0x4'));var zipdir=require('zip-dir');var rimraf=require(_0x8e1a('0x5'));var JSDOM=require(_0x8e1a('0x6'))['JSDOM'];var window=new JSDOM('')[_0x8e1a('0x7')];var BPromise=require('bluebird');var db=require(_0x8e1a('0x8'))['db'];var dbH=require(_0x8e1a('0x8'))[_0x8e1a('0x9')];var logger=require('../../config/logger')(_0x8e1a('0xa'));var EXTRACTED_REPORT_ID=Number(process[_0x8e1a('0xb')][0x2]);var QUERY=process[_0x8e1a('0xb')][0x3];var PATH=process[_0x8e1a('0xb')][0x4];var NAME=process[_0x8e1a('0xb')][0x5];var FORMAT=_0x8e1a('0xc');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x553cec,_0x5bda72){var _0x563fcb={'status':_0x553cec};var _0x312d33={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x5bda72){_0x563fcb[_0x8e1a('0xd')]=_0x5bda72;}return db[_0x8e1a('0xe')]['update'](_0x563fcb,_0x312d33);}function getHeaders(_0x1c69dd){return _[_0x8e1a('0xf')](_0x1c69dd,function(_0x4dd7ea){return{'text':_0x4dd7ea,'style':_0x8e1a('0x10')};});}function getRows(_0x3e64ea,_0x11b870){return _['map'](_0x11b870,function(_0x568eba){return _(_0x568eba)['pick'](_0x3e64ea)[_0x8e1a('0xf')](function(_0x484407){return _0x484407?_['toString'](_0x484407):'';})[_0x8e1a('0x11')]();});}function createTable(_0x2ee4e8,_0x4c5604){var _0x56f633={'widths':_['fill'](Array(_0x2ee4e8[_0x8e1a('0x12')]),0x91),'heights':function(_0x523e07){return _0x523e07===0x0?'auto':0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x128a70=getHeaders(_0x2ee4e8);_0x56f633[_0x8e1a('0x13')][_0x8e1a('0x14')](_0x128a70);var _0x3f7b9f=getRows(_0x2ee4e8,_0x4c5604);_0x56f633['body']=_0x56f633[_0x8e1a('0x13')]['concat'](_0x3f7b9f);return _0x56f633;}function createTables(_0x110507){var _0x158a64=[];var _0x51fa1e=_[_0x8e1a('0x15')](Object[_0x8e1a('0x16')](_0x110507[0x0]),0x5);_0x51fa1e[_0x8e1a('0x17')](function(_0x119ce9){_0x158a64[_0x8e1a('0x14')](createTable(_0x119ce9,_0x110507));});return _0x158a64;}function getPDFDocDefinition(_0x2232df){var _0x2ba57=util[_0x8e1a('0x18')](_0x8e1a('0x19'),NAME,EXTRACTED_REPORT[_0x8e1a('0x1a')],moment(EXTRACTED_REPORT[_0x8e1a('0x1b')])[_0x8e1a('0x18')](FORMAT),moment(EXTRACTED_REPORT[_0x8e1a('0x1c')])[_0x8e1a('0x18')](FORMAT));var _0x2e07b6=[];for(var _0x3bc8da=0x0;_0x3bc8da<_0x2232df[_0x8e1a('0x12')];_0x3bc8da++){var _0x18cc47=[];if(_0x3bc8da===0x0){_0x18cc47[_0x8e1a('0x14')]({'text':_0x2ba57,'style':_0x8e1a('0x1d')});}var _0x3e47ff={'table':_0x2232df[_0x3bc8da]};if(_0x3bc8da>0x0){_0x3e47ff[_0x8e1a('0x1e')]=_0x8e1a('0x1f');_0x3e47ff[_0x8e1a('0x20')]=[0x0,0x46,0x0,0x0];}_0x18cc47[_0x8e1a('0x14')](_0x3e47ff);_0x2e07b6[_0x8e1a('0x14')](_0x18cc47);}return{'pageSize':'A4','pageOrientation':_0x8e1a('0x21'),'content':_0x2e07b6,'footer':function(_0x3e357d,_0x37a1bf){return{'text':_0x3e357d[_0x8e1a('0x22')]()+_0x8e1a('0x23')+_0x37a1bf,'style':_0x8e1a('0x24')};},'defaultStyle':{'font':_0x8e1a('0x25')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':_0x8e1a('0x26')},'footer':{'alignment':_0x8e1a('0x27'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x4bf27c){var _0x406a34=0x1388;var _0x2295fb;if(!_0x4bf27c[0x0]['num']){return analyticExtractedReport(_0x8e1a('0x28'));}return db['Setting'][_0x8e1a('0x29')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x8e1a('0x2a'),_0x8e1a('0x2b')]})[_0x8e1a('0x2c')](function(_0xb9d083){if(_0xb9d083){_0x2295fb=_0xb9d083;_0x406a34=_0x2295fb[_0x8e1a('0x2b')]||0x3e8;}})[_0x8e1a('0x2c')](function(){var _0x16f96d=[];var _0x4d48f5=0x0;if(_0x2295fb[_0x8e1a('0x2a')]){if(_0x4bf27c&&_0x4bf27c[_0x8e1a('0x12')]){var _0x545884=_['range'](_0x4bf27c[0x0]['num']/_0x406a34);var _0x1bb995=Number[_0x8e1a('0x2d')](_0x4bf27c[0x0][_0x8e1a('0x2e')]/_0x406a34)?_0x4bf27c[0x0][_0x8e1a('0x2e')]%_0x406a34:0x0;_0x545884[_0x8e1a('0x17')](function(_0x356b7a){if(_0x356b7a>0x0){_0x4d48f5+=_0x406a34;}_0x16f96d[_0x8e1a('0x14')](dbH[_0x8e1a('0x2f')]['query'](util[_0x8e1a('0x18')](_0x8e1a('0x30'),QUERY,_0x406a34,_0x4d48f5),{'type':dbH[_0x8e1a('0x2f')][_0x8e1a('0x31')]['SELECT']}));});if(_0x1bb995>0x0){_0x4d48f5+=_0x406a34;_0x16f96d[_0x8e1a('0x14')](dbH['sequelize'][_0x8e1a('0x32')](util[_0x8e1a('0x18')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x1bb995,_0x4d48f5),{'type':dbH['sequelize'][_0x8e1a('0x31')][_0x8e1a('0x33')]}));}}}else{_0x16f96d['push'](dbH[_0x8e1a('0x2f')][_0x8e1a('0x32')](QUERY,{'type':dbH[_0x8e1a('0x2f')][_0x8e1a('0x31')]['SELECT']}));}var _0x1c4b8f=path[_0x8e1a('0x34')](PATH);var _0x19d48e=path[_0x8e1a('0x35')](PATH,_0x8e1a('0x36'));var _0x7aaa1a=_0x2295fb['split']&&_0x16f96d[_0x8e1a('0x12')]>0x1;var _0x2f902d=[];if(!fs[_0x8e1a('0x37')](path['join'](_0x1c4b8f,_0x19d48e))&&_0x7aaa1a){fs[_0x8e1a('0x38')](path[_0x8e1a('0x39')](_0x1c4b8f,_0x19d48e));}return BPromise[_0x8e1a('0x3a')](_0x16f96d,function(_0x45cd9d){_0x2f902d[_0x8e1a('0x14')](_0x45cd9d);})[_0x8e1a('0x2c')](function(){var _0x54557b=[];for(var _0x2f85a9=0x0;_0x2f85a9<_0x2f902d['length'];_0x2f85a9+=0x1){var _0x103b5c=_0x2f902d[_0x2f85a9];var _0x56c28c=createTables(_[_0x8e1a('0x3b')](_0x103b5c));var _0x5a33cc;var _0x5e6a91=getPDFDocDefinition(_0x56c28c);var _0x1dc8f3=getPDFPrinter();var _0x54bd78=_0x1dc8f3['createPdfKitDocument'](_0x5e6a91);if(_0x7aaa1a){_0x5a33cc=path[_0x8e1a('0x39')](_0x1c4b8f,_0x19d48e,util[_0x8e1a('0x18')](_0x8e1a('0x3c'),_0x19d48e,_0x2f85a9,_0x8e1a('0x3d')));}else{_0x5a33cc=path[_0x8e1a('0x39')](_0x1c4b8f,util[_0x8e1a('0x18')](_0x8e1a('0x3e'),_0x19d48e,_0x8e1a('0x3d')));}_0x54557b[_0x8e1a('0x14')](writePDFDocument(_0x54bd78,_0x5a33cc));}return Promise[_0x8e1a('0x3f')](_0x54557b);})[_0x8e1a('0x2c')](function(){if(_0x7aaa1a){return new Promise(function(_0x10b857){zipdir(path[_0x8e1a('0x39')](_0x1c4b8f,_0x19d48e),{'saveTo':path['join'](_0x1c4b8f,util[_0x8e1a('0x18')](_0x8e1a('0x3e'),_0x19d48e,_0x8e1a('0x40')))},function(){rimraf(path[_0x8e1a('0x39')](_0x1c4b8f,_0x19d48e),function(){});_0x10b857('zip\x20finished');});});}})[_0x8e1a('0x2c')](function(){if(!_0x7aaa1a)return;rimraf(path[_0x8e1a('0x39')](_0x1c4b8f,_0x19d48e),function(){});})[_0x8e1a('0x2c')](function(){logger[_0x8e1a('0x41')](util[_0x8e1a('0x18')](_0x8e1a('0x42'),EXTRACTED_REPORT_ID,_0x8e1a('0x43')));return analyticExtractedReport(_0x8e1a('0x44'),_0x7aaa1a?util['format']('%s.%s',_0x19d48e,_0x7aaa1a?_0x8e1a('0x40'):_0x8e1a('0x3d')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0x8e1a('0x41')](util['format'](_0x8e1a('0x45'),EXTRACTED_REPORT_ID,'PDF'));return db[_0x8e1a('0xe')][_0x8e1a('0x46')]({'where':{'id':EXTRACTED_REPORT_ID}})['then'](function(_0x2b4dd9){EXTRACTED_REPORT=_0x2b4dd9;return dbH[_0x8e1a('0x2f')][_0x8e1a('0x32')](util[_0x8e1a('0x18')](_0x8e1a('0x47'),QUERY),{'type':dbH[_0x8e1a('0x2f')]['QueryTypes'][_0x8e1a('0x33')]});})['then'](extractReport)[_0x8e1a('0x48')](function(_0x38f9f1){logger[_0x8e1a('0x41')](util[_0x8e1a('0x18')](_0x8e1a('0x49'),EXTRACTED_REPORT_ID,_0x8e1a('0x43')),util[_0x8e1a('0x4a')](_0x38f9f1,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})['finally'](function(){process[_0x8e1a('0x4b')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x3846a1=new PdfPrinter({'Arial':{'normal':__dirname+'/fonts/arial-regular.ttf','bold':__dirname+_0x8e1a('0x4c'),'italics':__dirname+_0x8e1a('0x4d'),'bolditalics':__dirname+_0x8e1a('0x4e')}});return _0x3846a1;}function getPDFDocDefinitionFromHTML(_0x388271,_0x3bb16d){var _0x4414a1=util[_0x8e1a('0x18')](_0x8e1a('0x4f'),_0x3bb16d['channel'],_0x3bb16d[_0x8e1a('0x50')]);var _0x9bff92=moment()[_0x8e1a('0x18')](_0x8e1a('0x51'))[_0x8e1a('0x22')]();var _0xe8da5f=htmlToPdfmake(_0x388271,{'window':window,'tableAutoSize':!![]});return{'content':[_0xe8da5f],'defaultStyle':{'font':_0x8e1a('0x25')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0x8e1a('0x52'),'margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0x8e1a('0x52'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':'center'}},'header':function(){return[{'text':_0x8e1a('0x53'),'style':_0x8e1a('0x1d')}];},'footer':function(_0x1d3819,_0x31479d){return[{'text':util[_0x8e1a('0x18')](_0x8e1a('0x54'),_0x4414a1,_0x1d3819,_0x31479d,_0x9bff92),'style':_0x8e1a('0x24')}];}};}function writePDFDocument(_0xf2558b,_0x1b6076){return new Promise(function(_0x1afbcb,_0x592c13){var _0x486b19=_0xf2558b[_0x8e1a('0x55')](fs[_0x8e1a('0x56')](_0x1b6076));_0x486b19['on'](_0x8e1a('0x57'),function(){_0x1afbcb(_0x8e1a('0x57'));});_0x486b19['on'](_0x8e1a('0x58'),function(_0x22ff74){_0x592c13(_0x22ff74);});_0xf2558b[_0x8e1a('0x59')]();});}exports[_0x8e1a('0x5a')]=function(_0x1490cd,_0x159421){var _0x4062ef=getPDFPrinter();var _0xf54943=getPDFDocDefinitionFromHTML(_0x1490cd,_0x159421);var _0x595c40=_0x4062ef[_0x8e1a('0x5b')](_0xf54943);return writePDFDocument(_0x595c40,_0x159421['path'])[_0x8e1a('0x48')](function(_0x3e251d){throw _0x3e251d;});};