ed4ff50ac68d1604631e9240ccef6947b7483178
[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 _0xafbd=['pdf','%s.%s','all','zip','zip\x20finished','info','PDF','Completed','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','Failed','finally','exit','/fonts/arial-regular.ttf','/fonts/arial-bold.ttf','/fonts/arial-italic.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','finish','error','end','createPdfFromHTML','lodash','path','moment','pdfmake/src/printer','zip-dir','JSDOM','window','bluebird','../../mysqldb','../../config/logger','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','AnalyticExtractedReport','update','map','tableHeader','toString','value','fill','length','auto','body','push','chunk','format','name','startDate','endDate','header','pageBreak','before','margin','landscape','footer','Arial','black','Empty','Setting','find','then','splitSizePdf','split','range','num','isInteger','forEach','sequelize','query','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','dirname','.pdf','existsSync','join','mkdirSync','each','flatten','createPdfKitDocument','%s%d.%s'];(function(_0x37bb0e,_0x593f9a){var _0x5b5847=function(_0x1a6f3e){while(--_0x1a6f3e){_0x37bb0e['push'](_0x37bb0e['shift']());}};_0x5b5847(++_0x593f9a);}(_0xafbd,0xda));var _0xdafb=function(_0x86b219,_0x43038f){_0x86b219=_0x86b219-0x0;var _0x1f320c=_0xafbd[_0x86b219];return _0x1f320c;};'use strict';var _=require(_0xdafb('0x0'));var fs=require('fs');var util=require('util');var path=require(_0xdafb('0x1'));var moment=require(_0xdafb('0x2'));var htmlToPdfmake=require('html-to-pdfmake');var PdfPrinter=require(_0xdafb('0x3'));var zipdir=require(_0xdafb('0x4'));var rimraf=require('rimraf');var JSDOM=require('jsdom')[_0xdafb('0x5')];var window=new JSDOM('')[_0xdafb('0x6')];var BPromise=require(_0xdafb('0x7'));var db=require(_0xdafb('0x8'))['db'];var dbH=require(_0xdafb('0x8'))['dbH'];var logger=require(_0xdafb('0x9'))('analytics');var EXTRACTED_REPORT_ID=Number(process[_0xdafb('0xa')][0x2]);var QUERY=process[_0xdafb('0xa')][0x3];var PATH=process[_0xdafb('0xa')][0x4];var NAME=process[_0xdafb('0xa')][0x5];var FORMAT=_0xdafb('0xb');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x35feac,_0x1caadf){var _0x550324={'status':_0x35feac};var _0x13aa15={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x1caadf){_0x550324[_0xdafb('0xc')]=_0x1caadf;}return db[_0xdafb('0xd')][_0xdafb('0xe')](_0x550324,_0x13aa15);}function getHeaders(_0x5b2ccf){return _[_0xdafb('0xf')](_0x5b2ccf,function(_0x28a1cd){return{'text':_0x28a1cd,'style':_0xdafb('0x10')};});}function getRows(_0x588767,_0x382e32){return _[_0xdafb('0xf')](_0x382e32,function(_0x5a75dd){return _(_0x5a75dd)['pick'](_0x588767)[_0xdafb('0xf')](function(_0x28c9b4){return _0x28c9b4?_[_0xdafb('0x11')](_0x28c9b4):'';})[_0xdafb('0x12')]();});}function createTable(_0x4acad8,_0x296d0b){var _0x414465={'widths':_[_0xdafb('0x13')](Array(_0x4acad8[_0xdafb('0x14')]),0x91),'heights':function(_0x54989e){return _0x54989e===0x0?_0xdafb('0x15'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x1a4c50=getHeaders(_0x4acad8);_0x414465[_0xdafb('0x16')][_0xdafb('0x17')](_0x1a4c50);var _0x30cce8=getRows(_0x4acad8,_0x296d0b);_0x414465[_0xdafb('0x16')]=_0x414465[_0xdafb('0x16')]['concat'](_0x30cce8);return _0x414465;}function createTables(_0x198c5d){var _0x4dc01f=[];var _0x4f5a52=_[_0xdafb('0x18')](Object['keys'](_0x198c5d[0x0]),0x5);_0x4f5a52['forEach'](function(_0x3d3c82){_0x4dc01f['push'](createTable(_0x3d3c82,_0x198c5d));});return _0x4dc01f;}function getPDFDocDefinition(_0x315dc1){var _0x23c38b=util[_0xdafb('0x19')]('Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s',NAME,EXTRACTED_REPORT[_0xdafb('0x1a')],moment(EXTRACTED_REPORT[_0xdafb('0x1b')])[_0xdafb('0x19')](FORMAT),moment(EXTRACTED_REPORT[_0xdafb('0x1c')])[_0xdafb('0x19')](FORMAT));var _0x52abe9=[];for(var _0x1c750c=0x0;_0x1c750c<_0x315dc1[_0xdafb('0x14')];_0x1c750c++){var _0x3abaa2=[];if(_0x1c750c===0x0){_0x3abaa2['push']({'text':_0x23c38b,'style':_0xdafb('0x1d')});}var _0x503b5b={'table':_0x315dc1[_0x1c750c]};if(_0x1c750c>0x0){_0x503b5b[_0xdafb('0x1e')]=_0xdafb('0x1f');_0x503b5b[_0xdafb('0x20')]=[0x0,0x46,0x0,0x0];}_0x3abaa2[_0xdafb('0x17')](_0x503b5b);_0x52abe9[_0xdafb('0x17')](_0x3abaa2);}return{'pageSize':'A4','pageOrientation':_0xdafb('0x21'),'content':_0x52abe9,'footer':function(_0x3c4560,_0x5c31c2){return{'text':_0x3c4560['toString']()+'\x20/\x20'+_0x5c31c2,'style':_0xdafb('0x22')};},'defaultStyle':{'font':_0xdafb('0x23')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':_0xdafb('0x24')},'footer':{'alignment':'right','margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x145001){var _0x127db3=0x1388;var _0x46c08a;if(!_0x145001[0x0]['num']){return analyticExtractedReport(_0xdafb('0x25'));}return db[_0xdafb('0x26')][_0xdafb('0x27')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split','splitSizePdf']})[_0xdafb('0x28')](function(_0x1a24c6){if(_0x1a24c6){_0x46c08a=_0x1a24c6;_0x127db3=_0x46c08a[_0xdafb('0x29')]||0x3e8;}})['then'](function(){var _0x269763=[];var _0x27a8d6=0x0;if(_0x46c08a[_0xdafb('0x2a')]){if(_0x145001&&_0x145001['length']){var _0x4d46a7=_[_0xdafb('0x2b')](_0x145001[0x0][_0xdafb('0x2c')]/_0x127db3);var _0x1d7c38=Number[_0xdafb('0x2d')](_0x145001[0x0][_0xdafb('0x2c')]/_0x127db3)?_0x145001[0x0][_0xdafb('0x2c')]%_0x127db3:0x0;_0x4d46a7[_0xdafb('0x2e')](function(_0x3742d9){if(_0x3742d9>0x0){_0x27a8d6+=_0x127db3;}_0x269763[_0xdafb('0x17')](dbH[_0xdafb('0x2f')][_0xdafb('0x30')](util[_0xdafb('0x19')](_0xdafb('0x31'),QUERY,_0x127db3,_0x27a8d6),{'type':dbH['sequelize'][_0xdafb('0x32')][_0xdafb('0x33')]}));});if(_0x1d7c38>0x0){_0x27a8d6+=_0x127db3;_0x269763['push'](dbH[_0xdafb('0x2f')][_0xdafb('0x30')](util[_0xdafb('0x19')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x1d7c38,_0x27a8d6),{'type':dbH[_0xdafb('0x2f')]['QueryTypes'][_0xdafb('0x33')]}));}}}else{_0x269763[_0xdafb('0x17')](dbH[_0xdafb('0x2f')]['query'](QUERY,{'type':dbH['sequelize'][_0xdafb('0x32')][_0xdafb('0x33')]}));}var _0x2b30d8=path[_0xdafb('0x34')](PATH);var _0x29b25a=path['basename'](PATH,_0xdafb('0x35'));var _0x51391d=_0x46c08a['split']&&_0x269763['length']>0x1;var _0x2e3f55=[];if(!fs[_0xdafb('0x36')](path[_0xdafb('0x37')](_0x2b30d8,_0x29b25a))&&_0x51391d){fs[_0xdafb('0x38')](path[_0xdafb('0x37')](_0x2b30d8,_0x29b25a));}return BPromise[_0xdafb('0x39')](_0x269763,function(_0x199385){_0x2e3f55[_0xdafb('0x17')](_0x199385);})['then'](function(){var _0x3f7667=[];for(var _0x1ed110=0x0;_0x1ed110<_0x2e3f55[_0xdafb('0x14')];_0x1ed110+=0x1){var _0x4add3c=_0x2e3f55[_0x1ed110];var _0x45e363=createTables(_[_0xdafb('0x3a')](_0x4add3c));var _0x2e6c6c;var _0x2a647a=getPDFDocDefinition(_0x45e363);var _0x4ec61f=getPDFPrinter();var _0x4f5eb5=_0x4ec61f[_0xdafb('0x3b')](_0x2a647a);if(_0x51391d){_0x2e6c6c=path[_0xdafb('0x37')](_0x2b30d8,_0x29b25a,util[_0xdafb('0x19')](_0xdafb('0x3c'),_0x29b25a,_0x1ed110,_0xdafb('0x3d')));}else{_0x2e6c6c=path['join'](_0x2b30d8,util[_0xdafb('0x19')](_0xdafb('0x3e'),_0x29b25a,_0xdafb('0x3d')));}_0x3f7667[_0xdafb('0x17')](writePDFDocument(_0x4f5eb5,_0x2e6c6c));}return Promise[_0xdafb('0x3f')](_0x3f7667);})[_0xdafb('0x28')](function(){if(_0x51391d){return new Promise(function(_0x5a07a1){zipdir(path[_0xdafb('0x37')](_0x2b30d8,_0x29b25a),{'saveTo':path[_0xdafb('0x37')](_0x2b30d8,util[_0xdafb('0x19')](_0xdafb('0x3e'),_0x29b25a,_0xdafb('0x40')))},function(){rimraf(path['join'](_0x2b30d8,_0x29b25a),function(){});_0x5a07a1(_0xdafb('0x41'));});});}})['then'](function(){if(!_0x51391d)return;rimraf(path[_0xdafb('0x37')](_0x2b30d8,_0x29b25a),function(){});})[_0xdafb('0x28')](function(){logger[_0xdafb('0x42')](util[_0xdafb('0x19')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0xdafb('0x43')));return analyticExtractedReport(_0xdafb('0x44'),_0x51391d?util[_0xdafb('0x19')](_0xdafb('0x3e'),_0x29b25a,_0x51391d?_0xdafb('0x40'):_0xdafb('0x3d')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0xdafb('0x42')](util[_0xdafb('0x19')](_0xdafb('0x45'),EXTRACTED_REPORT_ID,_0xdafb('0x43')));return db[_0xdafb('0xd')][_0xdafb('0x46')]({'where':{'id':EXTRACTED_REPORT_ID}})[_0xdafb('0x28')](function(_0x1b53f5){EXTRACTED_REPORT=_0x1b53f5;return dbH['sequelize']['query'](util[_0xdafb('0x19')](_0xdafb('0x47'),QUERY),{'type':dbH[_0xdafb('0x2f')][_0xdafb('0x32')][_0xdafb('0x33')]});})['then'](extractReport)[_0xdafb('0x48')](function(_0x1a0ddc){logger[_0xdafb('0x42')](util[_0xdafb('0x19')](_0xdafb('0x49'),EXTRACTED_REPORT_ID,_0xdafb('0x43')),util[_0xdafb('0x4a')](_0x1a0ddc,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xdafb('0x4b'));})[_0xdafb('0x4c')](function(){process[_0xdafb('0x4d')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x4aa2f2=new PdfPrinter({'Arial':{'normal':__dirname+_0xdafb('0x4e'),'bold':__dirname+_0xdafb('0x4f'),'italics':__dirname+_0xdafb('0x50'),'bolditalics':__dirname+_0xdafb('0x51')}});return _0x4aa2f2;}function getPDFDocDefinitionFromHTML(_0xe8dad7,_0xecab9){var _0x274f2c=util[_0xdafb('0x19')]('%s\x20#%d',_0xecab9[_0xdafb('0x52')],_0xecab9[_0xdafb('0x53')]);var _0x2d4e55=moment()[_0xdafb('0x19')](_0xdafb('0x54'))[_0xdafb('0x11')]();var _0x38c58b=htmlToPdfmake(_0xe8dad7,{'window':window,'tableAutoSize':!![]});return{'content':[_0x38c58b],'defaultStyle':{'font':_0xdafb('0x23')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0xdafb('0x55'),'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':_0xdafb('0x56'),'style':_0xdafb('0x1d')}];},'footer':function(_0x159f9d,_0x5a1d3f){return[{'text':util[_0xdafb('0x19')](_0xdafb('0x57'),_0x274f2c,_0x159f9d,_0x5a1d3f,_0x2d4e55),'style':_0xdafb('0x22')}];}};}function writePDFDocument(_0x137dd3,_0x32b608){return new Promise(function(_0x19c37c,_0xe00f82){var _0x5094ad=_0x137dd3[_0xdafb('0x58')](fs['createWriteStream'](_0x32b608));_0x5094ad['on'](_0xdafb('0x59'),function(){_0x19c37c(_0xdafb('0x59'));});_0x5094ad['on'](_0xdafb('0x5a'),function(_0x56391b){_0xe00f82(_0x56391b);});_0x137dd3[_0xdafb('0x5b')]();});}exports[_0xdafb('0x5c')]=function(_0x27a5cf,_0x48cfe5){var _0x3d4c37=getPDFPrinter();var _0x3eb708=getPDFDocDefinitionFromHTML(_0x27a5cf,_0x48cfe5);var _0x4b248d=_0x3d4c37[_0xdafb('0x3b')](_0x3eb708);return writePDFDocument(_0x4b248d,_0x48cfe5[_0xdafb('0x1')])['catch'](function(_0x4c00f1){throw _0x4c00f1;});};