b1e9a68bf83ce7d32d324d0c8654e1d44c23f450
[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 _0xc772=['query','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','dirname','basename','.pdf','join','mkdirSync','each','createPdfKitDocument','%s%d.%s','pdf','all','%s.%s','zip\x20finished','info','PDF','Completed','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','finally','exit','/fonts/arial-regular.ttf','/fonts/arial-bold.ttf','/fonts/arial-bold-italic.ttf','%s\x20#%d','interactionId','center','Interaction\x20Transcript','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','pipe','createWriteStream','error','end','createPdfFromHTML','lodash','util','html-to-pdfmake','pdfmake/src/printer','zip-dir','rimraf','jsdom','window','bluebird','../../mysqldb','dbH','../../config/logger','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','AnalyticExtractedReport','map','tableHeader','length','auto','body','push','concat','chunk','keys','forEach','format','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','startDate','endDate','header','pageBreak','landscape','toString','\x20/\x20','footer','Arial','num','Empty','Setting','find','split','splitSizePdf','then','range','isInteger','sequelize'];(function(_0x596944,_0x30c792){var _0x4a32b2=function(_0x9747c8){while(--_0x9747c8){_0x596944['push'](_0x596944['shift']());}};_0x4a32b2(++_0x30c792);}(_0xc772,0x188));var _0x2c77=function(_0x1308cd,_0x216483){_0x1308cd=_0x1308cd-0x0;var _0x25f630=_0xc772[_0x1308cd];return _0x25f630;};'use strict';var _=require(_0x2c77('0x0'));var fs=require('fs');var util=require(_0x2c77('0x1'));var path=require('path');var moment=require('moment');var htmlToPdfmake=require(_0x2c77('0x2'));var PdfPrinter=require(_0x2c77('0x3'));var zipdir=require(_0x2c77('0x4'));var rimraf=require(_0x2c77('0x5'));var JSDOM=require(_0x2c77('0x6'))['JSDOM'];var window=new JSDOM('')[_0x2c77('0x7')];var BPromise=require(_0x2c77('0x8'));var db=require(_0x2c77('0x9'))['db'];var dbH=require(_0x2c77('0x9'))[_0x2c77('0xa')];var logger=require(_0x2c77('0xb'))('analytics');var EXTRACTED_REPORT_ID=Number(process[_0x2c77('0xc')][0x2]);var QUERY=process[_0x2c77('0xc')][0x3];var PATH=process[_0x2c77('0xc')][0x4];var NAME=process[_0x2c77('0xc')][0x5];var FORMAT=_0x2c77('0xd');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x373eff,_0x275913){var _0x5aae21={'status':_0x373eff};var _0x4e73a9={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x275913){_0x5aae21[_0x2c77('0xe')]=_0x275913;}return db[_0x2c77('0xf')]['update'](_0x5aae21,_0x4e73a9);}function getHeaders(_0x4a12a8){return _[_0x2c77('0x10')](_0x4a12a8,function(_0x28568d){return{'text':_0x28568d,'style':_0x2c77('0x11')};});}function getRows(_0x51d773,_0x2936af){return _['map'](_0x2936af,function(_0x3d0f71){return _(_0x3d0f71)['pick'](_0x51d773)[_0x2c77('0x10')](function(_0x573fda){return _0x573fda?_['toString'](_0x573fda):'';})['value']();});}function createTable(_0x140698,_0x433bca){var _0x10a48f={'widths':_['fill'](Array(_0x140698[_0x2c77('0x12')]),0x91),'heights':function(_0x11b319){return _0x11b319===0x0?_0x2c77('0x13'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x2aa092=getHeaders(_0x140698);_0x10a48f[_0x2c77('0x14')][_0x2c77('0x15')](_0x2aa092);var _0x204efc=getRows(_0x140698,_0x433bca);_0x10a48f['body']=_0x10a48f[_0x2c77('0x14')][_0x2c77('0x16')](_0x204efc);return _0x10a48f;}function createTables(_0x2f3db4){var _0x4cde08=[];var _0x26eb4a=_[_0x2c77('0x17')](Object[_0x2c77('0x18')](_0x2f3db4[0x0]),0x5);_0x26eb4a[_0x2c77('0x19')](function(_0x170b0d){_0x4cde08[_0x2c77('0x15')](createTable(_0x170b0d,_0x2f3db4));});return _0x4cde08;}function getPDFDocDefinition(_0x26b61b){var _0x407730=util[_0x2c77('0x1a')](_0x2c77('0x1b'),NAME,EXTRACTED_REPORT[_0x2c77('0x1c')],moment(EXTRACTED_REPORT[_0x2c77('0x1d')])[_0x2c77('0x1a')](FORMAT),moment(EXTRACTED_REPORT[_0x2c77('0x1e')])[_0x2c77('0x1a')](FORMAT));var _0x5779d4=[];for(var _0x5ddba7=0x0;_0x5ddba7<_0x26b61b['length'];_0x5ddba7++){var _0x562f53=[];if(_0x5ddba7===0x0){_0x562f53[_0x2c77('0x15')]({'text':_0x407730,'style':_0x2c77('0x1f')});}var _0x555350={'table':_0x26b61b[_0x5ddba7]};if(_0x5ddba7>0x0){_0x555350[_0x2c77('0x20')]='before';_0x555350['margin']=[0x0,0x46,0x0,0x0];}_0x562f53[_0x2c77('0x15')](_0x555350);_0x5779d4[_0x2c77('0x15')](_0x562f53);}return{'pageSize':'A4','pageOrientation':_0x2c77('0x21'),'content':_0x5779d4,'footer':function(_0x135d5d,_0x18c31c){return{'text':_0x135d5d[_0x2c77('0x22')]()+_0x2c77('0x23')+_0x18c31c,'style':_0x2c77('0x24')};},'defaultStyle':{'font':_0x2c77('0x25')},'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(_0x4d0973){var _0xb15b32=0x1388;var _0x179970;if(!_0x4d0973[0x0][_0x2c77('0x26')]){return analyticExtractedReport(_0x2c77('0x27'));}return db[_0x2c77('0x28')][_0x2c77('0x29')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x2c77('0x2a'),_0x2c77('0x2b')]})[_0x2c77('0x2c')](function(_0x2af745){if(_0x2af745){_0x179970=_0x2af745;_0xb15b32=_0x179970[_0x2c77('0x2b')]||0x3e8;}})[_0x2c77('0x2c')](function(){var _0x494c0e=[];var _0x51961f=0x0;if(_0x179970[_0x2c77('0x2a')]){if(_0x4d0973&&_0x4d0973[_0x2c77('0x12')]){var _0x766e76=_[_0x2c77('0x2d')](_0x4d0973[0x0][_0x2c77('0x26')]/_0xb15b32);var _0x4d2d20=Number[_0x2c77('0x2e')](_0x4d0973[0x0][_0x2c77('0x26')]/_0xb15b32)?_0x4d0973[0x0]['num']%_0xb15b32:0x0;_0x766e76['forEach'](function(_0x1428e2){if(_0x1428e2>0x0){_0x51961f+=_0xb15b32;}_0x494c0e[_0x2c77('0x15')](dbH[_0x2c77('0x2f')][_0x2c77('0x30')](util['format'](_0x2c77('0x31'),QUERY,_0xb15b32,_0x51961f),{'type':dbH[_0x2c77('0x2f')]['QueryTypes']['SELECT']}));});if(_0x4d2d20>0x0){_0x51961f+=_0xb15b32;_0x494c0e['push'](dbH[_0x2c77('0x2f')][_0x2c77('0x30')](util['format'](_0x2c77('0x31'),QUERY,_0x4d2d20,_0x51961f),{'type':dbH['sequelize'][_0x2c77('0x32')][_0x2c77('0x33')]}));}}}else{_0x494c0e[_0x2c77('0x15')](dbH[_0x2c77('0x2f')][_0x2c77('0x30')](QUERY,{'type':dbH[_0x2c77('0x2f')][_0x2c77('0x32')][_0x2c77('0x33')]}));}var _0x249aab=path[_0x2c77('0x34')](PATH);var _0x40e556=path[_0x2c77('0x35')](PATH,_0x2c77('0x36'));var _0x4132c8=_0x179970[_0x2c77('0x2a')]&&_0x494c0e[_0x2c77('0x12')]>0x1;var _0xbfdc1d=[];if(!fs['existsSync'](path[_0x2c77('0x37')](_0x249aab,_0x40e556))&&_0x4132c8){fs[_0x2c77('0x38')](path[_0x2c77('0x37')](_0x249aab,_0x40e556));}return BPromise[_0x2c77('0x39')](_0x494c0e,function(_0x2f13c3){_0xbfdc1d[_0x2c77('0x15')](_0x2f13c3);})[_0x2c77('0x2c')](function(){var _0x88ec16=[];for(var _0x227939=0x0;_0x227939<_0xbfdc1d[_0x2c77('0x12')];_0x227939+=0x1){var _0x40b2e2=_0xbfdc1d[_0x227939];var _0x1d3789=createTables(_['flatten'](_0x40b2e2));var _0x30de4f;var _0x295529=getPDFDocDefinition(_0x1d3789);var _0x582485=getPDFPrinter();var _0x1a90b5=_0x582485[_0x2c77('0x3a')](_0x295529);if(_0x4132c8){_0x30de4f=path['join'](_0x249aab,_0x40e556,util['format'](_0x2c77('0x3b'),_0x40e556,_0x227939,_0x2c77('0x3c')));}else{_0x30de4f=path[_0x2c77('0x37')](_0x249aab,util[_0x2c77('0x1a')]('%s.%s',_0x40e556,_0x2c77('0x3c')));}_0x88ec16[_0x2c77('0x15')](writePDFDocument(_0x1a90b5,_0x30de4f));}return Promise[_0x2c77('0x3d')](_0x88ec16);})['then'](function(){if(_0x4132c8){return new Promise(function(_0x48c3e5){zipdir(path[_0x2c77('0x37')](_0x249aab,_0x40e556),{'saveTo':path[_0x2c77('0x37')](_0x249aab,util[_0x2c77('0x1a')](_0x2c77('0x3e'),_0x40e556,'zip'))},function(){rimraf(path[_0x2c77('0x37')](_0x249aab,_0x40e556),function(){});_0x48c3e5(_0x2c77('0x3f'));});});}})[_0x2c77('0x2c')](function(){if(!_0x4132c8)return;rimraf(path['join'](_0x249aab,_0x40e556),function(){});})[_0x2c77('0x2c')](function(){logger[_0x2c77('0x40')](util[_0x2c77('0x1a')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0x2c77('0x41')));return analyticExtractedReport(_0x2c77('0x42'),_0x4132c8?util['format']('%s.%s',_0x40e556,_0x4132c8?'zip':_0x2c77('0x3c')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0x2c77('0x40')](util[_0x2c77('0x1a')](_0x2c77('0x43'),EXTRACTED_REPORT_ID,_0x2c77('0x41')));return db[_0x2c77('0xf')]['findOne']({'where':{'id':EXTRACTED_REPORT_ID}})[_0x2c77('0x2c')](function(_0x4febc1){EXTRACTED_REPORT=_0x4febc1;return dbH['sequelize'][_0x2c77('0x30')](util[_0x2c77('0x1a')](_0x2c77('0x44'),QUERY),{'type':dbH[_0x2c77('0x2f')][_0x2c77('0x32')][_0x2c77('0x33')]});})[_0x2c77('0x2c')](extractReport)[_0x2c77('0x45')](function(_0x284a9f){logger[_0x2c77('0x40')](util['format'](_0x2c77('0x46'),EXTRACTED_REPORT_ID,_0x2c77('0x41')),util[_0x2c77('0x47')](_0x284a9f,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x2c77('0x48'));})[_0x2c77('0x49')](function(){process[_0x2c77('0x4a')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x4276d5=new PdfPrinter({'Arial':{'normal':__dirname+_0x2c77('0x4b'),'bold':__dirname+_0x2c77('0x4c'),'italics':__dirname+'/fonts/arial-italic.ttf','bolditalics':__dirname+_0x2c77('0x4d')}});return _0x4276d5;}function getPDFDocDefinitionFromHTML(_0x1500d6,_0x52502c){var _0x50f67d=util[_0x2c77('0x1a')](_0x2c77('0x4e'),_0x52502c['channel'],_0x52502c[_0x2c77('0x4f')]);var _0x4d1975=moment()[_0x2c77('0x1a')]('YYYY-MM-DD')[_0x2c77('0x22')]();var _0x431b5c=htmlToPdfmake(_0x1500d6,{'window':window,'tableAutoSize':!![]});return{'content':[_0x431b5c],'defaultStyle':{'font':_0x2c77('0x25')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0x2c77('0x50'),'margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0x2c77('0x50'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':_0x2c77('0x50')}},'header':function(){return[{'text':_0x2c77('0x51'),'style':_0x2c77('0x1f')}];},'footer':function(_0x37bff8,_0x1cfa9a){return[{'text':util[_0x2c77('0x1a')](_0x2c77('0x52'),_0x50f67d,_0x37bff8,_0x1cfa9a,_0x4d1975),'style':_0x2c77('0x24')}];}};}function writePDFDocument(_0x2eba0d,_0x14daff){return new Promise(function(_0xe791c8,_0x3101ec){var _0x3bbbd0=_0x2eba0d[_0x2c77('0x53')](fs[_0x2c77('0x54')](_0x14daff));_0x3bbbd0['on']('finish',function(){_0xe791c8('finish');});_0x3bbbd0['on'](_0x2c77('0x55'),function(_0x3b90a1){_0x3101ec(_0x3b90a1);});_0x2eba0d[_0x2c77('0x56')]();});}exports[_0x2c77('0x57')]=function(_0x56d294,_0xb6bb9){var _0x5f1600=getPDFPrinter();var _0xce8000=getPDFDocDefinitionFromHTML(_0x56d294,_0xb6bb9);var _0x1b0de9=_0x5f1600[_0x2c77('0x3a')](_0xce8000);return writePDFDocument(_0x1b0de9,_0xb6bb9['path'])[_0x2c77('0x45')](function(_0x45b63d){throw _0x45b63d;});};