7b17265537d1e07dd4217fc049ae9cb88c2440fa
[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 _0xadde=['map','pick','toString','value','fill','body','push','chunk','keys','forEach','format','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','startDate','endDate','length','pageBreak','before','margin','\x20/\x20','Arial','num','Empty','Setting','split','splitSizePdf','then','isInteger','sequelize','query','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','dirname','basename','existsSync','join','each','flatten','createPdfKitDocument','%s%d.%s','pdf','all','%s.%s','zip','zip\x20finished','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','PDF','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','AnalyticExtractedReport','findOne','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','catch','inspect','Failed','finally','exit','/fonts/arial-bold.ttf','/fonts/arial-italic.ttf','/fonts/arial-bold-italic.ttf','%s\x20#%d','channel','interactionId','center','Interaction\x20Transcript','header','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','footer','pipe','createWriteStream','finish','error','end','createPdfFromHTML','lodash','path','html-to-pdfmake','pdfmake/src/printer','rimraf','jsdom','JSDOM','window','bluebird','../../mysqldb','dbH','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename'];(function(_0x490ef6,_0x2574b4){var _0x1640a7=function(_0x5f09d7){while(--_0x5f09d7){_0x490ef6['push'](_0x490ef6['shift']());}};_0x1640a7(++_0x2574b4);}(_0xadde,0x1ae));var _0xeadd=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xadde[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0xeadd('0x0'));var fs=require('fs');var util=require('util');var path=require(_0xeadd('0x1'));var moment=require('moment');var htmlToPdfmake=require(_0xeadd('0x2'));var PdfPrinter=require(_0xeadd('0x3'));var zipdir=require('zip-dir');var rimraf=require(_0xeadd('0x4'));var JSDOM=require(_0xeadd('0x5'))[_0xeadd('0x6')];var window=new JSDOM('')[_0xeadd('0x7')];var BPromise=require(_0xeadd('0x8'));var db=require(_0xeadd('0x9'))['db'];var dbH=require('../../mysqldb')[_0xeadd('0xa')];var logger=require('../../config/logger')(_0xeadd('0xb'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0xeadd('0xc')][0x3];var PATH=process['argv'][0x4];var NAME=process[_0xeadd('0xc')][0x5];var FORMAT=_0xeadd('0xd');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x508703,_0x3e4387){var _0x3a8cf4={'status':_0x508703};var _0x4a14e1={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x3e4387){_0x3a8cf4[_0xeadd('0xe')]=_0x3e4387;}return db['AnalyticExtractedReport']['update'](_0x3a8cf4,_0x4a14e1);}function getHeaders(_0x2ccec2){return _[_0xeadd('0xf')](_0x2ccec2,function(_0x2efc11){return{'text':_0x2efc11,'style':'tableHeader'};});}function getRows(_0x3f2e34,_0x9abbd7){return _[_0xeadd('0xf')](_0x9abbd7,function(_0x213232){return _(_0x213232)[_0xeadd('0x10')](_0x3f2e34)['map'](function(_0x1c191f){return _0x1c191f?_[_0xeadd('0x11')](_0x1c191f):'';})[_0xeadd('0x12')]();});}function createTable(_0x442c53,_0x16f66c){var _0x24bb8b={'widths':_[_0xeadd('0x13')](Array(_0x442c53['length']),0x91),'heights':function(_0x14a489){return _0x14a489===0x0?'auto':0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x1693e8=getHeaders(_0x442c53);_0x24bb8b[_0xeadd('0x14')][_0xeadd('0x15')](_0x1693e8);var _0x7df301=getRows(_0x442c53,_0x16f66c);_0x24bb8b['body']=_0x24bb8b[_0xeadd('0x14')]['concat'](_0x7df301);return _0x24bb8b;}function createTables(_0x1772d1){var _0x4c1bf8=[];var _0x1d2307=_[_0xeadd('0x16')](Object[_0xeadd('0x17')](_0x1772d1[0x0]),0x5);_0x1d2307[_0xeadd('0x18')](function(_0x1d3674){_0x4c1bf8[_0xeadd('0x15')](createTable(_0x1d3674,_0x1772d1));});return _0x4c1bf8;}function getPDFDocDefinition(_0xa5028e){var _0x11b7ae=util[_0xeadd('0x19')](_0xeadd('0x1a'),NAME,EXTRACTED_REPORT['name'],moment(EXTRACTED_REPORT[_0xeadd('0x1b')])[_0xeadd('0x19')](FORMAT),moment(EXTRACTED_REPORT[_0xeadd('0x1c')])['format'](FORMAT));var _0xb2b61e=[];for(var _0x1f363e=0x0;_0x1f363e<_0xa5028e[_0xeadd('0x1d')];_0x1f363e++){var _0x416a9b=[];if(_0x1f363e===0x0){_0x416a9b[_0xeadd('0x15')]({'text':_0x11b7ae,'style':'header'});}var _0x500fba={'table':_0xa5028e[_0x1f363e]};if(_0x1f363e>0x0){_0x500fba[_0xeadd('0x1e')]=_0xeadd('0x1f');_0x500fba[_0xeadd('0x20')]=[0x0,0x46,0x0,0x0];}_0x416a9b[_0xeadd('0x15')](_0x500fba);_0xb2b61e[_0xeadd('0x15')](_0x416a9b);}return{'pageSize':'A4','pageOrientation':'landscape','content':_0xb2b61e,'footer':function(_0x682b38,_0x5da409){return{'text':_0x682b38[_0xeadd('0x11')]()+_0xeadd('0x21')+_0x5da409,'style':'footer'};},'defaultStyle':{'font':_0xeadd('0x22')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':'black'},'footer':{'alignment':'right','margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x4122e7){var _0xd6b3b2=0x1388;var _0x4f25f1;if(!_0x4122e7[0x0][_0xeadd('0x23')]){return analyticExtractedReport(_0xeadd('0x24'));}return db[_0xeadd('0x25')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xeadd('0x26'),_0xeadd('0x27')]})['then'](function(_0x5637e0){if(_0x5637e0){_0x4f25f1=_0x5637e0;_0xd6b3b2=_0x4f25f1['splitSizePdf']||0x3e8;}})[_0xeadd('0x28')](function(){var _0x55b33b=[];var _0x294207=0x0;if(_0x4f25f1[_0xeadd('0x26')]){if(_0x4122e7&&_0x4122e7[_0xeadd('0x1d')]){var _0x502b9f=_['range'](_0x4122e7[0x0][_0xeadd('0x23')]/_0xd6b3b2);var _0x88673=Number[_0xeadd('0x29')](_0x4122e7[0x0][_0xeadd('0x23')]/_0xd6b3b2)?_0x4122e7[0x0][_0xeadd('0x23')]%_0xd6b3b2:0x0;_0x502b9f[_0xeadd('0x18')](function(_0x93891c){if(_0x93891c>0x0){_0x294207+=_0xd6b3b2;}_0x55b33b[_0xeadd('0x15')](dbH[_0xeadd('0x2a')][_0xeadd('0x2b')](util[_0xeadd('0x19')](_0xeadd('0x2c'),QUERY,_0xd6b3b2,_0x294207),{'type':dbH[_0xeadd('0x2a')][_0xeadd('0x2d')]['SELECT']}));});if(_0x88673>0x0){_0x294207+=_0xd6b3b2;_0x55b33b[_0xeadd('0x15')](dbH['sequelize']['query'](util[_0xeadd('0x19')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x88673,_0x294207),{'type':dbH[_0xeadd('0x2a')][_0xeadd('0x2d')][_0xeadd('0x2e')]}));}}}else{_0x55b33b[_0xeadd('0x15')](dbH[_0xeadd('0x2a')]['query'](QUERY,{'type':dbH[_0xeadd('0x2a')][_0xeadd('0x2d')][_0xeadd('0x2e')]}));}var _0x33400d=path[_0xeadd('0x2f')](PATH);var _0x161d52=path[_0xeadd('0x30')](PATH,'.pdf');var _0x4b95ad=_0x4f25f1[_0xeadd('0x26')]&&_0x55b33b[_0xeadd('0x1d')]>0x1;var _0x43a412=[];if(!fs[_0xeadd('0x31')](path[_0xeadd('0x32')](_0x33400d,_0x161d52))&&_0x4b95ad){fs['mkdirSync'](path[_0xeadd('0x32')](_0x33400d,_0x161d52));}return BPromise[_0xeadd('0x33')](_0x55b33b,function(_0xb11e3a){_0x43a412['push'](_0xb11e3a);})[_0xeadd('0x28')](function(){var _0x3204c5=[];for(var _0x50a254=0x0;_0x50a254<_0x43a412[_0xeadd('0x1d')];_0x50a254+=0x1){var _0x4bbc63=_0x43a412[_0x50a254];var _0x3c026d=createTables(_[_0xeadd('0x34')](_0x4bbc63));var _0x4344e4;var _0x1c1fe8=getPDFDocDefinition(_0x3c026d);var _0x42ee7a=getPDFPrinter();var _0x4795ca=_0x42ee7a[_0xeadd('0x35')](_0x1c1fe8);if(_0x4b95ad){_0x4344e4=path[_0xeadd('0x32')](_0x33400d,_0x161d52,util[_0xeadd('0x19')](_0xeadd('0x36'),_0x161d52,_0x50a254,_0xeadd('0x37')));}else{_0x4344e4=path['join'](_0x33400d,util[_0xeadd('0x19')]('%s.%s',_0x161d52,_0xeadd('0x37')));}_0x3204c5[_0xeadd('0x15')](writePDFDocument(_0x4795ca,_0x4344e4));}return Promise[_0xeadd('0x38')](_0x3204c5);})['then'](function(){if(_0x4b95ad){return new Promise(function(_0xbc0822){zipdir(path[_0xeadd('0x32')](_0x33400d,_0x161d52),{'saveTo':path[_0xeadd('0x32')](_0x33400d,util[_0xeadd('0x19')](_0xeadd('0x39'),_0x161d52,_0xeadd('0x3a')))},function(){rimraf(path[_0xeadd('0x32')](_0x33400d,_0x161d52),function(){});_0xbc0822(_0xeadd('0x3b'));});});}})[_0xeadd('0x28')](function(){if(!_0x4b95ad)return;rimraf(path[_0xeadd('0x32')](_0x33400d,_0x161d52),function(){});})[_0xeadd('0x28')](function(){logger[_0xeadd('0x3c')](util['format'](_0xeadd('0x3d'),EXTRACTED_REPORT_ID,_0xeadd('0x3e')));return analyticExtractedReport('Completed',_0x4b95ad?util['format']('%s.%s',_0x161d52,_0x4b95ad?_0xeadd('0x3a'):_0xeadd('0x37')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger['info'](util[_0xeadd('0x19')](_0xeadd('0x3f'),EXTRACTED_REPORT_ID,'PDF'));return db[_0xeadd('0x40')][_0xeadd('0x41')]({'where':{'id':EXTRACTED_REPORT_ID}})['then'](function(_0x4a3f3f){EXTRACTED_REPORT=_0x4a3f3f;return dbH[_0xeadd('0x2a')][_0xeadd('0x2b')](util[_0xeadd('0x19')](_0xeadd('0x42'),QUERY),{'type':dbH['sequelize'][_0xeadd('0x2d')][_0xeadd('0x2e')]});})[_0xeadd('0x28')](extractReport)[_0xeadd('0x43')](function(_0x338e2d){logger[_0xeadd('0x3c')](util[_0xeadd('0x19')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0xeadd('0x3e')),util[_0xeadd('0x44')](_0x338e2d,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xeadd('0x45'));})[_0xeadd('0x46')](function(){process[_0xeadd('0x47')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x368831=new PdfPrinter({'Arial':{'normal':__dirname+'/fonts/arial-regular.ttf','bold':__dirname+_0xeadd('0x48'),'italics':__dirname+_0xeadd('0x49'),'bolditalics':__dirname+_0xeadd('0x4a')}});return _0x368831;}function getPDFDocDefinitionFromHTML(_0x2318fa,_0x12f5df){var _0x179454=util[_0xeadd('0x19')](_0xeadd('0x4b'),_0x12f5df[_0xeadd('0x4c')],_0x12f5df[_0xeadd('0x4d')]);var _0xf2f6b7=moment()[_0xeadd('0x19')]('YYYY-MM-DD')[_0xeadd('0x11')]();var _0x131306=htmlToPdfmake(_0x2318fa,{'window':window,'tableAutoSize':!![]});return{'content':[_0x131306],'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0xeadd('0x4e'),'margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0xeadd('0x4e'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':_0xeadd('0x4e')}},'header':function(){return[{'text':_0xeadd('0x4f'),'style':_0xeadd('0x50')}];},'footer':function(_0x3417b8,_0x525e3d){return[{'text':util[_0xeadd('0x19')](_0xeadd('0x51'),_0x179454,_0x3417b8,_0x525e3d,_0xf2f6b7),'style':_0xeadd('0x52')}];}};}function writePDFDocument(_0x349925,_0x50d95e){return new Promise(function(_0x4fce92,_0x226050){var _0x205d1a=_0x349925[_0xeadd('0x53')](fs[_0xeadd('0x54')](_0x50d95e));_0x205d1a['on']('finish',function(){_0x4fce92(_0xeadd('0x55'));});_0x205d1a['on'](_0xeadd('0x56'),function(_0xa77bbe){_0x226050(_0xa77bbe);});_0x349925[_0xeadd('0x57')]();});}exports[_0xeadd('0x58')]=function(_0xcc662c,_0x3539df){var _0x1a8a43=getPDFPrinter();var _0x2a7d00=getPDFDocDefinitionFromHTML(_0xcc662c,_0x3539df);var _0x2e9271=_0x1a8a43[_0xeadd('0x35')](_0x2a7d00);return writePDFDocument(_0x2e9271,_0x3539df[_0xeadd('0x1')])[_0xeadd('0x43')](function(_0x4973d){throw _0x4973d;});};