c46b8cc2b5bb91a2131cc3558948df70dff770e0
[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 _0xaafc=['/fonts/arial-bold-italic.ttf','channel','interactionId','YYYY-MM-DD','Arial','center','Interaction\x20Transcript','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','pipe','createWriteStream','finish','end','createPdfFromHTML','catch','util','path','moment','html-to-pdfmake','pdfmake/src/printer','rimraf','JSDOM','window','bluebird','../../mysqldb','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','AnalyticExtractedReport','update','map','pick','toString','fill','length','auto','body','concat','chunk','keys','forEach','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','startDate','format','endDate','push','header','pageBreak','before','landscape','footer','black','right','num','Setting','split','then','splitSizePdf','range','sequelize','query','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','basename','.pdf','existsSync','each','flatten','createPdfKitDocument','join','pdf','%s.%s','all','zip','zip\x20finished','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','PDF','Completed','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','findOne','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','/fonts/arial-bold.ttf'];(function(_0x16da99,_0x9a31f4){var _0x9636fa=function(_0x43b80b){while(--_0x43b80b){_0x16da99['push'](_0x16da99['shift']());}};_0x9636fa(++_0x9a31f4);}(_0xaafc,0xbc));var _0xcaaf=function(_0x310750,_0x50a0c7){_0x310750=_0x310750-0x0;var _0x1a9f70=_0xaafc[_0x310750];return _0x1a9f70;};'use strict';var _=require('lodash');var fs=require('fs');var util=require(_0xcaaf('0x0'));var path=require(_0xcaaf('0x1'));var moment=require(_0xcaaf('0x2'));var htmlToPdfmake=require(_0xcaaf('0x3'));var PdfPrinter=require(_0xcaaf('0x4'));var zipdir=require('zip-dir');var rimraf=require(_0xcaaf('0x5'));var JSDOM=require('jsdom')[_0xcaaf('0x6')];var window=new JSDOM('')[_0xcaaf('0x7')];var BPromise=require(_0xcaaf('0x8'));var db=require(_0xcaaf('0x9'))['db'];var dbH=require(_0xcaaf('0x9'))['dbH'];var logger=require('../../config/logger')(_0xcaaf('0xa'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0xcaaf('0xb')][0x3];var PATH=process[_0xcaaf('0xb')][0x4];var NAME=process['argv'][0x5];var FORMAT=_0xcaaf('0xc');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0xa8454b,_0x530f11){var _0x4c19a2={'status':_0xa8454b};var _0x1d2f25={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x530f11){_0x4c19a2[_0xcaaf('0xd')]=_0x530f11;}return db[_0xcaaf('0xe')][_0xcaaf('0xf')](_0x4c19a2,_0x1d2f25);}function getHeaders(_0x364f33){return _[_0xcaaf('0x10')](_0x364f33,function(_0x3236be){return{'text':_0x3236be,'style':'tableHeader'};});}function getRows(_0x407025,_0x4ad29a){return _['map'](_0x4ad29a,function(_0x3c4628){return _(_0x3c4628)[_0xcaaf('0x11')](_0x407025)[_0xcaaf('0x10')](function(_0x1c19b2){return _0x1c19b2?_[_0xcaaf('0x12')](_0x1c19b2):'';})['value']();});}function createTable(_0x326c09,_0xe59bfe){var _0x532ddf={'widths':_[_0xcaaf('0x13')](Array(_0x326c09[_0xcaaf('0x14')]),0x91),'heights':function(_0x5f0f9c){return _0x5f0f9c===0x0?_0xcaaf('0x15'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x4b7b7a=getHeaders(_0x326c09);_0x532ddf[_0xcaaf('0x16')]['push'](_0x4b7b7a);var _0x4f6f38=getRows(_0x326c09,_0xe59bfe);_0x532ddf[_0xcaaf('0x16')]=_0x532ddf[_0xcaaf('0x16')][_0xcaaf('0x17')](_0x4f6f38);return _0x532ddf;}function createTables(_0x134414){var _0x289210=[];var _0x1bce29=_[_0xcaaf('0x18')](Object[_0xcaaf('0x19')](_0x134414[0x0]),0x5);_0x1bce29[_0xcaaf('0x1a')](function(_0x3b0f03){_0x289210['push'](createTable(_0x3b0f03,_0x134414));});return _0x289210;}function getPDFDocDefinition(_0x3c6abe){var _0xdeb94a=util['format'](_0xcaaf('0x1b'),NAME,EXTRACTED_REPORT[_0xcaaf('0x1c')],moment(EXTRACTED_REPORT[_0xcaaf('0x1d')])[_0xcaaf('0x1e')](FORMAT),moment(EXTRACTED_REPORT[_0xcaaf('0x1f')])[_0xcaaf('0x1e')](FORMAT));var _0x3ca1d4=[];for(var _0x3d5b62=0x0;_0x3d5b62<_0x3c6abe[_0xcaaf('0x14')];_0x3d5b62++){var _0x182dfa=[];if(_0x3d5b62===0x0){_0x182dfa[_0xcaaf('0x20')]({'text':_0xdeb94a,'style':_0xcaaf('0x21')});}var _0x24302a={'table':_0x3c6abe[_0x3d5b62]};if(_0x3d5b62>0x0){_0x24302a[_0xcaaf('0x22')]=_0xcaaf('0x23');_0x24302a['margin']=[0x0,0x46,0x0,0x0];}_0x182dfa[_0xcaaf('0x20')](_0x24302a);_0x3ca1d4[_0xcaaf('0x20')](_0x182dfa);}return{'pageSize':'A4','pageOrientation':_0xcaaf('0x24'),'content':_0x3ca1d4,'footer':function(_0x5cce6c,_0x4f223f){return{'text':_0x5cce6c[_0xcaaf('0x12')]()+'\x20/\x20'+_0x4f223f,'style':_0xcaaf('0x25')};},'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':_0xcaaf('0x26')},'footer':{'alignment':_0xcaaf('0x27'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x5597a1){var _0x4f0205=0x1388;var _0x151331;if(!_0x5597a1[0x0][_0xcaaf('0x28')]){return analyticExtractedReport('Empty');}return db[_0xcaaf('0x29')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xcaaf('0x2a'),'splitSizePdf']})[_0xcaaf('0x2b')](function(_0x26352f){if(_0x26352f){_0x151331=_0x26352f;_0x4f0205=_0x151331[_0xcaaf('0x2c')]||0x3e8;}})['then'](function(){var _0x5bdaf3=[];var _0x3c770f=0x0;if(_0x151331[_0xcaaf('0x2a')]){if(_0x5597a1&&_0x5597a1[_0xcaaf('0x14')]){var _0xf2bb69=_[_0xcaaf('0x2d')](_0x5597a1[0x0][_0xcaaf('0x28')]/_0x4f0205);var _0x2645da=Number['isInteger'](_0x5597a1[0x0][_0xcaaf('0x28')]/_0x4f0205)?_0x5597a1[0x0][_0xcaaf('0x28')]%_0x4f0205:0x0;_0xf2bb69['forEach'](function(_0x370f58){if(_0x370f58>0x0){_0x3c770f+=_0x4f0205;}_0x5bdaf3[_0xcaaf('0x20')](dbH[_0xcaaf('0x2e')][_0xcaaf('0x2f')](util['format'](_0xcaaf('0x30'),QUERY,_0x4f0205,_0x3c770f),{'type':dbH['sequelize'][_0xcaaf('0x31')][_0xcaaf('0x32')]}));});if(_0x2645da>0x0){_0x3c770f+=_0x4f0205;_0x5bdaf3[_0xcaaf('0x20')](dbH['sequelize'][_0xcaaf('0x2f')](util['format']('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x2645da,_0x3c770f),{'type':dbH[_0xcaaf('0x2e')][_0xcaaf('0x31')][_0xcaaf('0x32')]}));}}}else{_0x5bdaf3['push'](dbH[_0xcaaf('0x2e')]['query'](QUERY,{'type':dbH[_0xcaaf('0x2e')][_0xcaaf('0x31')]['SELECT']}));}var _0x10b9d5=path['dirname'](PATH);var _0x5ba770=path[_0xcaaf('0x33')](PATH,_0xcaaf('0x34'));var _0x585d9a=_0x151331['split']&&_0x5bdaf3[_0xcaaf('0x14')]>0x1;var _0x496f67=[];if(!fs[_0xcaaf('0x35')](path['join'](_0x10b9d5,_0x5ba770))&&_0x585d9a){fs['mkdirSync'](path['join'](_0x10b9d5,_0x5ba770));}return BPromise[_0xcaaf('0x36')](_0x5bdaf3,function(_0x4b2e19){_0x496f67[_0xcaaf('0x20')](_0x4b2e19);})[_0xcaaf('0x2b')](function(){var _0x34aff8=[];for(var _0x12e326=0x0;_0x12e326<_0x496f67[_0xcaaf('0x14')];_0x12e326+=0x1){var _0x58e777=_0x496f67[_0x12e326];var _0x48ec1d=createTables(_[_0xcaaf('0x37')](_0x58e777));var _0x1ae0c9;var _0x1c0887=getPDFDocDefinition(_0x48ec1d);var _0xa41906=getPDFPrinter();var _0x4f8539=_0xa41906[_0xcaaf('0x38')](_0x1c0887);if(_0x585d9a){_0x1ae0c9=path[_0xcaaf('0x39')](_0x10b9d5,_0x5ba770,util[_0xcaaf('0x1e')]('%s%d.%s',_0x5ba770,_0x12e326,_0xcaaf('0x3a')));}else{_0x1ae0c9=path[_0xcaaf('0x39')](_0x10b9d5,util[_0xcaaf('0x1e')](_0xcaaf('0x3b'),_0x5ba770,_0xcaaf('0x3a')));}_0x34aff8[_0xcaaf('0x20')](writePDFDocument(_0x4f8539,_0x1ae0c9));}return Promise[_0xcaaf('0x3c')](_0x34aff8);})[_0xcaaf('0x2b')](function(){if(_0x585d9a){return new Promise(function(_0xbd06ee){zipdir(path[_0xcaaf('0x39')](_0x10b9d5,_0x5ba770),{'saveTo':path[_0xcaaf('0x39')](_0x10b9d5,util['format']('%s.%s',_0x5ba770,_0xcaaf('0x3d')))},function(){rimraf(path[_0xcaaf('0x39')](_0x10b9d5,_0x5ba770),function(){});_0xbd06ee(_0xcaaf('0x3e'));});});}})[_0xcaaf('0x2b')](function(){if(!_0x585d9a)return;rimraf(path['join'](_0x10b9d5,_0x5ba770),function(){});})[_0xcaaf('0x2b')](function(){logger[_0xcaaf('0x3f')](util[_0xcaaf('0x1e')](_0xcaaf('0x40'),EXTRACTED_REPORT_ID,_0xcaaf('0x41')));return analyticExtractedReport(_0xcaaf('0x42'),_0x585d9a?util[_0xcaaf('0x1e')](_0xcaaf('0x3b'),_0x5ba770,_0x585d9a?'zip':_0xcaaf('0x3a')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0xcaaf('0x3f')](util[_0xcaaf('0x1e')](_0xcaaf('0x43'),EXTRACTED_REPORT_ID,'PDF'));return db['AnalyticExtractedReport'][_0xcaaf('0x44')]({'where':{'id':EXTRACTED_REPORT_ID}})[_0xcaaf('0x2b')](function(_0x414ac3){EXTRACTED_REPORT=_0x414ac3;return dbH[_0xcaaf('0x2e')][_0xcaaf('0x2f')](util['format']('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH['sequelize']['QueryTypes'][_0xcaaf('0x32')]});})[_0xcaaf('0x2b')](extractReport)['catch'](function(_0x5af973){logger['info'](util[_0xcaaf('0x1e')](_0xcaaf('0x45'),EXTRACTED_REPORT_ID,_0xcaaf('0x41')),util[_0xcaaf('0x46')](_0x5af973,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xcaaf('0x47'));})['finally'](function(){process['exit'](EXIT_CODE);});}main();function getPDFPrinter(){var _0x2337ab=new PdfPrinter({'Arial':{'normal':__dirname+'/fonts/arial-regular.ttf','bold':__dirname+_0xcaaf('0x48'),'italics':__dirname+'/fonts/arial-italic.ttf','bolditalics':__dirname+_0xcaaf('0x49')}});return _0x2337ab;}function getPDFDocDefinitionFromHTML(_0x42c34e,_0x33e001){var _0x4b4065=util[_0xcaaf('0x1e')]('%s\x20#%d',_0x33e001[_0xcaaf('0x4a')],_0x33e001[_0xcaaf('0x4b')]);var _0xb83070=moment()[_0xcaaf('0x1e')](_0xcaaf('0x4c'))[_0xcaaf('0x12')]();var _0x37e5cb=htmlToPdfmake(_0x42c34e,{'window':window,'tableAutoSize':!![]});return{'content':[_0x37e5cb],'defaultStyle':{'font':_0xcaaf('0x4d')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':'center','margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0xcaaf('0x4e'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':_0xcaaf('0x4e')}},'header':function(){return[{'text':_0xcaaf('0x4f'),'style':_0xcaaf('0x21')}];},'footer':function(_0x70f94a,_0xb6e5ca){return[{'text':util[_0xcaaf('0x1e')](_0xcaaf('0x50'),_0x4b4065,_0x70f94a,_0xb6e5ca,_0xb83070),'style':_0xcaaf('0x25')}];}};}function writePDFDocument(_0x1d42a0,_0x43ca48){return new Promise(function(_0x94c0fb,_0x5b1040){var _0x4d88eb=_0x1d42a0[_0xcaaf('0x51')](fs[_0xcaaf('0x52')](_0x43ca48));_0x4d88eb['on'](_0xcaaf('0x53'),function(){_0x94c0fb(_0xcaaf('0x53'));});_0x4d88eb['on']('error',function(_0x25ff6d){_0x5b1040(_0x25ff6d);});_0x1d42a0[_0xcaaf('0x54')]();});}exports[_0xcaaf('0x55')]=function(_0x1fffe9,_0x24d8ae){var _0x5a2aa2=getPDFPrinter();var _0x2fdb03=getPDFDocDefinitionFromHTML(_0x1fffe9,_0x24d8ae);var _0x58f728=_0x5a2aa2['createPdfKitDocument'](_0x2fdb03);return writePDFDocument(_0x58f728,_0x24d8ae[_0xcaaf('0x1')])[_0xcaaf('0x56')](function(_0x333cc2){throw _0x333cc2;});};