56c0c9580f6f9e21ef922f1f0af1998353678824
[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 _0x4db4=['then','range','forEach','%s\x20limit\x20%d\x20OFFSET\x20%d','sequelize','QueryTypes','SELECT','query','basename','.pdf','existsSync','join','mkdirSync','each','flatten','createPdfKitDocument','%s%d.%s','pdf','%s.%s','all','zip','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','PDF','info','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','findOne','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','inspect','Failed','finally','exit','/fonts/arial-regular.ttf','/fonts/arial-bold.ttf','/fonts/arial-italic.ttf','/fonts/arial-bold-italic.ttf','%s\x20#%d','interactionId','YYYY-MM-DD','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','pipe','createWriteStream','finish','error','createPdfFromHTML','lodash','path','moment','pdfmake/src/printer','zip-dir','jsdom','JSDOM','window','bluebird','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','map','pick','value','length','body','push','concat','chunk','keys','format','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','startDate','header','pageBreak','margin','landscape','toString','\x20/\x20','footer','Arial','black','right','num','Empty','Setting','find','split','splitSizePdf'];(function(_0x2be8c2,_0x14a4b5){var _0x97f531=function(_0xcee58d){while(--_0xcee58d){_0x2be8c2['push'](_0x2be8c2['shift']());}};_0x97f531(++_0x14a4b5);}(_0x4db4,0x195));var _0x44db=function(_0x1938d7,_0x52cf17){_0x1938d7=_0x1938d7-0x0;var _0x36f41d=_0x4db4[_0x1938d7];return _0x36f41d;};'use strict';var _=require(_0x44db('0x0'));var fs=require('fs');var util=require('util');var path=require(_0x44db('0x1'));var moment=require(_0x44db('0x2'));var htmlToPdfmake=require('html-to-pdfmake');var PdfPrinter=require(_0x44db('0x3'));var zipdir=require(_0x44db('0x4'));var rimraf=require('rimraf');var JSDOM=require(_0x44db('0x5'))[_0x44db('0x6')];var window=new JSDOM('')[_0x44db('0x7')];var BPromise=require(_0x44db('0x8'));var db=require('../../mysqldb')['db'];var dbH=require(_0x44db('0x9'))[_0x44db('0xa')];var logger=require(_0x44db('0xb'))(_0x44db('0xc'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0x44db('0xd')][0x3];var PATH=process[_0x44db('0xd')][0x4];var NAME=process[_0x44db('0xd')][0x5];var FORMAT='MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a';var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x2c0edc,_0x3ab6f6){var _0x17d7df={'status':_0x2c0edc};var _0x2a4ddd={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x3ab6f6){_0x17d7df[_0x44db('0xe')]=_0x3ab6f6;}return db[_0x44db('0xf')]['update'](_0x17d7df,_0x2a4ddd);}function getHeaders(_0x13549f){return _[_0x44db('0x10')](_0x13549f,function(_0xcefde1){return{'text':_0xcefde1,'style':'tableHeader'};});}function getRows(_0x23f0a7,_0x583ba5){return _[_0x44db('0x10')](_0x583ba5,function(_0x3f3097){return _(_0x3f3097)[_0x44db('0x11')](_0x23f0a7)[_0x44db('0x10')](function(_0x205739){return _0x205739?_['toString'](_0x205739):'';})[_0x44db('0x12')]();});}function createTable(_0x521b8d,_0xbfe817){var _0xc2d8b0={'widths':_['fill'](Array(_0x521b8d[_0x44db('0x13')]),0x91),'heights':function(_0x517736){return _0x517736===0x0?'auto':0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0xba4c11=getHeaders(_0x521b8d);_0xc2d8b0[_0x44db('0x14')][_0x44db('0x15')](_0xba4c11);var _0x5511f9=getRows(_0x521b8d,_0xbfe817);_0xc2d8b0[_0x44db('0x14')]=_0xc2d8b0[_0x44db('0x14')][_0x44db('0x16')](_0x5511f9);return _0xc2d8b0;}function createTables(_0x44a220){var _0x1f2279=[];var _0x443684=_[_0x44db('0x17')](Object[_0x44db('0x18')](_0x44a220[0x0]),0x5);_0x443684['forEach'](function(_0x11b8f3){_0x1f2279['push'](createTable(_0x11b8f3,_0x44a220));});return _0x1f2279;}function getPDFDocDefinition(_0x52d4bb){var _0x27dc19=util[_0x44db('0x19')](_0x44db('0x1a'),NAME,EXTRACTED_REPORT[_0x44db('0x1b')],moment(EXTRACTED_REPORT[_0x44db('0x1c')])['format'](FORMAT),moment(EXTRACTED_REPORT['endDate'])[_0x44db('0x19')](FORMAT));var _0x179021=[];for(var _0x34d81b=0x0;_0x34d81b<_0x52d4bb['length'];_0x34d81b++){var _0x3a5ea0=[];if(_0x34d81b===0x0){_0x3a5ea0[_0x44db('0x15')]({'text':_0x27dc19,'style':_0x44db('0x1d')});}var _0x2fb8d6={'table':_0x52d4bb[_0x34d81b]};if(_0x34d81b>0x0){_0x2fb8d6[_0x44db('0x1e')]='before';_0x2fb8d6[_0x44db('0x1f')]=[0x0,0x46,0x0,0x0];}_0x3a5ea0[_0x44db('0x15')](_0x2fb8d6);_0x179021[_0x44db('0x15')](_0x3a5ea0);}return{'pageSize':'A4','pageOrientation':_0x44db('0x20'),'content':_0x179021,'footer':function(_0x5c9a7b,_0x1a1194){return{'text':_0x5c9a7b[_0x44db('0x21')]()+_0x44db('0x22')+_0x1a1194,'style':_0x44db('0x23')};},'defaultStyle':{'font':_0x44db('0x24')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':_0x44db('0x25')},'footer':{'alignment':_0x44db('0x26'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x22e39b){var _0x4baa29=0x1388;var _0x202509;if(!_0x22e39b[0x0][_0x44db('0x27')]){return analyticExtractedReport(_0x44db('0x28'));}return db[_0x44db('0x29')][_0x44db('0x2a')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x44db('0x2b'),_0x44db('0x2c')]})[_0x44db('0x2d')](function(_0x40c95c){if(_0x40c95c){_0x202509=_0x40c95c;_0x4baa29=_0x202509[_0x44db('0x2c')]||0x3e8;}})['then'](function(){var _0x209bad=[];var _0x3daa66=0x0;if(_0x202509[_0x44db('0x2b')]){if(_0x22e39b&&_0x22e39b[_0x44db('0x13')]){var _0x5797cf=_[_0x44db('0x2e')](_0x22e39b[0x0]['num']/_0x4baa29);var _0x42818a=Number['isInteger'](_0x22e39b[0x0]['num']/_0x4baa29)?_0x22e39b[0x0][_0x44db('0x27')]%_0x4baa29:0x0;_0x5797cf[_0x44db('0x2f')](function(_0x2511d6){if(_0x2511d6>0x0){_0x3daa66+=_0x4baa29;}_0x209bad[_0x44db('0x15')](dbH['sequelize']['query'](util[_0x44db('0x19')](_0x44db('0x30'),QUERY,_0x4baa29,_0x3daa66),{'type':dbH[_0x44db('0x31')][_0x44db('0x32')][_0x44db('0x33')]}));});if(_0x42818a>0x0){_0x3daa66+=_0x4baa29;_0x209bad[_0x44db('0x15')](dbH[_0x44db('0x31')]['query'](util[_0x44db('0x19')](_0x44db('0x30'),QUERY,_0x42818a,_0x3daa66),{'type':dbH[_0x44db('0x31')][_0x44db('0x32')][_0x44db('0x33')]}));}}}else{_0x209bad[_0x44db('0x15')](dbH[_0x44db('0x31')][_0x44db('0x34')](QUERY,{'type':dbH['sequelize'][_0x44db('0x32')][_0x44db('0x33')]}));}var _0x4dc2ef=path['dirname'](PATH);var _0x3b4e41=path[_0x44db('0x35')](PATH,_0x44db('0x36'));var _0x4add37=_0x202509[_0x44db('0x2b')]&&_0x209bad['length']>0x1;var _0x53bb50=[];if(!fs[_0x44db('0x37')](path[_0x44db('0x38')](_0x4dc2ef,_0x3b4e41))&&_0x4add37){fs[_0x44db('0x39')](path['join'](_0x4dc2ef,_0x3b4e41));}return BPromise[_0x44db('0x3a')](_0x209bad,function(_0x3bb549){_0x53bb50['push'](_0x3bb549);})[_0x44db('0x2d')](function(){var _0x25e372=[];for(var _0x4f5d73=0x0;_0x4f5d73<_0x53bb50[_0x44db('0x13')];_0x4f5d73+=0x1){var _0x59c05f=_0x53bb50[_0x4f5d73];var _0x2d6dd0=createTables(_[_0x44db('0x3b')](_0x59c05f));var _0x4db22e;var _0x297f68=getPDFDocDefinition(_0x2d6dd0);var _0x180307=getPDFPrinter();var _0x38b246=_0x180307[_0x44db('0x3c')](_0x297f68);if(_0x4add37){_0x4db22e=path[_0x44db('0x38')](_0x4dc2ef,_0x3b4e41,util[_0x44db('0x19')](_0x44db('0x3d'),_0x3b4e41,_0x4f5d73,_0x44db('0x3e')));}else{_0x4db22e=path['join'](_0x4dc2ef,util[_0x44db('0x19')](_0x44db('0x3f'),_0x3b4e41,_0x44db('0x3e')));}_0x25e372['push'](writePDFDocument(_0x38b246,_0x4db22e));}return Promise[_0x44db('0x40')](_0x25e372);})[_0x44db('0x2d')](function(){if(_0x4add37){return new Promise(function(_0x578eb9){zipdir(path['join'](_0x4dc2ef,_0x3b4e41),{'saveTo':path[_0x44db('0x38')](_0x4dc2ef,util[_0x44db('0x19')](_0x44db('0x3f'),_0x3b4e41,_0x44db('0x41')))},function(){rimraf(path[_0x44db('0x38')](_0x4dc2ef,_0x3b4e41),function(){});_0x578eb9(_0x44db('0x42'));});});}})[_0x44db('0x2d')](function(){if(!_0x4add37)return;rimraf(path[_0x44db('0x38')](_0x4dc2ef,_0x3b4e41),function(){});})[_0x44db('0x2d')](function(){logger['info'](util[_0x44db('0x19')](_0x44db('0x43'),EXTRACTED_REPORT_ID,_0x44db('0x44')));return analyticExtractedReport('Completed',_0x4add37?util['format'](_0x44db('0x3f'),_0x3b4e41,_0x4add37?'zip':'pdf'):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0x44db('0x45')](util['format'](_0x44db('0x46'),EXTRACTED_REPORT_ID,_0x44db('0x44')));return db['AnalyticExtractedReport'][_0x44db('0x47')]({'where':{'id':EXTRACTED_REPORT_ID}})['then'](function(_0x29c8df){EXTRACTED_REPORT=_0x29c8df;return dbH[_0x44db('0x31')][_0x44db('0x34')](util[_0x44db('0x19')](_0x44db('0x48'),QUERY),{'type':dbH[_0x44db('0x31')]['QueryTypes'][_0x44db('0x33')]});})['then'](extractReport)['catch'](function(_0x362708){logger[_0x44db('0x45')](util['format']('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x44db('0x44')),util[_0x44db('0x49')](_0x362708,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x44db('0x4a'));})[_0x44db('0x4b')](function(){process[_0x44db('0x4c')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x7e89c8=new PdfPrinter({'Arial':{'normal':__dirname+_0x44db('0x4d'),'bold':__dirname+_0x44db('0x4e'),'italics':__dirname+_0x44db('0x4f'),'bolditalics':__dirname+_0x44db('0x50')}});return _0x7e89c8;}function getPDFDocDefinitionFromHTML(_0x33e1a3,_0x410fe5){var _0x5d9ebd=util[_0x44db('0x19')](_0x44db('0x51'),_0x410fe5['channel'],_0x410fe5[_0x44db('0x52')]);var _0x52400a=moment()[_0x44db('0x19')](_0x44db('0x53'))[_0x44db('0x21')]();var _0x2c0d3e=htmlToPdfmake(_0x33e1a3,{'window':window,'tableAutoSize':!![]});return{'content':[_0x2c0d3e],'defaultStyle':{'font':_0x44db('0x24')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':'center','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':'center'}},'header':function(){return[{'text':'Interaction\x20Transcript','style':_0x44db('0x1d')}];},'footer':function(_0x13e7d1,_0x45b5aa){return[{'text':util['format'](_0x44db('0x54'),_0x5d9ebd,_0x13e7d1,_0x45b5aa,_0x52400a),'style':_0x44db('0x23')}];}};}function writePDFDocument(_0x588cb2,_0x31d1e5){return new Promise(function(_0x38f2df,_0x521215){var _0x4bbe2b=_0x588cb2[_0x44db('0x55')](fs[_0x44db('0x56')](_0x31d1e5));_0x4bbe2b['on'](_0x44db('0x57'),function(){_0x38f2df('finish');});_0x4bbe2b['on'](_0x44db('0x58'),function(_0x30cb6b){_0x521215(_0x30cb6b);});_0x588cb2['end']();});}exports[_0x44db('0x59')]=function(_0x2a6e45,_0x3164f9){var _0x357b37=getPDFPrinter();var _0x395996=getPDFDocDefinitionFromHTML(_0x2a6e45,_0x3164f9);var _0x47e4e4=_0x357b37[_0x44db('0x3c')](_0x395996);return writePDFDocument(_0x47e4e4,_0x3164f9[_0x44db('0x1')])['catch'](function(_0x180f05){throw _0x180f05;});};