0c2d5810796344c68a38c2812ddf03dd7381b5da
[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 _0x15e6=['findOne','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','catch','inspect','Failed','finally','exit','/fonts/arial-regular.ttf','/fonts/arial-bold.ttf','/fonts/arial-italic.ttf','/fonts/arial-bold-italic.ttf','%s\x20#%d','channel','interactionId','YYYY-MM-DD','center','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','finish','error','end','createPdfKitDocument','lodash','util','path','html-to-pdfmake','pdfmake/src/printer','zip-dir','jsdom','JSDOM','bluebird','dbH','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','update','map','tableHeader','toString','fill','length','auto','body','push','concat','chunk','keys','forEach','format','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','endDate','header','pageBreak','before','landscape','\x20/\x20','footer','Arial','right','num','Empty','Setting','find','split','splitSizePdf','then','range','sequelize','%s\x20limit\x20%d\x20OFFSET\x20%d','SELECT','query','QueryTypes','dirname','join','mkdirSync','each','flatten','%s%d.%s','pdf','%s.%s','all','zip','zip\x20finished','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','AnalyticExtractedReport'];(function(_0x11e8a1,_0x2b33bb){var _0x46ff78=function(_0x4a3dcb){while(--_0x4a3dcb){_0x11e8a1['push'](_0x11e8a1['shift']());}};_0x46ff78(++_0x2b33bb);}(_0x15e6,0x1d2));var _0x615e=function(_0x11c3a7,_0x4fc46b){_0x11c3a7=_0x11c3a7-0x0;var _0x249aa0=_0x15e6[_0x11c3a7];return _0x249aa0;};'use strict';var _=require(_0x615e('0x0'));var fs=require('fs');var util=require(_0x615e('0x1'));var path=require(_0x615e('0x2'));var moment=require('moment');var htmlToPdfmake=require(_0x615e('0x3'));var PdfPrinter=require(_0x615e('0x4'));var zipdir=require(_0x615e('0x5'));var rimraf=require('rimraf');var JSDOM=require(_0x615e('0x6'))[_0x615e('0x7')];var window=new JSDOM('')['window'];var BPromise=require(_0x615e('0x8'));var db=require('../../mysqldb')['db'];var dbH=require('../../mysqldb')[_0x615e('0x9')];var logger=require('../../config/logger')('analytics');var EXTRACTED_REPORT_ID=Number(process[_0x615e('0xa')][0x2]);var QUERY=process['argv'][0x3];var PATH=process[_0x615e('0xa')][0x4];var NAME=process['argv'][0x5];var FORMAT=_0x615e('0xb');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x12d6f4,_0x222463){var _0x58aa7b={'status':_0x12d6f4};var _0x112613={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x222463){_0x58aa7b[_0x615e('0xc')]=_0x222463;}return db['AnalyticExtractedReport'][_0x615e('0xd')](_0x58aa7b,_0x112613);}function getHeaders(_0x2434b5){return _[_0x615e('0xe')](_0x2434b5,function(_0x482576){return{'text':_0x482576,'style':_0x615e('0xf')};});}function getRows(_0x6e52f1,_0x4eee5d){return _[_0x615e('0xe')](_0x4eee5d,function(_0x1c6f21){return _(_0x1c6f21)['pick'](_0x6e52f1)[_0x615e('0xe')](function(_0x3faad2){return _0x3faad2?_[_0x615e('0x10')](_0x3faad2):'';})['value']();});}function createTable(_0x29159f,_0x2e6107){var _0x37f884={'widths':_[_0x615e('0x11')](Array(_0x29159f[_0x615e('0x12')]),0x91),'heights':function(_0x521fbd){return _0x521fbd===0x0?_0x615e('0x13'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x109f3e=getHeaders(_0x29159f);_0x37f884[_0x615e('0x14')][_0x615e('0x15')](_0x109f3e);var _0x3fe41d=getRows(_0x29159f,_0x2e6107);_0x37f884[_0x615e('0x14')]=_0x37f884[_0x615e('0x14')][_0x615e('0x16')](_0x3fe41d);return _0x37f884;}function createTables(_0x81446d){var _0x4e91cb=[];var _0x3173b5=_[_0x615e('0x17')](Object[_0x615e('0x18')](_0x81446d[0x0]),0x5);_0x3173b5[_0x615e('0x19')](function(_0x506224){_0x4e91cb[_0x615e('0x15')](createTable(_0x506224,_0x81446d));});return _0x4e91cb;}function getPDFDocDefinition(_0xc6d089){var _0x2a7a90=util[_0x615e('0x1a')](_0x615e('0x1b'),NAME,EXTRACTED_REPORT[_0x615e('0x1c')],moment(EXTRACTED_REPORT['startDate'])['format'](FORMAT),moment(EXTRACTED_REPORT[_0x615e('0x1d')])[_0x615e('0x1a')](FORMAT));var _0x1d9cf0=[];for(var _0x552b38=0x0;_0x552b38<_0xc6d089[_0x615e('0x12')];_0x552b38++){var _0x250b97=[];if(_0x552b38===0x0){_0x250b97['push']({'text':_0x2a7a90,'style':_0x615e('0x1e')});}var _0x42fecb={'table':_0xc6d089[_0x552b38]};if(_0x552b38>0x0){_0x42fecb[_0x615e('0x1f')]=_0x615e('0x20');_0x42fecb['margin']=[0x0,0x46,0x0,0x0];}_0x250b97['push'](_0x42fecb);_0x1d9cf0[_0x615e('0x15')](_0x250b97);}return{'pageSize':'A4','pageOrientation':_0x615e('0x21'),'content':_0x1d9cf0,'footer':function(_0x44fb07,_0x351792){return{'text':_0x44fb07[_0x615e('0x10')]()+_0x615e('0x22')+_0x351792,'style':_0x615e('0x23')};},'defaultStyle':{'font':_0x615e('0x24')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':'black'},'footer':{'alignment':_0x615e('0x25'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x79acd5){var _0x579a26=0x1388;var _0x50df3f;if(!_0x79acd5[0x0][_0x615e('0x26')]){return analyticExtractedReport(_0x615e('0x27'));}return db[_0x615e('0x28')][_0x615e('0x29')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x615e('0x2a'),_0x615e('0x2b')]})['then'](function(_0x43d3c3){if(_0x43d3c3){_0x50df3f=_0x43d3c3;_0x579a26=_0x50df3f[_0x615e('0x2b')]||0x3e8;}})[_0x615e('0x2c')](function(){var _0x2169ad=[];var _0x46461c=0x0;if(_0x50df3f[_0x615e('0x2a')]){if(_0x79acd5&&_0x79acd5[_0x615e('0x12')]){var _0x39a907=_[_0x615e('0x2d')](_0x79acd5[0x0][_0x615e('0x26')]/_0x579a26);var _0x5e68ff=Number['isInteger'](_0x79acd5[0x0][_0x615e('0x26')]/_0x579a26)?_0x79acd5[0x0]['num']%_0x579a26:0x0;_0x39a907['forEach'](function(_0x5b6f1e){if(_0x5b6f1e>0x0){_0x46461c+=_0x579a26;}_0x2169ad['push'](dbH[_0x615e('0x2e')]['query'](util['format'](_0x615e('0x2f'),QUERY,_0x579a26,_0x46461c),{'type':dbH[_0x615e('0x2e')]['QueryTypes'][_0x615e('0x30')]}));});if(_0x5e68ff>0x0){_0x46461c+=_0x579a26;_0x2169ad[_0x615e('0x15')](dbH['sequelize'][_0x615e('0x31')](util[_0x615e('0x1a')](_0x615e('0x2f'),QUERY,_0x5e68ff,_0x46461c),{'type':dbH[_0x615e('0x2e')][_0x615e('0x32')]['SELECT']}));}}}else{_0x2169ad[_0x615e('0x15')](dbH[_0x615e('0x2e')][_0x615e('0x31')](QUERY,{'type':dbH[_0x615e('0x2e')][_0x615e('0x32')][_0x615e('0x30')]}));}var _0x441e6c=path[_0x615e('0x33')](PATH);var _0x3314e1=path['basename'](PATH,'.pdf');var _0x300daf=_0x50df3f[_0x615e('0x2a')]&&_0x2169ad[_0x615e('0x12')]>0x1;var _0x5c6d0c=[];if(!fs['existsSync'](path[_0x615e('0x34')](_0x441e6c,_0x3314e1))&&_0x300daf){fs[_0x615e('0x35')](path['join'](_0x441e6c,_0x3314e1));}return BPromise[_0x615e('0x36')](_0x2169ad,function(_0xf59f09){_0x5c6d0c['push'](_0xf59f09);})['then'](function(){var _0xbc04bc=[];for(var _0x1749cb=0x0;_0x1749cb<_0x5c6d0c[_0x615e('0x12')];_0x1749cb+=0x1){var _0xb5d206=_0x5c6d0c[_0x1749cb];var _0x258e05=createTables(_[_0x615e('0x37')](_0xb5d206));var _0x111a65;var _0x57030c=getPDFDocDefinition(_0x258e05);var _0x3fce91=getPDFPrinter();var _0x113a1a=_0x3fce91['createPdfKitDocument'](_0x57030c);if(_0x300daf){_0x111a65=path[_0x615e('0x34')](_0x441e6c,_0x3314e1,util[_0x615e('0x1a')](_0x615e('0x38'),_0x3314e1,_0x1749cb,_0x615e('0x39')));}else{_0x111a65=path[_0x615e('0x34')](_0x441e6c,util['format'](_0x615e('0x3a'),_0x3314e1,_0x615e('0x39')));}_0xbc04bc['push'](writePDFDocument(_0x113a1a,_0x111a65));}return Promise[_0x615e('0x3b')](_0xbc04bc);})['then'](function(){if(_0x300daf){return new Promise(function(_0x14b811){zipdir(path[_0x615e('0x34')](_0x441e6c,_0x3314e1),{'saveTo':path[_0x615e('0x34')](_0x441e6c,util['format']('%s.%s',_0x3314e1,_0x615e('0x3c')))},function(){rimraf(path[_0x615e('0x34')](_0x441e6c,_0x3314e1),function(){});_0x14b811(_0x615e('0x3d'));});});}})[_0x615e('0x2c')](function(){if(!_0x300daf)return;rimraf(path[_0x615e('0x34')](_0x441e6c,_0x3314e1),function(){});})['then'](function(){logger[_0x615e('0x3e')](util[_0x615e('0x1a')](_0x615e('0x3f'),EXTRACTED_REPORT_ID,_0x615e('0x40')));return analyticExtractedReport(_0x615e('0x41'),_0x300daf?util['format'](_0x615e('0x3a'),_0x3314e1,_0x300daf?_0x615e('0x3c'):'pdf'):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger['info'](util[_0x615e('0x1a')](_0x615e('0x42'),EXTRACTED_REPORT_ID,_0x615e('0x40')));return db[_0x615e('0x43')][_0x615e('0x44')]({'where':{'id':EXTRACTED_REPORT_ID}})['then'](function(_0x2956f5){EXTRACTED_REPORT=_0x2956f5;return dbH[_0x615e('0x2e')][_0x615e('0x31')](util[_0x615e('0x1a')](_0x615e('0x45'),QUERY),{'type':dbH[_0x615e('0x2e')]['QueryTypes'][_0x615e('0x30')]});})[_0x615e('0x2c')](extractReport)[_0x615e('0x46')](function(_0x1c867e){logger['info'](util[_0x615e('0x1a')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x615e('0x40')),util[_0x615e('0x47')](_0x1c867e,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x615e('0x48'));})[_0x615e('0x49')](function(){process[_0x615e('0x4a')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x2f594a=new PdfPrinter({'Arial':{'normal':__dirname+_0x615e('0x4b'),'bold':__dirname+_0x615e('0x4c'),'italics':__dirname+_0x615e('0x4d'),'bolditalics':__dirname+_0x615e('0x4e')}});return _0x2f594a;}function getPDFDocDefinitionFromHTML(_0xfebe78,_0x51842e){var _0x348513=util[_0x615e('0x1a')](_0x615e('0x4f'),_0x51842e[_0x615e('0x50')],_0x51842e[_0x615e('0x51')]);var _0x4b1ba8=moment()[_0x615e('0x1a')](_0x615e('0x52'))[_0x615e('0x10')]();var _0x573036=htmlToPdfmake(_0xfebe78,{'window':window,'tableAutoSize':!![]});return{'content':[_0x573036],'defaultStyle':{'font':_0x615e('0x24')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0x615e('0x53'),'margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':'center','margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':_0x615e('0x53')}},'header':function(){return[{'text':'Interaction\x20Transcript','style':_0x615e('0x1e')}];},'footer':function(_0x35eba7,_0x52e5a6){return[{'text':util[_0x615e('0x1a')](_0x615e('0x54'),_0x348513,_0x35eba7,_0x52e5a6,_0x4b1ba8),'style':_0x615e('0x23')}];}};}function writePDFDocument(_0x9110fb,_0x4f50fb){return new Promise(function(_0x35a167,_0x56acd0){var _0xb9ca7f=_0x9110fb['pipe'](fs['createWriteStream'](_0x4f50fb));_0xb9ca7f['on'](_0x615e('0x55'),function(){_0x35a167(_0x615e('0x55'));});_0xb9ca7f['on'](_0x615e('0x56'),function(_0x22dcf5){_0x56acd0(_0x22dcf5);});_0x9110fb[_0x615e('0x57')]();});}exports['createPdfFromHTML']=function(_0x9ebf13,_0x213bee){var _0x5e914c=getPDFPrinter();var _0x2b5846=getPDFDocDefinitionFromHTML(_0x9ebf13,_0x213bee);var _0x59f8b2=_0x5e914c[_0x615e('0x58')](_0x2b5846);return writePDFDocument(_0x59f8b2,_0x213bee['path'])[_0x615e('0x46')](function(_0x342492){throw _0x342492;});};