Built motion from commit f0b1811d.|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 _0x9c0a=['find','then','range','isInteger','forEach','sequelize','query','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','dirname','basename','split','join','mkdirSync','each','flatten','createPdfKitDocument','%s%d.%s','%s.%s','pdf','all','zip','zip\x20finished','info','PDF','Completed','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','findOne','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-italic.ttf','/fonts/arial-bold-italic.ttf','%s\x20#%d','channel','interactionId','YYYY-MM-DD','center','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','footer','pipe','finish','error','end','createPdfFromHTML','util','path','moment','html-to-pdfmake','pdfmake/src/printer','zip-dir','rimraf','jsdom','JSDOM','window','dbH','../../config/logger','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','AnalyticExtractedReport','update','map','pick','toString','fill','body','push','concat','keys','format','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','length','header','pageBreak','before','margin','landscape','\x20/\x20','Arial','right','num','Empty','Setting'];(function(_0x7c6eef,_0x421dff){var _0x4a04a4=function(_0x5b2d31){while(--_0x5b2d31){_0x7c6eef['push'](_0x7c6eef['shift']());}};_0x4a04a4(++_0x421dff);}(_0x9c0a,0x19b));var _0xa9c0=function(_0x570f09,_0x5c06ff){_0x570f09=_0x570f09-0x0;var _0x46819a=_0x9c0a[_0x570f09];return _0x46819a;};'use strict';var _=require('lodash');var fs=require('fs');var util=require(_0xa9c0('0x0'));var path=require(_0xa9c0('0x1'));var moment=require(_0xa9c0('0x2'));var htmlToPdfmake=require(_0xa9c0('0x3'));var PdfPrinter=require(_0xa9c0('0x4'));var zipdir=require(_0xa9c0('0x5'));var rimraf=require(_0xa9c0('0x6'));var JSDOM=require(_0xa9c0('0x7'))[_0xa9c0('0x8')];var window=new JSDOM('')[_0xa9c0('0x9')];var BPromise=require('bluebird');var db=require('../../mysqldb')['db'];var dbH=require('../../mysqldb')[_0xa9c0('0xa')];var logger=require(_0xa9c0('0xb'))(_0xa9c0('0xc'));var EXTRACTED_REPORT_ID=Number(process[_0xa9c0('0xd')][0x2]);var QUERY=process['argv'][0x3];var PATH=process['argv'][0x4];var NAME=process['argv'][0x5];var FORMAT=_0xa9c0('0xe');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x53e028,_0x242cfd){var _0x14688c={'status':_0x53e028};var _0x544ac1={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x242cfd){_0x14688c['savename']=_0x242cfd;}return db[_0xa9c0('0xf')][_0xa9c0('0x10')](_0x14688c,_0x544ac1);}function getHeaders(_0x5c37d0){return _[_0xa9c0('0x11')](_0x5c37d0,function(_0xc57e9b){return{'text':_0xc57e9b,'style':'tableHeader'};});}function getRows(_0x18ae09,_0x1972dc){return _[_0xa9c0('0x11')](_0x1972dc,function(_0x32623d){return _(_0x32623d)[_0xa9c0('0x12')](_0x18ae09)['map'](function(_0xa5126a){return _0xa5126a?_[_0xa9c0('0x13')](_0xa5126a):'';})['value']();});}function createTable(_0x1b1f46,_0xca9888){var _0x1b5a86={'widths':_[_0xa9c0('0x14')](Array(_0x1b1f46['length']),0x91),'heights':function(_0x585fd8){return _0x585fd8===0x0?'auto':0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0xfe3054=getHeaders(_0x1b1f46);_0x1b5a86[_0xa9c0('0x15')][_0xa9c0('0x16')](_0xfe3054);var _0x22e7e6=getRows(_0x1b1f46,_0xca9888);_0x1b5a86[_0xa9c0('0x15')]=_0x1b5a86['body'][_0xa9c0('0x17')](_0x22e7e6);return _0x1b5a86;}function createTables(_0xe003bb){var _0x1425ed=[];var _0x1f8a7d=_['chunk'](Object[_0xa9c0('0x18')](_0xe003bb[0x0]),0x5);_0x1f8a7d['forEach'](function(_0x176c97){_0x1425ed[_0xa9c0('0x16')](createTable(_0x176c97,_0xe003bb));});return _0x1425ed;}function getPDFDocDefinition(_0x4bf3dd){var _0x142aae=util[_0xa9c0('0x19')](_0xa9c0('0x1a'),NAME,EXTRACTED_REPORT['name'],moment(EXTRACTED_REPORT['startDate'])[_0xa9c0('0x19')](FORMAT),moment(EXTRACTED_REPORT['endDate'])[_0xa9c0('0x19')](FORMAT));var _0x1917c7=[];for(var _0x5a5588=0x0;_0x5a5588<_0x4bf3dd[_0xa9c0('0x1b')];_0x5a5588++){var _0x3ab84f=[];if(_0x5a5588===0x0){_0x3ab84f[_0xa9c0('0x16')]({'text':_0x142aae,'style':_0xa9c0('0x1c')});}var _0x1fc31e={'table':_0x4bf3dd[_0x5a5588]};if(_0x5a5588>0x0){_0x1fc31e[_0xa9c0('0x1d')]=_0xa9c0('0x1e');_0x1fc31e[_0xa9c0('0x1f')]=[0x0,0x46,0x0,0x0];}_0x3ab84f['push'](_0x1fc31e);_0x1917c7['push'](_0x3ab84f);}return{'pageSize':'A4','pageOrientation':_0xa9c0('0x20'),'content':_0x1917c7,'footer':function(_0x5d2e33,_0x50196d){return{'text':_0x5d2e33[_0xa9c0('0x13')]()+_0xa9c0('0x21')+_0x50196d,'style':'footer'};},'defaultStyle':{'font':_0xa9c0('0x22')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':'black'},'footer':{'alignment':_0xa9c0('0x23'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x36de5f){var _0xb259cb=0x1388;var _0x553078;if(!_0x36de5f[0x0][_0xa9c0('0x24')]){return analyticExtractedReport(_0xa9c0('0x25'));}return db[_0xa9c0('0x26')][_0xa9c0('0x27')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split','splitSizePdf']})[_0xa9c0('0x28')](function(_0x27a02e){if(_0x27a02e){_0x553078=_0x27a02e;_0xb259cb=_0x553078['splitSizePdf']||0x3e8;}})[_0xa9c0('0x28')](function(){var _0x488da2=[];var _0x17917e=0x0;if(_0x553078['split']){if(_0x36de5f&&_0x36de5f[_0xa9c0('0x1b')]){var _0x3804bf=_[_0xa9c0('0x29')](_0x36de5f[0x0][_0xa9c0('0x24')]/_0xb259cb);var _0x453d1f=Number[_0xa9c0('0x2a')](_0x36de5f[0x0][_0xa9c0('0x24')]/_0xb259cb)?_0x36de5f[0x0]['num']%_0xb259cb:0x0;_0x3804bf[_0xa9c0('0x2b')](function(_0x2e42cb){if(_0x2e42cb>0x0){_0x17917e+=_0xb259cb;}_0x488da2[_0xa9c0('0x16')](dbH[_0xa9c0('0x2c')][_0xa9c0('0x2d')](util[_0xa9c0('0x19')](_0xa9c0('0x2e'),QUERY,_0xb259cb,_0x17917e),{'type':dbH[_0xa9c0('0x2c')][_0xa9c0('0x2f')]['SELECT']}));});if(_0x453d1f>0x0){_0x17917e+=_0xb259cb;_0x488da2['push'](dbH[_0xa9c0('0x2c')][_0xa9c0('0x2d')](util[_0xa9c0('0x19')](_0xa9c0('0x2e'),QUERY,_0x453d1f,_0x17917e),{'type':dbH[_0xa9c0('0x2c')]['QueryTypes'][_0xa9c0('0x30')]}));}}}else{_0x488da2[_0xa9c0('0x16')](dbH[_0xa9c0('0x2c')][_0xa9c0('0x2d')](QUERY,{'type':dbH[_0xa9c0('0x2c')][_0xa9c0('0x2f')]['SELECT']}));}var _0x5b508b=path[_0xa9c0('0x31')](PATH);var _0x49e001=path[_0xa9c0('0x32')](PATH,'.pdf');var _0x13c6b4=_0x553078[_0xa9c0('0x33')]&&_0x488da2[_0xa9c0('0x1b')]>0x1;var _0x378d8f=[];if(!fs['existsSync'](path[_0xa9c0('0x34')](_0x5b508b,_0x49e001))&&_0x13c6b4){fs[_0xa9c0('0x35')](path[_0xa9c0('0x34')](_0x5b508b,_0x49e001));}return BPromise[_0xa9c0('0x36')](_0x488da2,function(_0x35d377){_0x378d8f[_0xa9c0('0x16')](_0x35d377);})[_0xa9c0('0x28')](function(){var _0x1206f2=[];for(var _0xc8f851=0x0;_0xc8f851<_0x378d8f[_0xa9c0('0x1b')];_0xc8f851+=0x1){var _0x2f071e=_0x378d8f[_0xc8f851];var _0x9b3cf4=createTables(_[_0xa9c0('0x37')](_0x2f071e));var _0x5214f0;var _0xbd545=getPDFDocDefinition(_0x9b3cf4);var _0x22b4c6=getPDFPrinter();var _0xa042a8=_0x22b4c6[_0xa9c0('0x38')](_0xbd545);if(_0x13c6b4){_0x5214f0=path[_0xa9c0('0x34')](_0x5b508b,_0x49e001,util[_0xa9c0('0x19')](_0xa9c0('0x39'),_0x49e001,_0xc8f851,'pdf'));}else{_0x5214f0=path[_0xa9c0('0x34')](_0x5b508b,util[_0xa9c0('0x19')](_0xa9c0('0x3a'),_0x49e001,_0xa9c0('0x3b')));}_0x1206f2[_0xa9c0('0x16')](writePDFDocument(_0xa042a8,_0x5214f0));}return Promise[_0xa9c0('0x3c')](_0x1206f2);})[_0xa9c0('0x28')](function(){if(_0x13c6b4){return new Promise(function(_0x45422c){zipdir(path[_0xa9c0('0x34')](_0x5b508b,_0x49e001),{'saveTo':path['join'](_0x5b508b,util[_0xa9c0('0x19')](_0xa9c0('0x3a'),_0x49e001,_0xa9c0('0x3d')))},function(){rimraf(path[_0xa9c0('0x34')](_0x5b508b,_0x49e001),function(){});_0x45422c(_0xa9c0('0x3e'));});});}})['then'](function(){if(!_0x13c6b4)return;rimraf(path['join'](_0x5b508b,_0x49e001),function(){});})[_0xa9c0('0x28')](function(){logger[_0xa9c0('0x3f')](util[_0xa9c0('0x19')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0xa9c0('0x40')));return analyticExtractedReport(_0xa9c0('0x41'),_0x13c6b4?util[_0xa9c0('0x19')](_0xa9c0('0x3a'),_0x49e001,_0x13c6b4?_0xa9c0('0x3d'):'pdf'):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger['info'](util[_0xa9c0('0x19')](_0xa9c0('0x42'),EXTRACTED_REPORT_ID,_0xa9c0('0x40')));return db[_0xa9c0('0xf')][_0xa9c0('0x43')]({'where':{'id':EXTRACTED_REPORT_ID}})[_0xa9c0('0x28')](function(_0x302762){EXTRACTED_REPORT=_0x302762;return dbH['sequelize']['query'](util[_0xa9c0('0x19')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0xa9c0('0x2c')][_0xa9c0('0x2f')][_0xa9c0('0x30')]});})[_0xa9c0('0x28')](extractReport)[_0xa9c0('0x44')](function(_0x16f24d){logger[_0xa9c0('0x3f')](util['format'](_0xa9c0('0x45'),EXTRACTED_REPORT_ID,_0xa9c0('0x40')),util[_0xa9c0('0x46')](_0x16f24d,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xa9c0('0x47'));})[_0xa9c0('0x48')](function(){process[_0xa9c0('0x49')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x139e61=new PdfPrinter({'Arial':{'normal':__dirname+_0xa9c0('0x4a'),'bold':__dirname+_0xa9c0('0x4b'),'italics':__dirname+_0xa9c0('0x4c'),'bolditalics':__dirname+_0xa9c0('0x4d')}});return _0x139e61;}function getPDFDocDefinitionFromHTML(_0xeae1d1,_0x22a6d4){var _0x39fb04=util[_0xa9c0('0x19')](_0xa9c0('0x4e'),_0x22a6d4[_0xa9c0('0x4f')],_0x22a6d4[_0xa9c0('0x50')]);var _0x342d16=moment()['format'](_0xa9c0('0x51'))[_0xa9c0('0x13')]();var _0x3e1265=htmlToPdfmake(_0xeae1d1,{'window':window,'tableAutoSize':!![]});return{'content':[_0x3e1265],'defaultStyle':{'font':_0xa9c0('0x22')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0xa9c0('0x52'),'margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0xa9c0('0x52'),'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':_0xa9c0('0x1c')}];},'footer':function(_0x2d38f6,_0x189009){return[{'text':util[_0xa9c0('0x19')](_0xa9c0('0x53'),_0x39fb04,_0x2d38f6,_0x189009,_0x342d16),'style':_0xa9c0('0x54')}];}};}function writePDFDocument(_0x45a49d,_0x4ec0c0){return new Promise(function(_0x1fc6f2,_0x2cd697){var _0x3ee86c=_0x45a49d[_0xa9c0('0x55')](fs['createWriteStream'](_0x4ec0c0));_0x3ee86c['on']('finish',function(){_0x1fc6f2(_0xa9c0('0x56'));});_0x3ee86c['on'](_0xa9c0('0x57'),function(_0x5e6ef5){_0x2cd697(_0x5e6ef5);});_0x45a49d[_0xa9c0('0x58')]();});}exports[_0xa9c0('0x59')]=function(_0x4ee33a,_0xdbf0e4){var _0x4349f3=getPDFPrinter();var _0x51cb1b=getPDFDocDefinitionFromHTML(_0x4ee33a,_0xdbf0e4);var _0x20faea=_0x4349f3[_0xa9c0('0x38')](_0x51cb1b);return writePDFDocument(_0x20faea,_0xdbf0e4['path'])[_0xa9c0('0x44')](function(_0x32fdaa){throw _0x32fdaa;});};