f9eb4c48f1c9abd70e130e15c4c2a55974cc7317
[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 _0x239e=['Failed','finally','exit','/fonts/arial-regular.ttf','/fonts/arial-bold-italic.ttf','channel','interactionId','YYYY-MM-DD','center','Interaction\x20Transcript','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','pipe','createWriteStream','finish','error','end','createPdfFromHTML','createPdfKitDocument','catch','lodash','util','path','moment','html-to-pdfmake','pdfmake/src/printer','zip-dir','rimraf','jsdom','JSDOM','bluebird','../../mysqldb','dbH','../../config/logger','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','AnalyticExtractedReport','update','map','tableHeader','pick','value','fill','length','push','body','concat','chunk','keys','forEach','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','format','endDate','header','before','landscape','toString','\x20/\x20','footer','Arial','black','num','Empty','Setting','find','split','splitSizePdf','then','range','sequelize','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','dirname','basename','existsSync','join','mkdirSync','each','flatten','%s%d.%s','pdf','%s.%s','zip','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','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect'];(function(_0x266c43,_0x12bc29){var _0x360a3d=function(_0x140536){while(--_0x140536){_0x266c43['push'](_0x266c43['shift']());}};_0x360a3d(++_0x12bc29);}(_0x239e,0x1ee));var _0xe239=function(_0x234e1a,_0x500d79){_0x234e1a=_0x234e1a-0x0;var _0x55aad2=_0x239e[_0x234e1a];return _0x55aad2;};'use strict';var _=require(_0xe239('0x0'));var fs=require('fs');var util=require(_0xe239('0x1'));var path=require(_0xe239('0x2'));var moment=require(_0xe239('0x3'));var htmlToPdfmake=require(_0xe239('0x4'));var PdfPrinter=require(_0xe239('0x5'));var zipdir=require(_0xe239('0x6'));var rimraf=require(_0xe239('0x7'));var JSDOM=require(_0xe239('0x8'))[_0xe239('0x9')];var window=new JSDOM('')['window'];var BPromise=require(_0xe239('0xa'));var db=require(_0xe239('0xb'))['db'];var dbH=require(_0xe239('0xb'))[_0xe239('0xc')];var logger=require(_0xe239('0xd'))(_0xe239('0xe'));var EXTRACTED_REPORT_ID=Number(process[_0xe239('0xf')][0x2]);var QUERY=process[_0xe239('0xf')][0x3];var PATH=process[_0xe239('0xf')][0x4];var NAME=process['argv'][0x5];var FORMAT=_0xe239('0x10');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x4dcad6,_0x113c9f){var _0x2ae19f={'status':_0x4dcad6};var _0x4f8350={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x113c9f){_0x2ae19f[_0xe239('0x11')]=_0x113c9f;}return db[_0xe239('0x12')][_0xe239('0x13')](_0x2ae19f,_0x4f8350);}function getHeaders(_0x54491c){return _[_0xe239('0x14')](_0x54491c,function(_0x8363d9){return{'text':_0x8363d9,'style':_0xe239('0x15')};});}function getRows(_0xef43e,_0x429dcb){return _[_0xe239('0x14')](_0x429dcb,function(_0x4b7594){return _(_0x4b7594)[_0xe239('0x16')](_0xef43e)[_0xe239('0x14')](function(_0x6db0f9){return _0x6db0f9?_['toString'](_0x6db0f9):'';})[_0xe239('0x17')]();});}function createTable(_0x437dd3,_0x3230d5){var _0xbd0372={'widths':_[_0xe239('0x18')](Array(_0x437dd3[_0xe239('0x19')]),0x91),'heights':function(_0x5b499f){return _0x5b499f===0x0?'auto':0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0xd4d542=getHeaders(_0x437dd3);_0xbd0372['body'][_0xe239('0x1a')](_0xd4d542);var _0xfc3c25=getRows(_0x437dd3,_0x3230d5);_0xbd0372['body']=_0xbd0372[_0xe239('0x1b')][_0xe239('0x1c')](_0xfc3c25);return _0xbd0372;}function createTables(_0x45ff5d){var _0x2fa0b7=[];var _0x4ba511=_[_0xe239('0x1d')](Object[_0xe239('0x1e')](_0x45ff5d[0x0]),0x5);_0x4ba511[_0xe239('0x1f')](function(_0x866774){_0x2fa0b7[_0xe239('0x1a')](createTable(_0x866774,_0x45ff5d));});return _0x2fa0b7;}function getPDFDocDefinition(_0x2f6fb7){var _0x46e5fb=util['format'](_0xe239('0x20'),NAME,EXTRACTED_REPORT[_0xe239('0x21')],moment(EXTRACTED_REPORT['startDate'])[_0xe239('0x22')](FORMAT),moment(EXTRACTED_REPORT[_0xe239('0x23')])[_0xe239('0x22')](FORMAT));var _0xefb796=[];for(var _0x84ca3c=0x0;_0x84ca3c<_0x2f6fb7[_0xe239('0x19')];_0x84ca3c++){var _0x3217cb=[];if(_0x84ca3c===0x0){_0x3217cb[_0xe239('0x1a')]({'text':_0x46e5fb,'style':_0xe239('0x24')});}var _0x489a6e={'table':_0x2f6fb7[_0x84ca3c]};if(_0x84ca3c>0x0){_0x489a6e['pageBreak']=_0xe239('0x25');_0x489a6e['margin']=[0x0,0x46,0x0,0x0];}_0x3217cb[_0xe239('0x1a')](_0x489a6e);_0xefb796[_0xe239('0x1a')](_0x3217cb);}return{'pageSize':'A4','pageOrientation':_0xe239('0x26'),'content':_0xefb796,'footer':function(_0xb379b2,_0x407a5a){return{'text':_0xb379b2[_0xe239('0x27')]()+_0xe239('0x28')+_0x407a5a,'style':_0xe239('0x29')};},'defaultStyle':{'font':_0xe239('0x2a')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':_0xe239('0x2b')},'footer':{'alignment':'right','margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x54a8c8){var _0x2abbe9=0x1388;var _0x5d914f;if(!_0x54a8c8[0x0][_0xe239('0x2c')]){return analyticExtractedReport(_0xe239('0x2d'));}return db[_0xe239('0x2e')][_0xe239('0x2f')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xe239('0x30'),_0xe239('0x31')]})[_0xe239('0x32')](function(_0x2c4bab){if(_0x2c4bab){_0x5d914f=_0x2c4bab;_0x2abbe9=_0x5d914f[_0xe239('0x31')]||0x3e8;}})[_0xe239('0x32')](function(){var _0x3bfedc=[];var _0x31b8e5=0x0;if(_0x5d914f[_0xe239('0x30')]){if(_0x54a8c8&&_0x54a8c8[_0xe239('0x19')]){var _0x304516=_[_0xe239('0x33')](_0x54a8c8[0x0][_0xe239('0x2c')]/_0x2abbe9);var _0x3fba32=Number['isInteger'](_0x54a8c8[0x0][_0xe239('0x2c')]/_0x2abbe9)?_0x54a8c8[0x0][_0xe239('0x2c')]%_0x2abbe9:0x0;_0x304516[_0xe239('0x1f')](function(_0x86ee99){if(_0x86ee99>0x0){_0x31b8e5+=_0x2abbe9;}_0x3bfedc[_0xe239('0x1a')](dbH[_0xe239('0x34')]['query'](util[_0xe239('0x22')](_0xe239('0x35'),QUERY,_0x2abbe9,_0x31b8e5),{'type':dbH[_0xe239('0x34')][_0xe239('0x36')][_0xe239('0x37')]}));});if(_0x3fba32>0x0){_0x31b8e5+=_0x2abbe9;_0x3bfedc[_0xe239('0x1a')](dbH[_0xe239('0x34')]['query'](util[_0xe239('0x22')](_0xe239('0x35'),QUERY,_0x3fba32,_0x31b8e5),{'type':dbH[_0xe239('0x34')][_0xe239('0x36')][_0xe239('0x37')]}));}}}else{_0x3bfedc[_0xe239('0x1a')](dbH[_0xe239('0x34')]['query'](QUERY,{'type':dbH[_0xe239('0x34')][_0xe239('0x36')][_0xe239('0x37')]}));}var _0x3a878f=path[_0xe239('0x38')](PATH);var _0x242419=path[_0xe239('0x39')](PATH,'.pdf');var _0x5659ca=_0x5d914f[_0xe239('0x30')]&&_0x3bfedc[_0xe239('0x19')]>0x1;var _0x5d2a42=[];if(!fs[_0xe239('0x3a')](path[_0xe239('0x3b')](_0x3a878f,_0x242419))&&_0x5659ca){fs[_0xe239('0x3c')](path['join'](_0x3a878f,_0x242419));}return BPromise[_0xe239('0x3d')](_0x3bfedc,function(_0x506785){_0x5d2a42[_0xe239('0x1a')](_0x506785);})[_0xe239('0x32')](function(){var _0xba7d51=[];for(var _0x90ee4c=0x0;_0x90ee4c<_0x5d2a42[_0xe239('0x19')];_0x90ee4c+=0x1){var _0x54108e=_0x5d2a42[_0x90ee4c];var _0xc46231=createTables(_[_0xe239('0x3e')](_0x54108e));var _0x24ca6b;var _0x542f5b=getPDFDocDefinition(_0xc46231);var _0x1d8004=getPDFPrinter();var _0x5db9eb=_0x1d8004['createPdfKitDocument'](_0x542f5b);if(_0x5659ca){_0x24ca6b=path['join'](_0x3a878f,_0x242419,util[_0xe239('0x22')](_0xe239('0x3f'),_0x242419,_0x90ee4c,'pdf'));}else{_0x24ca6b=path[_0xe239('0x3b')](_0x3a878f,util[_0xe239('0x22')]('%s.%s',_0x242419,_0xe239('0x40')));}_0xba7d51['push'](writePDFDocument(_0x5db9eb,_0x24ca6b));}return Promise['all'](_0xba7d51);})[_0xe239('0x32')](function(){if(_0x5659ca){return new Promise(function(_0x4e8045){zipdir(path[_0xe239('0x3b')](_0x3a878f,_0x242419),{'saveTo':path[_0xe239('0x3b')](_0x3a878f,util[_0xe239('0x22')](_0xe239('0x41'),_0x242419,_0xe239('0x42')))},function(){rimraf(path[_0xe239('0x3b')](_0x3a878f,_0x242419),function(){});_0x4e8045('zip\x20finished');});});}})[_0xe239('0x32')](function(){if(!_0x5659ca)return;rimraf(path[_0xe239('0x3b')](_0x3a878f,_0x242419),function(){});})[_0xe239('0x32')](function(){logger[_0xe239('0x43')](util[_0xe239('0x22')](_0xe239('0x44'),EXTRACTED_REPORT_ID,_0xe239('0x45')));return analyticExtractedReport(_0xe239('0x46'),_0x5659ca?util['format'](_0xe239('0x41'),_0x242419,_0x5659ca?'zip':_0xe239('0x40')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0xe239('0x43')](util['format'](_0xe239('0x47'),EXTRACTED_REPORT_ID,_0xe239('0x45')));return db[_0xe239('0x12')][_0xe239('0x48')]({'where':{'id':EXTRACTED_REPORT_ID}})[_0xe239('0x32')](function(_0x556e5f){EXTRACTED_REPORT=_0x556e5f;return dbH[_0xe239('0x34')]['query'](util[_0xe239('0x22')](_0xe239('0x49'),QUERY),{'type':dbH[_0xe239('0x34')][_0xe239('0x36')]['SELECT']});})[_0xe239('0x32')](extractReport)['catch'](function(_0x3d0e50){logger[_0xe239('0x43')](util[_0xe239('0x22')](_0xe239('0x4a'),EXTRACTED_REPORT_ID,_0xe239('0x45')),util[_0xe239('0x4b')](_0x3d0e50,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xe239('0x4c'));})[_0xe239('0x4d')](function(){process[_0xe239('0x4e')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x3889f2=new PdfPrinter({'Arial':{'normal':__dirname+_0xe239('0x4f'),'bold':__dirname+'/fonts/arial-bold.ttf','italics':__dirname+'/fonts/arial-italic.ttf','bolditalics':__dirname+_0xe239('0x50')}});return _0x3889f2;}function getPDFDocDefinitionFromHTML(_0x176b70,_0x255f29){var _0x1afccd=util[_0xe239('0x22')]('%s\x20#%d',_0x255f29[_0xe239('0x51')],_0x255f29[_0xe239('0x52')]);var _0x423a16=moment()[_0xe239('0x22')](_0xe239('0x53'))[_0xe239('0x27')]();var _0x30dcae=htmlToPdfmake(_0x176b70,{'window':window,'tableAutoSize':!![]});return{'content':[_0x30dcae],'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0xe239('0x54'),'margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0xe239('0x54'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':'center'}},'header':function(){return[{'text':_0xe239('0x55'),'style':'header'}];},'footer':function(_0x2dc886,_0x536d94){return[{'text':util[_0xe239('0x22')](_0xe239('0x56'),_0x1afccd,_0x2dc886,_0x536d94,_0x423a16),'style':_0xe239('0x29')}];}};}function writePDFDocument(_0x12acd1,_0x7647cc){return new Promise(function(_0x2f0693,_0x2f672c){var _0x445ecf=_0x12acd1[_0xe239('0x57')](fs[_0xe239('0x58')](_0x7647cc));_0x445ecf['on'](_0xe239('0x59'),function(){_0x2f0693(_0xe239('0x59'));});_0x445ecf['on'](_0xe239('0x5a'),function(_0x3c8bac){_0x2f672c(_0x3c8bac);});_0x12acd1[_0xe239('0x5b')]();});}exports[_0xe239('0x5c')]=function(_0x2f4a5f,_0x180bfb){var _0x4ef055=getPDFPrinter();var _0x356cd7=getPDFDocDefinitionFromHTML(_0x2f4a5f,_0x180bfb);var _0x28a11f=_0x4ef055[_0xe239('0x5d')](_0x356cd7);return writePDFDocument(_0x28a11f,_0x180bfb['path'])[_0xe239('0x5e')](function(_0x59d34f){throw _0x59d34f;});};