Built motion from commit 616d3211.|2.6.4
[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 _0xedc3=['sequelize','dirname','.pdf','existsSync','join','mkdirSync','flatten','createPdfKitDocument','%s%d.%s','pdf','all','%s.%s','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','PDF','Completed','zip','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-regular.ttf','/fonts/arial-bold.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','util','path','moment','html-to-pdfmake','pdfmake/src/printer','zip-dir','rimraf','jsdom','window','../../mysqldb','../../config/logger','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','update','map','tableHeader','pick','toString','value','fill','length','auto','push','body','concat','chunk','keys','forEach','format','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','startDate','header','pageBreak','before','margin','landscape','footer','Arial','black','num','Setting','find','split','splitSizePdf','then','range','isInteger','query','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT'];(function(_0x25012d,_0x27b1a6){var _0x5347b6=function(_0x4e00f5){while(--_0x4e00f5){_0x25012d['push'](_0x25012d['shift']());}};_0x5347b6(++_0x27b1a6);}(_0xedc3,0x18d));var _0x3edc=function(_0x419163,_0x16976f){_0x419163=_0x419163-0x0;var _0x66cb0f=_0xedc3[_0x419163];return _0x66cb0f;};'use strict';var _=require('lodash');var fs=require('fs');var util=require(_0x3edc('0x0'));var path=require(_0x3edc('0x1'));var moment=require(_0x3edc('0x2'));var htmlToPdfmake=require(_0x3edc('0x3'));var PdfPrinter=require(_0x3edc('0x4'));var zipdir=require(_0x3edc('0x5'));var rimraf=require(_0x3edc('0x6'));var JSDOM=require(_0x3edc('0x7'))['JSDOM'];var window=new JSDOM('')[_0x3edc('0x8')];var BPromise=require('bluebird');var db=require(_0x3edc('0x9'))['db'];var dbH=require(_0x3edc('0x9'))['dbH'];var logger=require(_0x3edc('0xa'))(_0x3edc('0xb'));var EXTRACTED_REPORT_ID=Number(process[_0x3edc('0xc')][0x2]);var QUERY=process['argv'][0x3];var PATH=process[_0x3edc('0xc')][0x4];var NAME=process[_0x3edc('0xc')][0x5];var FORMAT=_0x3edc('0xd');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x3b4aa4,_0x141f93){var _0x28c1dc={'status':_0x3b4aa4};var _0x4db859={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x141f93){_0x28c1dc['savename']=_0x141f93;}return db['AnalyticExtractedReport'][_0x3edc('0xe')](_0x28c1dc,_0x4db859);}function getHeaders(_0x5e4bab){return _[_0x3edc('0xf')](_0x5e4bab,function(_0x4e0e91){return{'text':_0x4e0e91,'style':_0x3edc('0x10')};});}function getRows(_0x14e12d,_0x45971b){return _['map'](_0x45971b,function(_0x27379b){return _(_0x27379b)[_0x3edc('0x11')](_0x14e12d)['map'](function(_0x415572){return _0x415572?_[_0x3edc('0x12')](_0x415572):'';})[_0x3edc('0x13')]();});}function createTable(_0x5e0e40,_0x4dc851){var _0x184945={'widths':_[_0x3edc('0x14')](Array(_0x5e0e40[_0x3edc('0x15')]),0x91),'heights':function(_0x515779){return _0x515779===0x0?_0x3edc('0x16'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x5ab373=getHeaders(_0x5e0e40);_0x184945['body'][_0x3edc('0x17')](_0x5ab373);var _0x31bb5f=getRows(_0x5e0e40,_0x4dc851);_0x184945[_0x3edc('0x18')]=_0x184945['body'][_0x3edc('0x19')](_0x31bb5f);return _0x184945;}function createTables(_0x247177){var _0x658f2b=[];var _0x4bb63d=_[_0x3edc('0x1a')](Object[_0x3edc('0x1b')](_0x247177[0x0]),0x5);_0x4bb63d[_0x3edc('0x1c')](function(_0x37c0c8){_0x658f2b[_0x3edc('0x17')](createTable(_0x37c0c8,_0x247177));});return _0x658f2b;}function getPDFDocDefinition(_0x190cd2){var _0x9e554c=util[_0x3edc('0x1d')](_0x3edc('0x1e'),NAME,EXTRACTED_REPORT[_0x3edc('0x1f')],moment(EXTRACTED_REPORT[_0x3edc('0x20')])[_0x3edc('0x1d')](FORMAT),moment(EXTRACTED_REPORT['endDate'])['format'](FORMAT));var _0x531a00=[];for(var _0x4a3466=0x0;_0x4a3466<_0x190cd2[_0x3edc('0x15')];_0x4a3466++){var _0x5a3bfb=[];if(_0x4a3466===0x0){_0x5a3bfb['push']({'text':_0x9e554c,'style':_0x3edc('0x21')});}var _0x50de1d={'table':_0x190cd2[_0x4a3466]};if(_0x4a3466>0x0){_0x50de1d[_0x3edc('0x22')]=_0x3edc('0x23');_0x50de1d[_0x3edc('0x24')]=[0x0,0x46,0x0,0x0];}_0x5a3bfb[_0x3edc('0x17')](_0x50de1d);_0x531a00[_0x3edc('0x17')](_0x5a3bfb);}return{'pageSize':'A4','pageOrientation':_0x3edc('0x25'),'content':_0x531a00,'footer':function(_0x4079e6,_0x126263){return{'text':_0x4079e6[_0x3edc('0x12')]()+'\x20/\x20'+_0x126263,'style':_0x3edc('0x26')};},'defaultStyle':{'font':_0x3edc('0x27')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':_0x3edc('0x28')},'footer':{'alignment':'right','margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x42d542){var _0x4a68b5=0x1388;var _0x5d9591;if(!_0x42d542[0x0][_0x3edc('0x29')]){return analyticExtractedReport('Empty');}return db[_0x3edc('0x2a')][_0x3edc('0x2b')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x3edc('0x2c'),_0x3edc('0x2d')]})['then'](function(_0x42cc81){if(_0x42cc81){_0x5d9591=_0x42cc81;_0x4a68b5=_0x5d9591[_0x3edc('0x2d')]||0x3e8;}})[_0x3edc('0x2e')](function(){var _0x2818bd=[];var _0x449dad=0x0;if(_0x5d9591['split']){if(_0x42d542&&_0x42d542['length']){var _0x201aae=_[_0x3edc('0x2f')](_0x42d542[0x0][_0x3edc('0x29')]/_0x4a68b5);var _0x41cf94=Number[_0x3edc('0x30')](_0x42d542[0x0][_0x3edc('0x29')]/_0x4a68b5)?_0x42d542[0x0][_0x3edc('0x29')]%_0x4a68b5:0x0;_0x201aae[_0x3edc('0x1c')](function(_0x4336cf){if(_0x4336cf>0x0){_0x449dad+=_0x4a68b5;}_0x2818bd[_0x3edc('0x17')](dbH['sequelize'][_0x3edc('0x31')](util[_0x3edc('0x1d')](_0x3edc('0x32'),QUERY,_0x4a68b5,_0x449dad),{'type':dbH['sequelize'][_0x3edc('0x33')][_0x3edc('0x34')]}));});if(_0x41cf94>0x0){_0x449dad+=_0x4a68b5;_0x2818bd[_0x3edc('0x17')](dbH[_0x3edc('0x35')][_0x3edc('0x31')](util['format']('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x41cf94,_0x449dad),{'type':dbH[_0x3edc('0x35')][_0x3edc('0x33')][_0x3edc('0x34')]}));}}}else{_0x2818bd['push'](dbH[_0x3edc('0x35')][_0x3edc('0x31')](QUERY,{'type':dbH['sequelize'][_0x3edc('0x33')][_0x3edc('0x34')]}));}var _0x221b7a=path[_0x3edc('0x36')](PATH);var _0x2ee90a=path['basename'](PATH,_0x3edc('0x37'));var _0x2238c0=_0x5d9591[_0x3edc('0x2c')]&&_0x2818bd['length']>0x1;var _0xf81247=[];if(!fs[_0x3edc('0x38')](path[_0x3edc('0x39')](_0x221b7a,_0x2ee90a))&&_0x2238c0){fs[_0x3edc('0x3a')](path[_0x3edc('0x39')](_0x221b7a,_0x2ee90a));}return BPromise['each'](_0x2818bd,function(_0xdb10b4){_0xf81247[_0x3edc('0x17')](_0xdb10b4);})[_0x3edc('0x2e')](function(){var _0x4fe6d6=[];for(var _0x519dbf=0x0;_0x519dbf<_0xf81247[_0x3edc('0x15')];_0x519dbf+=0x1){var _0x3b7404=_0xf81247[_0x519dbf];var _0x579c8e=createTables(_[_0x3edc('0x3b')](_0x3b7404));var _0x4531e5;var _0x2aade8=getPDFDocDefinition(_0x579c8e);var _0x543054=getPDFPrinter();var _0x2bd860=_0x543054[_0x3edc('0x3c')](_0x2aade8);if(_0x2238c0){_0x4531e5=path['join'](_0x221b7a,_0x2ee90a,util[_0x3edc('0x1d')](_0x3edc('0x3d'),_0x2ee90a,_0x519dbf,'pdf'));}else{_0x4531e5=path[_0x3edc('0x39')](_0x221b7a,util['format']('%s.%s',_0x2ee90a,_0x3edc('0x3e')));}_0x4fe6d6[_0x3edc('0x17')](writePDFDocument(_0x2bd860,_0x4531e5));}return Promise[_0x3edc('0x3f')](_0x4fe6d6);})['then'](function(){if(_0x2238c0){return new Promise(function(_0x4a2f69){zipdir(path[_0x3edc('0x39')](_0x221b7a,_0x2ee90a),{'saveTo':path[_0x3edc('0x39')](_0x221b7a,util[_0x3edc('0x1d')](_0x3edc('0x40'),_0x2ee90a,'zip'))},function(){rimraf(path[_0x3edc('0x39')](_0x221b7a,_0x2ee90a),function(){});_0x4a2f69(_0x3edc('0x41'));});});}})[_0x3edc('0x2e')](function(){if(!_0x2238c0)return;rimraf(path['join'](_0x221b7a,_0x2ee90a),function(){});})[_0x3edc('0x2e')](function(){logger['info'](util[_0x3edc('0x1d')](_0x3edc('0x42'),EXTRACTED_REPORT_ID,_0x3edc('0x43')));return analyticExtractedReport(_0x3edc('0x44'),_0x2238c0?util['format'](_0x3edc('0x40'),_0x2ee90a,_0x2238c0?_0x3edc('0x45'):_0x3edc('0x3e')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger['info'](util['format']('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,'PDF'));return db['AnalyticExtractedReport'][_0x3edc('0x46')]({'where':{'id':EXTRACTED_REPORT_ID}})[_0x3edc('0x2e')](function(_0x2c8887){EXTRACTED_REPORT=_0x2c8887;return dbH[_0x3edc('0x35')][_0x3edc('0x31')](util[_0x3edc('0x1d')](_0x3edc('0x47'),QUERY),{'type':dbH[_0x3edc('0x35')][_0x3edc('0x33')][_0x3edc('0x34')]});})['then'](extractReport)[_0x3edc('0x48')](function(_0x503eaf){logger['info'](util[_0x3edc('0x1d')](_0x3edc('0x49'),EXTRACTED_REPORT_ID,_0x3edc('0x43')),util[_0x3edc('0x4a')](_0x503eaf,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})['finally'](function(){process[_0x3edc('0x4b')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x133a70=new PdfPrinter({'Arial':{'normal':__dirname+_0x3edc('0x4c'),'bold':__dirname+_0x3edc('0x4d'),'italics':__dirname+'/fonts/arial-italic.ttf','bolditalics':__dirname+_0x3edc('0x4e')}});return _0x133a70;}function getPDFDocDefinitionFromHTML(_0x413d22,_0x33320e){var _0x5cc1d2=util[_0x3edc('0x1d')](_0x3edc('0x4f'),_0x33320e['channel'],_0x33320e[_0x3edc('0x50')]);var _0x400ef6=moment()[_0x3edc('0x1d')](_0x3edc('0x51'))[_0x3edc('0x12')]();var _0x2aaf0f=htmlToPdfmake(_0x413d22,{'window':window,'tableAutoSize':!![]});return{'content':[_0x2aaf0f],'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0x3edc('0x52'),'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':_0x3edc('0x52')}},'header':function(){return[{'text':_0x3edc('0x53'),'style':'header'}];},'footer':function(_0x49be42,_0x22ed26){return[{'text':util[_0x3edc('0x1d')](_0x3edc('0x54'),_0x5cc1d2,_0x49be42,_0x22ed26,_0x400ef6),'style':_0x3edc('0x26')}];}};}function writePDFDocument(_0x1f8d53,_0x5241f2){return new Promise(function(_0x3c0a13,_0x199350){var _0x1a7944=_0x1f8d53[_0x3edc('0x55')](fs[_0x3edc('0x56')](_0x5241f2));_0x1a7944['on'](_0x3edc('0x57'),function(){_0x3c0a13('finish');});_0x1a7944['on'](_0x3edc('0x58'),function(_0x41a58f){_0x199350(_0x41a58f);});_0x1f8d53[_0x3edc('0x59')]();});}exports['createPdfFromHTML']=function(_0x3a51ad,_0x15dd05){var _0x302ab9=getPDFPrinter();var _0x5be928=getPDFDocDefinitionFromHTML(_0x3a51ad,_0x15dd05);var _0x3bdb94=_0x302ab9[_0x3edc('0x3c')](_0x5be928);return writePDFDocument(_0x3bdb94,_0x15dd05['path'])['catch'](function(_0x49e804){throw _0x49e804;});};