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 _0x5001=['flatten','%s%d.%s','%s.%s','all','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','PDF','Completed','zip','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','catch','info','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Failed','finally','exit','/fonts/arial-regular.ttf','/fonts/arial-bold.ttf','/fonts/arial-bold-italic.ttf','%s\x20#%d','channel','interactionId','YYYY-MM-DD','Arial','center','\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','path','moment','html-to-pdfmake','pdfmake/src/printer','zip-dir','rimraf','jsdom','JSDOM','window','bluebird','../../mysqldb','dbH','../../config/logger','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','AnalyticExtractedReport','map','tableHeader','pick','toString','fill','auto','push','body','keys','forEach','format','startDate','endDate','length','header','pageBreak','before','margin','\x20/\x20','footer','right','num','Empty','Setting','find','split','splitSizePdf','then','range','isInteger','sequelize','query','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','dirname','basename','existsSync','join','mkdirSync','each'];(function(_0x384cbb,_0xcb6be6){var _0x27609d=function(_0x336274){while(--_0x336274){_0x384cbb['push'](_0x384cbb['shift']());}};_0x27609d(++_0xcb6be6);}(_0x5001,0xdd));var _0x1500=function(_0x1dc221,_0x47cc81){_0x1dc221=_0x1dc221-0x0;var _0x1f753e=_0x5001[_0x1dc221];return _0x1f753e;};'use strict';var _=require(_0x1500('0x0'));var fs=require('fs');var util=require(_0x1500('0x1'));var path=require(_0x1500('0x2'));var moment=require(_0x1500('0x3'));var htmlToPdfmake=require(_0x1500('0x4'));var PdfPrinter=require(_0x1500('0x5'));var zipdir=require(_0x1500('0x6'));var rimraf=require(_0x1500('0x7'));var JSDOM=require(_0x1500('0x8'))[_0x1500('0x9')];var window=new JSDOM('')[_0x1500('0xa')];var BPromise=require(_0x1500('0xb'));var db=require(_0x1500('0xc'))['db'];var dbH=require('../../mysqldb')[_0x1500('0xd')];var logger=require(_0x1500('0xe'))(_0x1500('0xf'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0x1500('0x10')][0x3];var PATH=process[_0x1500('0x10')][0x4];var NAME=process[_0x1500('0x10')][0x5];var FORMAT=_0x1500('0x11');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x55c742,_0xd6780f){var _0x1b7916={'status':_0x55c742};var _0x5ced6c={'where':{'id':EXTRACTED_REPORT_ID}};if(_0xd6780f){_0x1b7916[_0x1500('0x12')]=_0xd6780f;}return db[_0x1500('0x13')]['update'](_0x1b7916,_0x5ced6c);}function getHeaders(_0x364b7a){return _[_0x1500('0x14')](_0x364b7a,function(_0x27e090){return{'text':_0x27e090,'style':_0x1500('0x15')};});}function getRows(_0x25c126,_0x5197ee){return _['map'](_0x5197ee,function(_0x253cae){return _(_0x253cae)[_0x1500('0x16')](_0x25c126)['map'](function(_0xdc7040){return _0xdc7040?_[_0x1500('0x17')](_0xdc7040):'';})['value']();});}function createTable(_0x59ae44,_0x4ac76e){var _0x3a9cf3={'widths':_[_0x1500('0x18')](Array(_0x59ae44['length']),0x91),'heights':function(_0x4b1a69){return _0x4b1a69===0x0?_0x1500('0x19'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x561eb2=getHeaders(_0x59ae44);_0x3a9cf3['body'][_0x1500('0x1a')](_0x561eb2);var _0xbdc68f=getRows(_0x59ae44,_0x4ac76e);_0x3a9cf3[_0x1500('0x1b')]=_0x3a9cf3[_0x1500('0x1b')]['concat'](_0xbdc68f);return _0x3a9cf3;}function createTables(_0x4b090b){var _0x1073e0=[];var _0x44f45=_['chunk'](Object[_0x1500('0x1c')](_0x4b090b[0x0]),0x5);_0x44f45[_0x1500('0x1d')](function(_0x3a7002){_0x1073e0[_0x1500('0x1a')](createTable(_0x3a7002,_0x4b090b));});return _0x1073e0;}function getPDFDocDefinition(_0x17a590){var _0x36aefc=util[_0x1500('0x1e')]('Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s',NAME,EXTRACTED_REPORT['name'],moment(EXTRACTED_REPORT[_0x1500('0x1f')])[_0x1500('0x1e')](FORMAT),moment(EXTRACTED_REPORT[_0x1500('0x20')])[_0x1500('0x1e')](FORMAT));var _0x4917b4=[];for(var _0x45634e=0x0;_0x45634e<_0x17a590[_0x1500('0x21')];_0x45634e++){var _0x57a239=[];if(_0x45634e===0x0){_0x57a239['push']({'text':_0x36aefc,'style':_0x1500('0x22')});}var _0x1fd1ed={'table':_0x17a590[_0x45634e]};if(_0x45634e>0x0){_0x1fd1ed[_0x1500('0x23')]=_0x1500('0x24');_0x1fd1ed[_0x1500('0x25')]=[0x0,0x46,0x0,0x0];}_0x57a239[_0x1500('0x1a')](_0x1fd1ed);_0x4917b4[_0x1500('0x1a')](_0x57a239);}return{'pageSize':'A4','pageOrientation':'landscape','content':_0x4917b4,'footer':function(_0x5b70dc,_0x278326){return{'text':_0x5b70dc[_0x1500('0x17')]()+_0x1500('0x26')+_0x278326,'style':_0x1500('0x27')};},'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':'black'},'footer':{'alignment':_0x1500('0x28'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x2ba920){var _0x3eee3a=0x1388;var _0x455a4e;if(!_0x2ba920[0x0][_0x1500('0x29')]){return analyticExtractedReport(_0x1500('0x2a'));}return db[_0x1500('0x2b')][_0x1500('0x2c')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x1500('0x2d'),_0x1500('0x2e')]})[_0x1500('0x2f')](function(_0x144ad){if(_0x144ad){_0x455a4e=_0x144ad;_0x3eee3a=_0x455a4e['splitSizePdf']||0x3e8;}})[_0x1500('0x2f')](function(){var _0x539410=[];var _0x542320=0x0;if(_0x455a4e[_0x1500('0x2d')]){if(_0x2ba920&&_0x2ba920['length']){var _0x4f4441=_[_0x1500('0x30')](_0x2ba920[0x0][_0x1500('0x29')]/_0x3eee3a);var _0x1ca4a1=Number[_0x1500('0x31')](_0x2ba920[0x0][_0x1500('0x29')]/_0x3eee3a)?_0x2ba920[0x0][_0x1500('0x29')]%_0x3eee3a:0x0;_0x4f4441[_0x1500('0x1d')](function(_0x263d4e){if(_0x263d4e>0x0){_0x542320+=_0x3eee3a;}_0x539410[_0x1500('0x1a')](dbH[_0x1500('0x32')][_0x1500('0x33')](util[_0x1500('0x1e')](_0x1500('0x34'),QUERY,_0x3eee3a,_0x542320),{'type':dbH['sequelize'][_0x1500('0x35')][_0x1500('0x36')]}));});if(_0x1ca4a1>0x0){_0x542320+=_0x3eee3a;_0x539410[_0x1500('0x1a')](dbH[_0x1500('0x32')][_0x1500('0x33')](util['format'](_0x1500('0x34'),QUERY,_0x1ca4a1,_0x542320),{'type':dbH[_0x1500('0x32')]['QueryTypes']['SELECT']}));}}}else{_0x539410[_0x1500('0x1a')](dbH[_0x1500('0x32')]['query'](QUERY,{'type':dbH[_0x1500('0x32')][_0x1500('0x35')]['SELECT']}));}var _0x493b87=path[_0x1500('0x37')](PATH);var _0xe17f42=path[_0x1500('0x38')](PATH,'.pdf');var _0x2b2266=_0x455a4e[_0x1500('0x2d')]&&_0x539410[_0x1500('0x21')]>0x1;var _0x59fe6e=[];if(!fs[_0x1500('0x39')](path[_0x1500('0x3a')](_0x493b87,_0xe17f42))&&_0x2b2266){fs[_0x1500('0x3b')](path[_0x1500('0x3a')](_0x493b87,_0xe17f42));}return BPromise[_0x1500('0x3c')](_0x539410,function(_0x127e1d){_0x59fe6e[_0x1500('0x1a')](_0x127e1d);})['then'](function(){var _0x53dc23=[];for(var _0x175a8f=0x0;_0x175a8f<_0x59fe6e['length'];_0x175a8f+=0x1){var _0x2f8ecf=_0x59fe6e[_0x175a8f];var _0x4537b0=createTables(_[_0x1500('0x3d')](_0x2f8ecf));var _0x3c548b;var _0x5507cf=getPDFDocDefinition(_0x4537b0);var _0xfc2fec=getPDFPrinter();var _0x39eb4c=_0xfc2fec['createPdfKitDocument'](_0x5507cf);if(_0x2b2266){_0x3c548b=path['join'](_0x493b87,_0xe17f42,util[_0x1500('0x1e')](_0x1500('0x3e'),_0xe17f42,_0x175a8f,'pdf'));}else{_0x3c548b=path[_0x1500('0x3a')](_0x493b87,util[_0x1500('0x1e')](_0x1500('0x3f'),_0xe17f42,'pdf'));}_0x53dc23[_0x1500('0x1a')](writePDFDocument(_0x39eb4c,_0x3c548b));}return Promise[_0x1500('0x40')](_0x53dc23);})[_0x1500('0x2f')](function(){if(_0x2b2266){return new Promise(function(_0x42a1f3){zipdir(path[_0x1500('0x3a')](_0x493b87,_0xe17f42),{'saveTo':path['join'](_0x493b87,util[_0x1500('0x1e')](_0x1500('0x3f'),_0xe17f42,'zip'))},function(){rimraf(path[_0x1500('0x3a')](_0x493b87,_0xe17f42),function(){});_0x42a1f3(_0x1500('0x41'));});});}})['then'](function(){if(!_0x2b2266)return;rimraf(path[_0x1500('0x3a')](_0x493b87,_0xe17f42),function(){});})[_0x1500('0x2f')](function(){logger['info'](util[_0x1500('0x1e')](_0x1500('0x42'),EXTRACTED_REPORT_ID,_0x1500('0x43')));return analyticExtractedReport(_0x1500('0x44'),_0x2b2266?util[_0x1500('0x1e')](_0x1500('0x3f'),_0xe17f42,_0x2b2266?_0x1500('0x45'):'pdf'):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger['info'](util[_0x1500('0x1e')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,'PDF'));return db[_0x1500('0x13')]['findOne']({'where':{'id':EXTRACTED_REPORT_ID}})['then'](function(_0x3a0c8c){EXTRACTED_REPORT=_0x3a0c8c;return dbH['sequelize'][_0x1500('0x33')](util['format'](_0x1500('0x46'),QUERY),{'type':dbH[_0x1500('0x32')][_0x1500('0x35')][_0x1500('0x36')]});})[_0x1500('0x2f')](extractReport)[_0x1500('0x47')](function(_0x1dea15){logger[_0x1500('0x48')](util['format'](_0x1500('0x49'),EXTRACTED_REPORT_ID,'PDF'),util['inspect'](_0x1dea15,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x1500('0x4a'));})[_0x1500('0x4b')](function(){process[_0x1500('0x4c')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x306329=new PdfPrinter({'Arial':{'normal':__dirname+_0x1500('0x4d'),'bold':__dirname+_0x1500('0x4e'),'italics':__dirname+'/fonts/arial-italic.ttf','bolditalics':__dirname+_0x1500('0x4f')}});return _0x306329;}function getPDFDocDefinitionFromHTML(_0x1d543f,_0x1965a5){var _0x4b2103=util[_0x1500('0x1e')](_0x1500('0x50'),_0x1965a5[_0x1500('0x51')],_0x1965a5[_0x1500('0x52')]);var _0x1b9220=moment()[_0x1500('0x1e')](_0x1500('0x53'))[_0x1500('0x17')]();var _0x231ca3=htmlToPdfmake(_0x1d543f,{'window':window,'tableAutoSize':!![]});return{'content':[_0x231ca3],'defaultStyle':{'font':_0x1500('0x54')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0x1500('0x55'),'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':_0x1500('0x55')}},'header':function(){return[{'text':'Interaction\x20Transcript','style':_0x1500('0x22')}];},'footer':function(_0x1f8753,_0x299afc){return[{'text':util[_0x1500('0x1e')](_0x1500('0x56'),_0x4b2103,_0x1f8753,_0x299afc,_0x1b9220),'style':_0x1500('0x27')}];}};}function writePDFDocument(_0x449b82,_0x30b0cb){return new Promise(function(_0x51c30d,_0x47b4ac){var _0x3fef14=_0x449b82[_0x1500('0x57')](fs[_0x1500('0x58')](_0x30b0cb));_0x3fef14['on']('finish',function(){_0x51c30d(_0x1500('0x59'));});_0x3fef14['on'](_0x1500('0x5a'),function(_0x21e981){_0x47b4ac(_0x21e981);});_0x449b82[_0x1500('0x5b')]();});}exports[_0x1500('0x5c')]=function(_0x41372e,_0x16ed26){var _0x39bd76=getPDFPrinter();var _0x26517a=getPDFDocDefinitionFromHTML(_0x41372e,_0x16ed26);var _0x12c9db=_0x39bd76[_0x1500('0x5d')](_0x26517a);return writePDFDocument(_0x12c9db,_0x16ed26['path'])[_0x1500('0x47')](function(_0x6e662a){throw _0x6e662a;});};