a1979ed9b1b4dc01e6c8d9195e969290222e99de
[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 _0x31e2=['query','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','dirname','basename','.pdf','existsSync','join','mkdirSync','each','flatten','createPdfKitDocument','%s%d.%s','pdf','all','%s.%s','zip','zip\x20finished','info','PDF','findOne','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','Failed','finally','/fonts/arial-regular.ttf','/fonts/arial-bold.ttf','/fonts/arial-italic.ttf','/fonts/arial-bold-italic.ttf','interactionId','center','Interaction\x20Transcript','header','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','pipe','finish','error','createPdfFromHTML','catch','lodash','util','path','moment','pdfmake/src/printer','zip-dir','rimraf','jsdom','JSDOM','window','bluebird','../../mysqldb','../../config/logger','analytics','argv','savename','tableHeader','map','pick','value','fill','length','body','push','chunk','keys','forEach','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','startDate','format','endDate','pageBreak','margin','landscape','toString','\x20/\x20','footer','black','right','num','Setting','find','splitSizePdf','then','split','range','isInteger','sequelize'];(function(_0x393500,_0x1037af){var _0x120d3b=function(_0x17234e){while(--_0x17234e){_0x393500['push'](_0x393500['shift']());}};_0x120d3b(++_0x1037af);}(_0x31e2,0x12f));var _0x231e=function(_0x323d87,_0x4ef3f9){_0x323d87=_0x323d87-0x0;var _0x5e8f74=_0x31e2[_0x323d87];return _0x5e8f74;};'use strict';var _=require(_0x231e('0x0'));var fs=require('fs');var util=require(_0x231e('0x1'));var path=require(_0x231e('0x2'));var moment=require(_0x231e('0x3'));var htmlToPdfmake=require('html-to-pdfmake');var PdfPrinter=require(_0x231e('0x4'));var zipdir=require(_0x231e('0x5'));var rimraf=require(_0x231e('0x6'));var JSDOM=require(_0x231e('0x7'))[_0x231e('0x8')];var window=new JSDOM('')[_0x231e('0x9')];var BPromise=require(_0x231e('0xa'));var db=require(_0x231e('0xb'))['db'];var dbH=require('../../mysqldb')['dbH'];var logger=require(_0x231e('0xc'))(_0x231e('0xd'));var EXTRACTED_REPORT_ID=Number(process[_0x231e('0xe')][0x2]);var QUERY=process[_0x231e('0xe')][0x3];var PATH=process['argv'][0x4];var NAME=process[_0x231e('0xe')][0x5];var FORMAT='MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a';var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0xa08f52,_0x367c70){var _0x1153c9={'status':_0xa08f52};var _0x2e5577={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x367c70){_0x1153c9[_0x231e('0xf')]=_0x367c70;}return db['AnalyticExtractedReport']['update'](_0x1153c9,_0x2e5577);}function getHeaders(_0x3abf9f){return _['map'](_0x3abf9f,function(_0x596de3){return{'text':_0x596de3,'style':_0x231e('0x10')};});}function getRows(_0x1ceef6,_0x1702dc){return _[_0x231e('0x11')](_0x1702dc,function(_0x148ea1){return _(_0x148ea1)[_0x231e('0x12')](_0x1ceef6)[_0x231e('0x11')](function(_0x5a6003){return _0x5a6003?_['toString'](_0x5a6003):'';})[_0x231e('0x13')]();});}function createTable(_0x3b9830,_0x5f593d){var _0x4d147b={'widths':_[_0x231e('0x14')](Array(_0x3b9830[_0x231e('0x15')]),0x91),'heights':function(_0x344e6d){return _0x344e6d===0x0?'auto':0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0xa65fb1=getHeaders(_0x3b9830);_0x4d147b[_0x231e('0x16')][_0x231e('0x17')](_0xa65fb1);var _0x35d5f4=getRows(_0x3b9830,_0x5f593d);_0x4d147b['body']=_0x4d147b[_0x231e('0x16')]['concat'](_0x35d5f4);return _0x4d147b;}function createTables(_0x323ff4){var _0x3b3678=[];var _0x4dc977=_[_0x231e('0x18')](Object[_0x231e('0x19')](_0x323ff4[0x0]),0x5);_0x4dc977[_0x231e('0x1a')](function(_0xc25920){_0x3b3678['push'](createTable(_0xc25920,_0x323ff4));});return _0x3b3678;}function getPDFDocDefinition(_0x1c8302){var _0x1ac1b5=util['format'](_0x231e('0x1b'),NAME,EXTRACTED_REPORT[_0x231e('0x1c')],moment(EXTRACTED_REPORT[_0x231e('0x1d')])[_0x231e('0x1e')](FORMAT),moment(EXTRACTED_REPORT[_0x231e('0x1f')])[_0x231e('0x1e')](FORMAT));var _0x33e08e=[];for(var _0x1f45f4=0x0;_0x1f45f4<_0x1c8302[_0x231e('0x15')];_0x1f45f4++){var _0x372104=[];if(_0x1f45f4===0x0){_0x372104['push']({'text':_0x1ac1b5,'style':'header'});}var _0x345157={'table':_0x1c8302[_0x1f45f4]};if(_0x1f45f4>0x0){_0x345157[_0x231e('0x20')]='before';_0x345157[_0x231e('0x21')]=[0x0,0x46,0x0,0x0];}_0x372104[_0x231e('0x17')](_0x345157);_0x33e08e['push'](_0x372104);}return{'pageSize':'A4','pageOrientation':_0x231e('0x22'),'content':_0x33e08e,'footer':function(_0x43f1a1,_0x1f3ae3){return{'text':_0x43f1a1[_0x231e('0x23')]()+_0x231e('0x24')+_0x1f3ae3,'style':_0x231e('0x25')};},'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':_0x231e('0x26')},'footer':{'alignment':_0x231e('0x27'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x2570d7){var _0x1a1b04=0x1388;var _0x31ef1c;if(!_0x2570d7[0x0][_0x231e('0x28')]){return analyticExtractedReport('Empty');}return db[_0x231e('0x29')][_0x231e('0x2a')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0x231e('0x2b')]})[_0x231e('0x2c')](function(_0x146838){if(_0x146838){_0x31ef1c=_0x146838;_0x1a1b04=_0x31ef1c[_0x231e('0x2b')]||0x3e8;}})['then'](function(){var _0x2e34e0=[];var _0xec16cb=0x0;if(_0x31ef1c[_0x231e('0x2d')]){if(_0x2570d7&&_0x2570d7[_0x231e('0x15')]){var _0x133c5f=_[_0x231e('0x2e')](_0x2570d7[0x0][_0x231e('0x28')]/_0x1a1b04);var _0x38d711=Number[_0x231e('0x2f')](_0x2570d7[0x0][_0x231e('0x28')]/_0x1a1b04)?_0x2570d7[0x0][_0x231e('0x28')]%_0x1a1b04:0x0;_0x133c5f[_0x231e('0x1a')](function(_0x2aaaf6){if(_0x2aaaf6>0x0){_0xec16cb+=_0x1a1b04;}_0x2e34e0[_0x231e('0x17')](dbH[_0x231e('0x30')][_0x231e('0x31')](util['format'](_0x231e('0x32'),QUERY,_0x1a1b04,_0xec16cb),{'type':dbH['sequelize'][_0x231e('0x33')][_0x231e('0x34')]}));});if(_0x38d711>0x0){_0xec16cb+=_0x1a1b04;_0x2e34e0[_0x231e('0x17')](dbH[_0x231e('0x30')][_0x231e('0x31')](util[_0x231e('0x1e')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x38d711,_0xec16cb),{'type':dbH[_0x231e('0x30')]['QueryTypes'][_0x231e('0x34')]}));}}}else{_0x2e34e0['push'](dbH[_0x231e('0x30')][_0x231e('0x31')](QUERY,{'type':dbH[_0x231e('0x30')][_0x231e('0x33')]['SELECT']}));}var _0x4f28d3=path[_0x231e('0x35')](PATH);var _0x19d501=path[_0x231e('0x36')](PATH,_0x231e('0x37'));var _0xf45e4e=_0x31ef1c[_0x231e('0x2d')]&&_0x2e34e0[_0x231e('0x15')]>0x1;var _0x4a83e1=[];if(!fs[_0x231e('0x38')](path[_0x231e('0x39')](_0x4f28d3,_0x19d501))&&_0xf45e4e){fs[_0x231e('0x3a')](path[_0x231e('0x39')](_0x4f28d3,_0x19d501));}return BPromise[_0x231e('0x3b')](_0x2e34e0,function(_0x24b806){_0x4a83e1['push'](_0x24b806);})['then'](function(){var _0x12e34d=[];for(var _0x564489=0x0;_0x564489<_0x4a83e1['length'];_0x564489+=0x1){var _0x1b1abb=_0x4a83e1[_0x564489];var _0x2befd2=createTables(_[_0x231e('0x3c')](_0x1b1abb));var _0x3cac6e;var _0x3953c0=getPDFDocDefinition(_0x2befd2);var _0x3a2dd1=getPDFPrinter();var _0x351204=_0x3a2dd1[_0x231e('0x3d')](_0x3953c0);if(_0xf45e4e){_0x3cac6e=path[_0x231e('0x39')](_0x4f28d3,_0x19d501,util[_0x231e('0x1e')](_0x231e('0x3e'),_0x19d501,_0x564489,_0x231e('0x3f')));}else{_0x3cac6e=path[_0x231e('0x39')](_0x4f28d3,util[_0x231e('0x1e')]('%s.%s',_0x19d501,'pdf'));}_0x12e34d['push'](writePDFDocument(_0x351204,_0x3cac6e));}return Promise[_0x231e('0x40')](_0x12e34d);})['then'](function(){if(_0xf45e4e){return new Promise(function(_0x167956){zipdir(path['join'](_0x4f28d3,_0x19d501),{'saveTo':path[_0x231e('0x39')](_0x4f28d3,util[_0x231e('0x1e')](_0x231e('0x41'),_0x19d501,_0x231e('0x42')))},function(){rimraf(path[_0x231e('0x39')](_0x4f28d3,_0x19d501),function(){});_0x167956(_0x231e('0x43'));});});}})['then'](function(){if(!_0xf45e4e)return;rimraf(path['join'](_0x4f28d3,_0x19d501),function(){});})[_0x231e('0x2c')](function(){logger[_0x231e('0x44')](util['format']('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,'PDF'));return analyticExtractedReport('Completed',_0xf45e4e?util[_0x231e('0x1e')]('%s.%s',_0x19d501,_0xf45e4e?_0x231e('0x42'):_0x231e('0x3f')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0x231e('0x44')](util[_0x231e('0x1e')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x231e('0x45')));return db['AnalyticExtractedReport'][_0x231e('0x46')]({'where':{'id':EXTRACTED_REPORT_ID}})['then'](function(_0x656b76){EXTRACTED_REPORT=_0x656b76;return dbH['sequelize']['query'](util[_0x231e('0x1e')](_0x231e('0x47'),QUERY),{'type':dbH[_0x231e('0x30')]['QueryTypes'][_0x231e('0x34')]});})[_0x231e('0x2c')](extractReport)['catch'](function(_0x59038c){logger[_0x231e('0x44')](util[_0x231e('0x1e')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x231e('0x45')),util['inspect'](_0x59038c,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x231e('0x48'));})[_0x231e('0x49')](function(){process['exit'](EXIT_CODE);});}main();function getPDFPrinter(){var _0x5e214f=new PdfPrinter({'Arial':{'normal':__dirname+_0x231e('0x4a'),'bold':__dirname+_0x231e('0x4b'),'italics':__dirname+_0x231e('0x4c'),'bolditalics':__dirname+_0x231e('0x4d')}});return _0x5e214f;}function getPDFDocDefinitionFromHTML(_0x28747b,_0x3dcdcc){var _0x26ae47=util['format']('%s\x20#%d',_0x3dcdcc['channel'],_0x3dcdcc[_0x231e('0x4e')]);var _0x49c6eb=moment()['format']('YYYY-MM-DD')[_0x231e('0x23')]();var _0x4bcc3e=htmlToPdfmake(_0x28747b,{'window':window,'tableAutoSize':!![]});return{'content':[_0x4bcc3e],'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0x231e('0x4f'),'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':_0x231e('0x50'),'style':_0x231e('0x51')}];},'footer':function(_0x1a5d73,_0x3a7e64){return[{'text':util[_0x231e('0x1e')](_0x231e('0x52'),_0x26ae47,_0x1a5d73,_0x3a7e64,_0x49c6eb),'style':_0x231e('0x25')}];}};}function writePDFDocument(_0x2ee3c4,_0x2a7de5){return new Promise(function(_0x2c2b6b,_0x180315){var _0x483e53=_0x2ee3c4[_0x231e('0x53')](fs['createWriteStream'](_0x2a7de5));_0x483e53['on'](_0x231e('0x54'),function(){_0x2c2b6b(_0x231e('0x54'));});_0x483e53['on'](_0x231e('0x55'),function(_0x1bfd2b){_0x180315(_0x1bfd2b);});_0x2ee3c4['end']();});}exports[_0x231e('0x56')]=function(_0x347807,_0xa8a631){var _0x3720c1=getPDFPrinter();var _0x5b0fd5=getPDFDocDefinitionFromHTML(_0x347807,_0xa8a631);var _0x1df309=_0x3720c1['createPdfKitDocument'](_0x5b0fd5);return writePDFDocument(_0x1df309,_0xa8a631['path'])[_0x231e('0x57')](function(_0x23e6f5){throw _0x23e6f5;});};