0095839b87558593ea7ad70661b4f4972536bd97
[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 _0x9654=['split','splitSizePdf','then','range','isInteger','query','%s\x20limit\x20%d\x20OFFSET\x20%d','sequelize','QueryTypes','SELECT','dirname','mkdirSync','each','flatten','createPdfKitDocument','join','%s%d.%s','pdf','%s.%s','zip\x20finished','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','PDF','Completed','zip','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','findOne','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','finally','/fonts/arial-regular.ttf','/fonts/arial-bold.ttf','/fonts/arial-italic.ttf','/fonts/arial-bold-italic.ttf','%s\x20#%d','interactionId','YYYY-MM-DD','center','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','createWriteStream','finish','error','path','lodash','util','html-to-pdfmake','pdfmake/src/printer','zip-dir','rimraf','jsdom','JSDOM','../../mysqldb','analytics','argv','savename','AnalyticExtractedReport','update','map','tableHeader','pick','toString','fill','length','auto','body','push','chunk','forEach','format','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','startDate','endDate','header','pageBreak','before','margin','landscape','\x20/\x20','footer','Arial','black','right','num','Empty','Setting'];(function(_0x5c4217,_0x358c74){var _0x2635e5=function(_0x193fa9){while(--_0x193fa9){_0x5c4217['push'](_0x5c4217['shift']());}};_0x2635e5(++_0x358c74);}(_0x9654,0x132));var _0x4965=function(_0x42ca15,_0x193ccb){_0x42ca15=_0x42ca15-0x0;var _0x1c6ded=_0x9654[_0x42ca15];return _0x1c6ded;};'use strict';var _=require(_0x4965('0x0'));var fs=require('fs');var util=require(_0x4965('0x1'));var path=require('path');var moment=require('moment');var htmlToPdfmake=require(_0x4965('0x2'));var PdfPrinter=require(_0x4965('0x3'));var zipdir=require(_0x4965('0x4'));var rimraf=require(_0x4965('0x5'));var JSDOM=require(_0x4965('0x6'))[_0x4965('0x7')];var window=new JSDOM('')['window'];var BPromise=require('bluebird');var db=require(_0x4965('0x8'))['db'];var dbH=require(_0x4965('0x8'))['dbH'];var logger=require('../../config/logger')(_0x4965('0x9'));var EXTRACTED_REPORT_ID=Number(process[_0x4965('0xa')][0x2]);var QUERY=process[_0x4965('0xa')][0x3];var PATH=process['argv'][0x4];var NAME=process[_0x4965('0xa')][0x5];var FORMAT='MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a';var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x136f27,_0x40dea9){var _0x136afc={'status':_0x136f27};var _0x1e2c75={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x40dea9){_0x136afc[_0x4965('0xb')]=_0x40dea9;}return db[_0x4965('0xc')][_0x4965('0xd')](_0x136afc,_0x1e2c75);}function getHeaders(_0x57e0c3){return _[_0x4965('0xe')](_0x57e0c3,function(_0x464c3e){return{'text':_0x464c3e,'style':_0x4965('0xf')};});}function getRows(_0x262d9f,_0x6af2d0){return _[_0x4965('0xe')](_0x6af2d0,function(_0x19375d){return _(_0x19375d)[_0x4965('0x10')](_0x262d9f)[_0x4965('0xe')](function(_0x14fd73){return _0x14fd73?_[_0x4965('0x11')](_0x14fd73):'';})['value']();});}function createTable(_0x2d7d11,_0x44768d){var _0xd20aec={'widths':_[_0x4965('0x12')](Array(_0x2d7d11[_0x4965('0x13')]),0x91),'heights':function(_0x11c8a4){return _0x11c8a4===0x0?_0x4965('0x14'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x36cdc2=getHeaders(_0x2d7d11);_0xd20aec[_0x4965('0x15')][_0x4965('0x16')](_0x36cdc2);var _0x994585=getRows(_0x2d7d11,_0x44768d);_0xd20aec['body']=_0xd20aec[_0x4965('0x15')]['concat'](_0x994585);return _0xd20aec;}function createTables(_0x115e45){var _0x89fc2c=[];var _0x320f19=_[_0x4965('0x17')](Object['keys'](_0x115e45[0x0]),0x5);_0x320f19[_0x4965('0x18')](function(_0x323588){_0x89fc2c['push'](createTable(_0x323588,_0x115e45));});return _0x89fc2c;}function getPDFDocDefinition(_0x7b5311){var _0x47096d=util[_0x4965('0x19')](_0x4965('0x1a'),NAME,EXTRACTED_REPORT['name'],moment(EXTRACTED_REPORT[_0x4965('0x1b')])[_0x4965('0x19')](FORMAT),moment(EXTRACTED_REPORT[_0x4965('0x1c')])[_0x4965('0x19')](FORMAT));var _0x4ca157=[];for(var _0x1c1b84=0x0;_0x1c1b84<_0x7b5311[_0x4965('0x13')];_0x1c1b84++){var _0x5bed59=[];if(_0x1c1b84===0x0){_0x5bed59[_0x4965('0x16')]({'text':_0x47096d,'style':_0x4965('0x1d')});}var _0xf87ebc={'table':_0x7b5311[_0x1c1b84]};if(_0x1c1b84>0x0){_0xf87ebc[_0x4965('0x1e')]=_0x4965('0x1f');_0xf87ebc[_0x4965('0x20')]=[0x0,0x46,0x0,0x0];}_0x5bed59[_0x4965('0x16')](_0xf87ebc);_0x4ca157[_0x4965('0x16')](_0x5bed59);}return{'pageSize':'A4','pageOrientation':_0x4965('0x21'),'content':_0x4ca157,'footer':function(_0x409fee,_0x4c83cf){return{'text':_0x409fee[_0x4965('0x11')]()+_0x4965('0x22')+_0x4c83cf,'style':_0x4965('0x23')};},'defaultStyle':{'font':_0x4965('0x24')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':_0x4965('0x25')},'footer':{'alignment':_0x4965('0x26'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x241675){var _0x23ca8e=0x1388;var _0x44de67;if(!_0x241675[0x0][_0x4965('0x27')]){return analyticExtractedReport(_0x4965('0x28'));}return db[_0x4965('0x29')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x4965('0x2a'),_0x4965('0x2b')]})['then'](function(_0x2dfcc9){if(_0x2dfcc9){_0x44de67=_0x2dfcc9;_0x23ca8e=_0x44de67[_0x4965('0x2b')]||0x3e8;}})[_0x4965('0x2c')](function(){var _0x1bcc9b=[];var _0x19dbbb=0x0;if(_0x44de67['split']){if(_0x241675&&_0x241675[_0x4965('0x13')]){var _0x578b3=_[_0x4965('0x2d')](_0x241675[0x0][_0x4965('0x27')]/_0x23ca8e);var _0x332166=Number[_0x4965('0x2e')](_0x241675[0x0][_0x4965('0x27')]/_0x23ca8e)?_0x241675[0x0][_0x4965('0x27')]%_0x23ca8e:0x0;_0x578b3[_0x4965('0x18')](function(_0x2009f4){if(_0x2009f4>0x0){_0x19dbbb+=_0x23ca8e;}_0x1bcc9b['push'](dbH['sequelize'][_0x4965('0x2f')](util[_0x4965('0x19')](_0x4965('0x30'),QUERY,_0x23ca8e,_0x19dbbb),{'type':dbH[_0x4965('0x31')][_0x4965('0x32')][_0x4965('0x33')]}));});if(_0x332166>0x0){_0x19dbbb+=_0x23ca8e;_0x1bcc9b[_0x4965('0x16')](dbH[_0x4965('0x31')][_0x4965('0x2f')](util[_0x4965('0x19')](_0x4965('0x30'),QUERY,_0x332166,_0x19dbbb),{'type':dbH[_0x4965('0x31')][_0x4965('0x32')][_0x4965('0x33')]}));}}}else{_0x1bcc9b['push'](dbH[_0x4965('0x31')][_0x4965('0x2f')](QUERY,{'type':dbH[_0x4965('0x31')]['QueryTypes'][_0x4965('0x33')]}));}var _0x2779f5=path[_0x4965('0x34')](PATH);var _0x2c7cc0=path['basename'](PATH,'.pdf');var _0x4fd35f=_0x44de67[_0x4965('0x2a')]&&_0x1bcc9b['length']>0x1;var _0xc68ec4=[];if(!fs['existsSync'](path['join'](_0x2779f5,_0x2c7cc0))&&_0x4fd35f){fs[_0x4965('0x35')](path['join'](_0x2779f5,_0x2c7cc0));}return BPromise[_0x4965('0x36')](_0x1bcc9b,function(_0x3d35c5){_0xc68ec4[_0x4965('0x16')](_0x3d35c5);})[_0x4965('0x2c')](function(){var _0x17f06a=[];for(var _0x28f155=0x0;_0x28f155<_0xc68ec4[_0x4965('0x13')];_0x28f155+=0x1){var _0x383064=_0xc68ec4[_0x28f155];var _0x280a1b=createTables(_[_0x4965('0x37')](_0x383064));var _0x50660c;var _0x479bc2=getPDFDocDefinition(_0x280a1b);var _0x50ebfb=getPDFPrinter();var _0x354230=_0x50ebfb[_0x4965('0x38')](_0x479bc2);if(_0x4fd35f){_0x50660c=path[_0x4965('0x39')](_0x2779f5,_0x2c7cc0,util[_0x4965('0x19')](_0x4965('0x3a'),_0x2c7cc0,_0x28f155,_0x4965('0x3b')));}else{_0x50660c=path[_0x4965('0x39')](_0x2779f5,util['format'](_0x4965('0x3c'),_0x2c7cc0,_0x4965('0x3b')));}_0x17f06a[_0x4965('0x16')](writePDFDocument(_0x354230,_0x50660c));}return Promise['all'](_0x17f06a);})[_0x4965('0x2c')](function(){if(_0x4fd35f){return new Promise(function(_0x3b7506){zipdir(path[_0x4965('0x39')](_0x2779f5,_0x2c7cc0),{'saveTo':path[_0x4965('0x39')](_0x2779f5,util['format'](_0x4965('0x3c'),_0x2c7cc0,'zip'))},function(){rimraf(path[_0x4965('0x39')](_0x2779f5,_0x2c7cc0),function(){});_0x3b7506(_0x4965('0x3d'));});});}})[_0x4965('0x2c')](function(){if(!_0x4fd35f)return;rimraf(path['join'](_0x2779f5,_0x2c7cc0),function(){});})[_0x4965('0x2c')](function(){logger[_0x4965('0x3e')](util[_0x4965('0x19')](_0x4965('0x3f'),EXTRACTED_REPORT_ID,_0x4965('0x40')));return analyticExtractedReport(_0x4965('0x41'),_0x4fd35f?util[_0x4965('0x19')](_0x4965('0x3c'),_0x2c7cc0,_0x4fd35f?_0x4965('0x42'):'pdf'):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0x4965('0x3e')](util[_0x4965('0x19')](_0x4965('0x43'),EXTRACTED_REPORT_ID,_0x4965('0x40')));return db['AnalyticExtractedReport'][_0x4965('0x44')]({'where':{'id':EXTRACTED_REPORT_ID}})[_0x4965('0x2c')](function(_0x37403f){EXTRACTED_REPORT=_0x37403f;return dbH[_0x4965('0x31')][_0x4965('0x2f')](util['format'](_0x4965('0x45'),QUERY),{'type':dbH['sequelize'][_0x4965('0x32')][_0x4965('0x33')]});})[_0x4965('0x2c')](extractReport)[_0x4965('0x46')](function(_0x26ebb9){logger[_0x4965('0x3e')](util['format'](_0x4965('0x47'),EXTRACTED_REPORT_ID,'PDF'),util[_0x4965('0x48')](_0x26ebb9,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})[_0x4965('0x49')](function(){process['exit'](EXIT_CODE);});}main();function getPDFPrinter(){var _0x17e262=new PdfPrinter({'Arial':{'normal':__dirname+_0x4965('0x4a'),'bold':__dirname+_0x4965('0x4b'),'italics':__dirname+_0x4965('0x4c'),'bolditalics':__dirname+_0x4965('0x4d')}});return _0x17e262;}function getPDFDocDefinitionFromHTML(_0xbc29b6,_0x2b0ac0){var _0x56c997=util[_0x4965('0x19')](_0x4965('0x4e'),_0x2b0ac0['channel'],_0x2b0ac0[_0x4965('0x4f')]);var _0xbba41b=moment()['format'](_0x4965('0x50'))[_0x4965('0x11')]();var _0x1805a6=htmlToPdfmake(_0xbc29b6,{'window':window,'tableAutoSize':!![]});return{'content':[_0x1805a6],'defaultStyle':{'font':_0x4965('0x24')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0x4965('0x51'),'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':_0x4965('0x51')}},'header':function(){return[{'text':'Interaction\x20Transcript','style':'header'}];},'footer':function(_0x8c386f,_0x359f2e){return[{'text':util[_0x4965('0x19')](_0x4965('0x52'),_0x56c997,_0x8c386f,_0x359f2e,_0xbba41b),'style':'footer'}];}};}function writePDFDocument(_0x1e2edf,_0x1ae675){return new Promise(function(_0x542244,_0x26a034){var _0x28a219=_0x1e2edf['pipe'](fs[_0x4965('0x53')](_0x1ae675));_0x28a219['on'](_0x4965('0x54'),function(){_0x542244(_0x4965('0x54'));});_0x28a219['on'](_0x4965('0x55'),function(_0x563fa3){_0x26a034(_0x563fa3);});_0x1e2edf['end']();});}exports['createPdfFromHTML']=function(_0x224e47,_0x1693f0){var _0x4ef3dd=getPDFPrinter();var _0x5c8c3d=getPDFDocDefinitionFromHTML(_0x224e47,_0x1693f0);var _0x1ee0b5=_0x4ef3dd[_0x4965('0x38')](_0x5c8c3d);return writePDFDocument(_0x1ee0b5,_0x1693f0[_0x4965('0x56')])[_0x4965('0x46')](function(_0x1df830){throw _0x1df830;});};