5b2ff970ed41e070ed6b4f015a55eea314c1d942
[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 _0x3f5c=['info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','PDF','AnalyticExtractedReport','catch','inspect','finally','exit','/fonts/arial-regular.ttf','/fonts/arial-bold.ttf','/fonts/arial-italic.ttf','%s\x20#%d','interactionId','center','Interaction\x20Transcript','pipe','createWriteStream','finish','end','createPdfFromHTML','util','path','moment','html-to-pdfmake','pdfmake/src/printer','zip-dir','jsdom','JSDOM','window','dbH','../../config/logger','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','update','map','tableHeader','toString','value','length','body','push','concat','chunk','keys','format','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','endDate','header','pageBreak','before','margin','landscape','\x20/\x20','footer','Arial','black','right','num','Setting','find','split','splitSizePdf','then','range','isInteger','forEach','sequelize','query','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','dirname','basename','.pdf','existsSync','join','mkdirSync','each','flatten','createPdfKitDocument','%s%d.%s','pdf','%s.%s','zip'];(function(_0x401609,_0x5eb61d){var _0x35fd57=function(_0x5dcddd){while(--_0x5dcddd){_0x401609['push'](_0x401609['shift']());}};_0x35fd57(++_0x5eb61d);}(_0x3f5c,0xc2));var _0xc3f5=function(_0x43dcae,_0x20965a){_0x43dcae=_0x43dcae-0x0;var _0x2a31da=_0x3f5c[_0x43dcae];return _0x2a31da;};'use strict';var _=require('lodash');var fs=require('fs');var util=require(_0xc3f5('0x0'));var path=require(_0xc3f5('0x1'));var moment=require(_0xc3f5('0x2'));var htmlToPdfmake=require(_0xc3f5('0x3'));var PdfPrinter=require(_0xc3f5('0x4'));var zipdir=require(_0xc3f5('0x5'));var rimraf=require('rimraf');var JSDOM=require(_0xc3f5('0x6'))[_0xc3f5('0x7')];var window=new JSDOM('')[_0xc3f5('0x8')];var BPromise=require('bluebird');var db=require('../../mysqldb')['db'];var dbH=require('../../mysqldb')[_0xc3f5('0x9')];var logger=require(_0xc3f5('0xa'))(_0xc3f5('0xb'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0xc3f5('0xc')][0x3];var PATH=process['argv'][0x4];var NAME=process['argv'][0x5];var FORMAT=_0xc3f5('0xd');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x4e942d,_0x288278){var _0x4c0e4a={'status':_0x4e942d};var _0x339ad1={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x288278){_0x4c0e4a[_0xc3f5('0xe')]=_0x288278;}return db['AnalyticExtractedReport'][_0xc3f5('0xf')](_0x4c0e4a,_0x339ad1);}function getHeaders(_0x55460e){return _[_0xc3f5('0x10')](_0x55460e,function(_0x1a2202){return{'text':_0x1a2202,'style':_0xc3f5('0x11')};});}function getRows(_0x5ef6cc,_0x7802){return _[_0xc3f5('0x10')](_0x7802,function(_0x315d75){return _(_0x315d75)['pick'](_0x5ef6cc)[_0xc3f5('0x10')](function(_0x4e6624){return _0x4e6624?_[_0xc3f5('0x12')](_0x4e6624):'';})[_0xc3f5('0x13')]();});}function createTable(_0x1efce7,_0x463c80){var _0x3bc625={'widths':_['fill'](Array(_0x1efce7[_0xc3f5('0x14')]),0x91),'heights':function(_0x3ab1e2){return _0x3ab1e2===0x0?'auto':0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x36a924=getHeaders(_0x1efce7);_0x3bc625[_0xc3f5('0x15')][_0xc3f5('0x16')](_0x36a924);var _0x192b60=getRows(_0x1efce7,_0x463c80);_0x3bc625[_0xc3f5('0x15')]=_0x3bc625[_0xc3f5('0x15')][_0xc3f5('0x17')](_0x192b60);return _0x3bc625;}function createTables(_0x139d74){var _0x43791f=[];var _0x43aa7f=_[_0xc3f5('0x18')](Object[_0xc3f5('0x19')](_0x139d74[0x0]),0x5);_0x43aa7f['forEach'](function(_0x5b5641){_0x43791f[_0xc3f5('0x16')](createTable(_0x5b5641,_0x139d74));});return _0x43791f;}function getPDFDocDefinition(_0x1da655){var _0x18dabc=util[_0xc3f5('0x1a')](_0xc3f5('0x1b'),NAME,EXTRACTED_REPORT[_0xc3f5('0x1c')],moment(EXTRACTED_REPORT['startDate'])['format'](FORMAT),moment(EXTRACTED_REPORT[_0xc3f5('0x1d')])[_0xc3f5('0x1a')](FORMAT));var _0x5d2da9=[];for(var _0x381bf1=0x0;_0x381bf1<_0x1da655[_0xc3f5('0x14')];_0x381bf1++){var _0x170703=[];if(_0x381bf1===0x0){_0x170703[_0xc3f5('0x16')]({'text':_0x18dabc,'style':_0xc3f5('0x1e')});}var _0x2d8a6b={'table':_0x1da655[_0x381bf1]};if(_0x381bf1>0x0){_0x2d8a6b[_0xc3f5('0x1f')]=_0xc3f5('0x20');_0x2d8a6b[_0xc3f5('0x21')]=[0x0,0x46,0x0,0x0];}_0x170703[_0xc3f5('0x16')](_0x2d8a6b);_0x5d2da9[_0xc3f5('0x16')](_0x170703);}return{'pageSize':'A4','pageOrientation':_0xc3f5('0x22'),'content':_0x5d2da9,'footer':function(_0x5c7752,_0x2a11b7){return{'text':_0x5c7752[_0xc3f5('0x12')]()+_0xc3f5('0x23')+_0x2a11b7,'style':_0xc3f5('0x24')};},'defaultStyle':{'font':_0xc3f5('0x25')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':_0xc3f5('0x26')},'footer':{'alignment':_0xc3f5('0x27'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x1b1e64){var _0x10def0=0x1388;var _0x387e9b;if(!_0x1b1e64[0x0][_0xc3f5('0x28')]){return analyticExtractedReport('Empty');}return db[_0xc3f5('0x29')][_0xc3f5('0x2a')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xc3f5('0x2b'),'splitSizePdf']})['then'](function(_0x25afb9){if(_0x25afb9){_0x387e9b=_0x25afb9;_0x10def0=_0x387e9b[_0xc3f5('0x2c')]||0x3e8;}})[_0xc3f5('0x2d')](function(){var _0x1229f7=[];var _0x45a12a=0x0;if(_0x387e9b['split']){if(_0x1b1e64&&_0x1b1e64['length']){var _0x594878=_[_0xc3f5('0x2e')](_0x1b1e64[0x0][_0xc3f5('0x28')]/_0x10def0);var _0x509b88=Number[_0xc3f5('0x2f')](_0x1b1e64[0x0][_0xc3f5('0x28')]/_0x10def0)?_0x1b1e64[0x0][_0xc3f5('0x28')]%_0x10def0:0x0;_0x594878[_0xc3f5('0x30')](function(_0x69d038){if(_0x69d038>0x0){_0x45a12a+=_0x10def0;}_0x1229f7[_0xc3f5('0x16')](dbH[_0xc3f5('0x31')][_0xc3f5('0x32')](util[_0xc3f5('0x1a')](_0xc3f5('0x33'),QUERY,_0x10def0,_0x45a12a),{'type':dbH[_0xc3f5('0x31')][_0xc3f5('0x34')][_0xc3f5('0x35')]}));});if(_0x509b88>0x0){_0x45a12a+=_0x10def0;_0x1229f7[_0xc3f5('0x16')](dbH[_0xc3f5('0x31')][_0xc3f5('0x32')](util[_0xc3f5('0x1a')](_0xc3f5('0x33'),QUERY,_0x509b88,_0x45a12a),{'type':dbH['sequelize']['QueryTypes'][_0xc3f5('0x35')]}));}}}else{_0x1229f7[_0xc3f5('0x16')](dbH['sequelize'][_0xc3f5('0x32')](QUERY,{'type':dbH[_0xc3f5('0x31')][_0xc3f5('0x34')][_0xc3f5('0x35')]}));}var _0x554146=path[_0xc3f5('0x36')](PATH);var _0x322cb1=path[_0xc3f5('0x37')](PATH,_0xc3f5('0x38'));var _0x493cc5=_0x387e9b[_0xc3f5('0x2b')]&&_0x1229f7[_0xc3f5('0x14')]>0x1;var _0x1b7195=[];if(!fs[_0xc3f5('0x39')](path[_0xc3f5('0x3a')](_0x554146,_0x322cb1))&&_0x493cc5){fs[_0xc3f5('0x3b')](path[_0xc3f5('0x3a')](_0x554146,_0x322cb1));}return BPromise[_0xc3f5('0x3c')](_0x1229f7,function(_0xdcd4fa){_0x1b7195[_0xc3f5('0x16')](_0xdcd4fa);})['then'](function(){var _0x209b9f=[];for(var _0x4f2ef5=0x0;_0x4f2ef5<_0x1b7195['length'];_0x4f2ef5+=0x1){var _0xa44918=_0x1b7195[_0x4f2ef5];var _0x3f4b56=createTables(_[_0xc3f5('0x3d')](_0xa44918));var _0x29de50;var _0x509ff1=getPDFDocDefinition(_0x3f4b56);var _0x593693=getPDFPrinter();var _0x20f24e=_0x593693[_0xc3f5('0x3e')](_0x509ff1);if(_0x493cc5){_0x29de50=path[_0xc3f5('0x3a')](_0x554146,_0x322cb1,util['format'](_0xc3f5('0x3f'),_0x322cb1,_0x4f2ef5,_0xc3f5('0x40')));}else{_0x29de50=path[_0xc3f5('0x3a')](_0x554146,util[_0xc3f5('0x1a')](_0xc3f5('0x41'),_0x322cb1,'pdf'));}_0x209b9f[_0xc3f5('0x16')](writePDFDocument(_0x20f24e,_0x29de50));}return Promise['all'](_0x209b9f);})[_0xc3f5('0x2d')](function(){if(_0x493cc5){return new Promise(function(_0x5734bf){zipdir(path['join'](_0x554146,_0x322cb1),{'saveTo':path[_0xc3f5('0x3a')](_0x554146,util[_0xc3f5('0x1a')](_0xc3f5('0x41'),_0x322cb1,_0xc3f5('0x42')))},function(){rimraf(path['join'](_0x554146,_0x322cb1),function(){});_0x5734bf('zip\x20finished');});});}})['then'](function(){if(!_0x493cc5)return;rimraf(path[_0xc3f5('0x3a')](_0x554146,_0x322cb1),function(){});})[_0xc3f5('0x2d')](function(){logger[_0xc3f5('0x43')](util['format'](_0xc3f5('0x44'),EXTRACTED_REPORT_ID,_0xc3f5('0x45')));return analyticExtractedReport('Completed',_0x493cc5?util[_0xc3f5('0x1a')]('%s.%s',_0x322cb1,_0x493cc5?'zip':_0xc3f5('0x40')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0xc3f5('0x43')](util[_0xc3f5('0x1a')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0xc3f5('0x45')));return db[_0xc3f5('0x46')]['findOne']({'where':{'id':EXTRACTED_REPORT_ID}})[_0xc3f5('0x2d')](function(_0x7eed52){EXTRACTED_REPORT=_0x7eed52;return dbH['sequelize']['query'](util['format']('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0xc3f5('0x31')][_0xc3f5('0x34')]['SELECT']});})[_0xc3f5('0x2d')](extractReport)[_0xc3f5('0x47')](function(_0x2ad9b8){logger[_0xc3f5('0x43')](util[_0xc3f5('0x1a')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,'PDF'),util[_0xc3f5('0x48')](_0x2ad9b8,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})[_0xc3f5('0x49')](function(){process[_0xc3f5('0x4a')](EXIT_CODE);});}main();function getPDFPrinter(){var _0xc0e14e=new PdfPrinter({'Arial':{'normal':__dirname+_0xc3f5('0x4b'),'bold':__dirname+_0xc3f5('0x4c'),'italics':__dirname+_0xc3f5('0x4d'),'bolditalics':__dirname+'/fonts/arial-bold-italic.ttf'}});return _0xc0e14e;}function getPDFDocDefinitionFromHTML(_0x1a9509,_0x5a887a){var _0x2caf81=util[_0xc3f5('0x1a')](_0xc3f5('0x4e'),_0x5a887a['channel'],_0x5a887a[_0xc3f5('0x4f')]);var _0x59ed84=moment()[_0xc3f5('0x1a')]('YYYY-MM-DD')[_0xc3f5('0x12')]();var _0x31a389=htmlToPdfmake(_0x1a9509,{'window':window,'tableAutoSize':!![]});return{'content':[_0x31a389],'defaultStyle':{'font':_0xc3f5('0x25')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':'center','margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0xc3f5('0x50'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':_0xc3f5('0x50')}},'header':function(){return[{'text':_0xc3f5('0x51'),'style':_0xc3f5('0x1e')}];},'footer':function(_0x2e5950,_0x4c0874){return[{'text':util['format']('\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s',_0x2caf81,_0x2e5950,_0x4c0874,_0x59ed84),'style':_0xc3f5('0x24')}];}};}function writePDFDocument(_0x1449c5,_0x16e60b){return new Promise(function(_0x1d7090,_0x2deb18){var _0x35ac75=_0x1449c5[_0xc3f5('0x52')](fs[_0xc3f5('0x53')](_0x16e60b));_0x35ac75['on'](_0xc3f5('0x54'),function(){_0x1d7090('finish');});_0x35ac75['on']('error',function(_0x49f017){_0x2deb18(_0x49f017);});_0x1449c5[_0xc3f5('0x55')]();});}exports[_0xc3f5('0x56')]=function(_0x448ce0,_0x1fb980){var _0x4451a5=getPDFPrinter();var _0x133ee5=getPDFDocDefinitionFromHTML(_0x448ce0,_0x1fb980);var _0x52ddff=_0x4451a5[_0xc3f5('0x3e')](_0x133ee5);return writePDFDocument(_0x52ddff,_0x1fb980[_0xc3f5('0x1')])[_0xc3f5('0x47')](function(_0x46e802){throw _0x46e802;});};