d401e67d666e7bca177e881f24216dd50710b47d
[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 _0x46ff=['pageBreak','margin','landscape','\x20/\x20','Arial','num','Empty','Setting','splitSizePdf','then','split','range','isInteger','query','%s\x20limit\x20%d\x20OFFSET\x20%d','sequelize','SELECT','QueryTypes','dirname','basename','.pdf','existsSync','join','mkdirSync','flatten','createPdfKitDocument','%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','AnalyticExtractedReport','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-bold-italic.ttf','%s\x20#%d','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','footer','createWriteStream','finish','error','end','createPdfFromHTML','path','util','moment','pdfmake/src/printer','rimraf','jsdom','window','bluebird','../../mysqldb','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','update','map','toString','value','fill','length','auto','push','body','chunk','keys','forEach','format','name','endDate','header'];(function(_0x7c7ab5,_0x3c879f){var _0x4ee202=function(_0x52d9aa){while(--_0x52d9aa){_0x7c7ab5['push'](_0x7c7ab5['shift']());}};_0x4ee202(++_0x3c879f);}(_0x46ff,0x13c));var _0xf46f=function(_0x56f0f8,_0x28d84a){_0x56f0f8=_0x56f0f8-0x0;var _0x29c23c=_0x46ff[_0x56f0f8];return _0x29c23c;};'use strict';var _=require('lodash');var fs=require('fs');var util=require(_0xf46f('0x0'));var path=require('path');var moment=require(_0xf46f('0x1'));var htmlToPdfmake=require('html-to-pdfmake');var PdfPrinter=require(_0xf46f('0x2'));var zipdir=require('zip-dir');var rimraf=require(_0xf46f('0x3'));var JSDOM=require(_0xf46f('0x4'))['JSDOM'];var window=new JSDOM('')[_0xf46f('0x5')];var BPromise=require(_0xf46f('0x6'));var db=require(_0xf46f('0x7'))['db'];var dbH=require(_0xf46f('0x7'))['dbH'];var logger=require('../../config/logger')(_0xf46f('0x8'));var EXTRACTED_REPORT_ID=Number(process[_0xf46f('0x9')][0x2]);var QUERY=process[_0xf46f('0x9')][0x3];var PATH=process[_0xf46f('0x9')][0x4];var NAME=process['argv'][0x5];var FORMAT=_0xf46f('0xa');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x38fef7,_0x45e01a){var _0x34936e={'status':_0x38fef7};var _0x50e795={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x45e01a){_0x34936e[_0xf46f('0xb')]=_0x45e01a;}return db['AnalyticExtractedReport'][_0xf46f('0xc')](_0x34936e,_0x50e795);}function getHeaders(_0x3e6c06){return _[_0xf46f('0xd')](_0x3e6c06,function(_0x2b275f){return{'text':_0x2b275f,'style':'tableHeader'};});}function getRows(_0x5baf12,_0x300722){return _['map'](_0x300722,function(_0x2de182){return _(_0x2de182)['pick'](_0x5baf12)[_0xf46f('0xd')](function(_0x360f29){return _0x360f29?_[_0xf46f('0xe')](_0x360f29):'';})[_0xf46f('0xf')]();});}function createTable(_0x19f183,_0x242adc){var _0xce25cc={'widths':_[_0xf46f('0x10')](Array(_0x19f183[_0xf46f('0x11')]),0x91),'heights':function(_0x4b882a){return _0x4b882a===0x0?_0xf46f('0x12'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x4efc11=getHeaders(_0x19f183);_0xce25cc['body'][_0xf46f('0x13')](_0x4efc11);var _0x5269f4=getRows(_0x19f183,_0x242adc);_0xce25cc['body']=_0xce25cc[_0xf46f('0x14')]['concat'](_0x5269f4);return _0xce25cc;}function createTables(_0x4f4211){var _0x6d268=[];var _0x574677=_[_0xf46f('0x15')](Object[_0xf46f('0x16')](_0x4f4211[0x0]),0x5);_0x574677[_0xf46f('0x17')](function(_0x220d8f){_0x6d268[_0xf46f('0x13')](createTable(_0x220d8f,_0x4f4211));});return _0x6d268;}function getPDFDocDefinition(_0x2170d0){var _0x47ae19=util[_0xf46f('0x18')]('Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s',NAME,EXTRACTED_REPORT[_0xf46f('0x19')],moment(EXTRACTED_REPORT['startDate'])[_0xf46f('0x18')](FORMAT),moment(EXTRACTED_REPORT[_0xf46f('0x1a')])[_0xf46f('0x18')](FORMAT));var _0x1e6522=[];for(var _0x5e7733=0x0;_0x5e7733<_0x2170d0[_0xf46f('0x11')];_0x5e7733++){var _0x1d961b=[];if(_0x5e7733===0x0){_0x1d961b[_0xf46f('0x13')]({'text':_0x47ae19,'style':_0xf46f('0x1b')});}var _0x1d8c4f={'table':_0x2170d0[_0x5e7733]};if(_0x5e7733>0x0){_0x1d8c4f[_0xf46f('0x1c')]='before';_0x1d8c4f[_0xf46f('0x1d')]=[0x0,0x46,0x0,0x0];}_0x1d961b['push'](_0x1d8c4f);_0x1e6522[_0xf46f('0x13')](_0x1d961b);}return{'pageSize':'A4','pageOrientation':_0xf46f('0x1e'),'content':_0x1e6522,'footer':function(_0x5b37ac,_0x2b1505){return{'text':_0x5b37ac[_0xf46f('0xe')]()+_0xf46f('0x1f')+_0x2b1505,'style':'footer'};},'defaultStyle':{'font':_0xf46f('0x20')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':'black'},'footer':{'alignment':'right','margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x33a4d3){var _0x3da002=0x1388;var _0x5dd7df;if(!_0x33a4d3[0x0][_0xf46f('0x21')]){return analyticExtractedReport(_0xf46f('0x22'));}return db[_0xf46f('0x23')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0xf46f('0x24')]})[_0xf46f('0x25')](function(_0x21c272){if(_0x21c272){_0x5dd7df=_0x21c272;_0x3da002=_0x5dd7df[_0xf46f('0x24')]||0x3e8;}})[_0xf46f('0x25')](function(){var _0x372926=[];var _0x314de2=0x0;if(_0x5dd7df[_0xf46f('0x26')]){if(_0x33a4d3&&_0x33a4d3['length']){var _0x22231b=_[_0xf46f('0x27')](_0x33a4d3[0x0]['num']/_0x3da002);var _0x1c4f49=Number[_0xf46f('0x28')](_0x33a4d3[0x0]['num']/_0x3da002)?_0x33a4d3[0x0]['num']%_0x3da002:0x0;_0x22231b['forEach'](function(_0xb953f1){if(_0xb953f1>0x0){_0x314de2+=_0x3da002;}_0x372926[_0xf46f('0x13')](dbH['sequelize'][_0xf46f('0x29')](util[_0xf46f('0x18')](_0xf46f('0x2a'),QUERY,_0x3da002,_0x314de2),{'type':dbH[_0xf46f('0x2b')]['QueryTypes'][_0xf46f('0x2c')]}));});if(_0x1c4f49>0x0){_0x314de2+=_0x3da002;_0x372926[_0xf46f('0x13')](dbH[_0xf46f('0x2b')][_0xf46f('0x29')](util[_0xf46f('0x18')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x1c4f49,_0x314de2),{'type':dbH[_0xf46f('0x2b')][_0xf46f('0x2d')][_0xf46f('0x2c')]}));}}}else{_0x372926['push'](dbH[_0xf46f('0x2b')][_0xf46f('0x29')](QUERY,{'type':dbH['sequelize']['QueryTypes'][_0xf46f('0x2c')]}));}var _0x9ad191=path[_0xf46f('0x2e')](PATH);var _0x4dee6e=path[_0xf46f('0x2f')](PATH,_0xf46f('0x30'));var _0x503155=_0x5dd7df[_0xf46f('0x26')]&&_0x372926[_0xf46f('0x11')]>0x1;var _0x20b534=[];if(!fs[_0xf46f('0x31')](path[_0xf46f('0x32')](_0x9ad191,_0x4dee6e))&&_0x503155){fs[_0xf46f('0x33')](path[_0xf46f('0x32')](_0x9ad191,_0x4dee6e));}return BPromise['each'](_0x372926,function(_0x28f949){_0x20b534[_0xf46f('0x13')](_0x28f949);})[_0xf46f('0x25')](function(){var _0x5ef22c=[];for(var _0x32158b=0x0;_0x32158b<_0x20b534['length'];_0x32158b+=0x1){var _0x52b645=_0x20b534[_0x32158b];var _0xb5b6e1=createTables(_[_0xf46f('0x34')](_0x52b645));var _0x4cafd2;var _0x253f22=getPDFDocDefinition(_0xb5b6e1);var _0x1d082d=getPDFPrinter();var _0x271f7d=_0x1d082d[_0xf46f('0x35')](_0x253f22);if(_0x503155){_0x4cafd2=path[_0xf46f('0x32')](_0x9ad191,_0x4dee6e,util[_0xf46f('0x18')](_0xf46f('0x36'),_0x4dee6e,_0x32158b,_0xf46f('0x37')));}else{_0x4cafd2=path[_0xf46f('0x32')](_0x9ad191,util['format'](_0xf46f('0x38'),_0x4dee6e,_0xf46f('0x37')));}_0x5ef22c[_0xf46f('0x13')](writePDFDocument(_0x271f7d,_0x4cafd2));}return Promise['all'](_0x5ef22c);})[_0xf46f('0x25')](function(){if(_0x503155){return new Promise(function(_0x4db061){zipdir(path[_0xf46f('0x32')](_0x9ad191,_0x4dee6e),{'saveTo':path['join'](_0x9ad191,util[_0xf46f('0x18')](_0xf46f('0x38'),_0x4dee6e,'zip'))},function(){rimraf(path[_0xf46f('0x32')](_0x9ad191,_0x4dee6e),function(){});_0x4db061(_0xf46f('0x39'));});});}})[_0xf46f('0x25')](function(){if(!_0x503155)return;rimraf(path[_0xf46f('0x32')](_0x9ad191,_0x4dee6e),function(){});})[_0xf46f('0x25')](function(){logger[_0xf46f('0x3a')](util[_0xf46f('0x18')](_0xf46f('0x3b'),EXTRACTED_REPORT_ID,_0xf46f('0x3c')));return analyticExtractedReport(_0xf46f('0x3d'),_0x503155?util[_0xf46f('0x18')](_0xf46f('0x38'),_0x4dee6e,_0x503155?_0xf46f('0x3e'):'pdf'):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0xf46f('0x3a')](util[_0xf46f('0x18')](_0xf46f('0x3f'),EXTRACTED_REPORT_ID,_0xf46f('0x3c')));return db[_0xf46f('0x40')]['findOne']({'where':{'id':EXTRACTED_REPORT_ID}})[_0xf46f('0x25')](function(_0x322f4d){EXTRACTED_REPORT=_0x322f4d;return dbH['sequelize'][_0xf46f('0x29')](util[_0xf46f('0x18')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0xf46f('0x2b')][_0xf46f('0x2d')][_0xf46f('0x2c')]});})[_0xf46f('0x25')](extractReport)[_0xf46f('0x41')](function(_0x10ba11){logger['info'](util[_0xf46f('0x18')](_0xf46f('0x42'),EXTRACTED_REPORT_ID,_0xf46f('0x3c')),util[_0xf46f('0x43')](_0x10ba11,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})[_0xf46f('0x44')](function(){process['exit'](EXIT_CODE);});}main();function getPDFPrinter(){var _0x1ea77f=new PdfPrinter({'Arial':{'normal':__dirname+_0xf46f('0x45'),'bold':__dirname+_0xf46f('0x46'),'italics':__dirname+'/fonts/arial-italic.ttf','bolditalics':__dirname+_0xf46f('0x47')}});return _0x1ea77f;}function getPDFDocDefinitionFromHTML(_0x2b61a0,_0x501ac1){var _0x245a6e=util[_0xf46f('0x18')](_0xf46f('0x48'),_0x501ac1[_0xf46f('0x49')],_0x501ac1[_0xf46f('0x4a')]);var _0x34a701=moment()[_0xf46f('0x18')](_0xf46f('0x4b'))['toString']();var _0x33f752=htmlToPdfmake(_0x2b61a0,{'window':window,'tableAutoSize':!![]});return{'content':[_0x33f752],'defaultStyle':{'font':_0xf46f('0x20')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0xf46f('0x4c'),'margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0xf46f('0x4c'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':'center'}},'header':function(){return[{'text':_0xf46f('0x4d'),'style':_0xf46f('0x1b')}];},'footer':function(_0x2056de,_0x32d91f){return[{'text':util[_0xf46f('0x18')](_0xf46f('0x4e'),_0x245a6e,_0x2056de,_0x32d91f,_0x34a701),'style':_0xf46f('0x4f')}];}};}function writePDFDocument(_0x3ac995,_0x41e367){return new Promise(function(_0x42a778,_0x37f4ce){var _0x32cf8d=_0x3ac995['pipe'](fs[_0xf46f('0x50')](_0x41e367));_0x32cf8d['on'](_0xf46f('0x51'),function(){_0x42a778('finish');});_0x32cf8d['on'](_0xf46f('0x52'),function(_0x426ec2){_0x37f4ce(_0x426ec2);});_0x3ac995[_0xf46f('0x53')]();});}exports[_0xf46f('0x54')]=function(_0x578677,_0x1fac7d){var _0x4e05f1=getPDFPrinter();var _0x223f0c=getPDFDocDefinitionFromHTML(_0x578677,_0x1fac7d);var _0x4e6f2b=_0x4e05f1[_0xf46f('0x35')](_0x223f0c);return writePDFDocument(_0x4e6f2b,_0x1fac7d[_0xf46f('0x55')])[_0xf46f('0x41')](function(_0x26b60c){throw _0x26b60c;});};