4d318d4abeb60241d94604d8e1b1e7e5ee56e0b5
[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 _0xf4ad=['%s.%s','all','zip','info','PDF','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','Failed','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','Interaction\x20Transcript','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','footer','pipe','createWriteStream','finish','error','end','createPdfFromHTML','path','lodash','html-to-pdfmake','rimraf','jsdom','window','../../mysqldb','dbH','../../config/logger','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','AnalyticExtractedReport','map','pick','toString','value','fill','auto','body','push','concat','chunk','keys','forEach','format','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','header','pageBreak','before','margin','landscape','\x20/\x20','black','num','Empty','Setting','splitSizePdf','then','split','range','isInteger','sequelize','query','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','dirname','.pdf','length','existsSync','join','mkdirSync','flatten','createPdfKitDocument','%s%d.%s','pdf'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0xf4ad,0x172));var _0xdf4a=function(_0x59da33,_0x555969){_0x59da33=_0x59da33-0x0;var _0x1da20f=_0xf4ad[_0x59da33];return _0x1da20f;};'use strict';var _=require(_0xdf4a('0x0'));var fs=require('fs');var util=require('util');var path=require('path');var moment=require('moment');var htmlToPdfmake=require(_0xdf4a('0x1'));var PdfPrinter=require('pdfmake/src/printer');var zipdir=require('zip-dir');var rimraf=require(_0xdf4a('0x2'));var JSDOM=require(_0xdf4a('0x3'))['JSDOM'];var window=new JSDOM('')[_0xdf4a('0x4')];var BPromise=require('bluebird');var db=require(_0xdf4a('0x5'))['db'];var dbH=require(_0xdf4a('0x5'))[_0xdf4a('0x6')];var logger=require(_0xdf4a('0x7'))('analytics');var EXTRACTED_REPORT_ID=Number(process[_0xdf4a('0x8')][0x2]);var QUERY=process[_0xdf4a('0x8')][0x3];var PATH=process[_0xdf4a('0x8')][0x4];var NAME=process[_0xdf4a('0x8')][0x5];var FORMAT=_0xdf4a('0x9');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x5ec74e,_0x5d58e6){var _0x4307b1={'status':_0x5ec74e};var _0x9c2480={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x5d58e6){_0x4307b1['savename']=_0x5d58e6;}return db[_0xdf4a('0xa')]['update'](_0x4307b1,_0x9c2480);}function getHeaders(_0x1b318f){return _['map'](_0x1b318f,function(_0x103d34){return{'text':_0x103d34,'style':'tableHeader'};});}function getRows(_0x50995d,_0x4d890b){return _[_0xdf4a('0xb')](_0x4d890b,function(_0x6af49d){return _(_0x6af49d)[_0xdf4a('0xc')](_0x50995d)[_0xdf4a('0xb')](function(_0x5ce8eb){return _0x5ce8eb?_[_0xdf4a('0xd')](_0x5ce8eb):'';})[_0xdf4a('0xe')]();});}function createTable(_0x342361,_0x54bca8){var _0x4f0bce={'widths':_[_0xdf4a('0xf')](Array(_0x342361['length']),0x91),'heights':function(_0x519ace){return _0x519ace===0x0?_0xdf4a('0x10'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x274d50=getHeaders(_0x342361);_0x4f0bce[_0xdf4a('0x11')][_0xdf4a('0x12')](_0x274d50);var _0x275ace=getRows(_0x342361,_0x54bca8);_0x4f0bce[_0xdf4a('0x11')]=_0x4f0bce['body'][_0xdf4a('0x13')](_0x275ace);return _0x4f0bce;}function createTables(_0x33b1e0){var _0x1c9d9f=[];var _0x220157=_[_0xdf4a('0x14')](Object[_0xdf4a('0x15')](_0x33b1e0[0x0]),0x5);_0x220157[_0xdf4a('0x16')](function(_0x195167){_0x1c9d9f['push'](createTable(_0x195167,_0x33b1e0));});return _0x1c9d9f;}function getPDFDocDefinition(_0x842015){var _0x32a33c=util[_0xdf4a('0x17')](_0xdf4a('0x18'),NAME,EXTRACTED_REPORT['name'],moment(EXTRACTED_REPORT['startDate'])[_0xdf4a('0x17')](FORMAT),moment(EXTRACTED_REPORT['endDate'])[_0xdf4a('0x17')](FORMAT));var _0x407784=[];for(var _0x14935a=0x0;_0x14935a<_0x842015['length'];_0x14935a++){var _0x5b76c7=[];if(_0x14935a===0x0){_0x5b76c7[_0xdf4a('0x12')]({'text':_0x32a33c,'style':_0xdf4a('0x19')});}var _0x16719e={'table':_0x842015[_0x14935a]};if(_0x14935a>0x0){_0x16719e[_0xdf4a('0x1a')]=_0xdf4a('0x1b');_0x16719e[_0xdf4a('0x1c')]=[0x0,0x46,0x0,0x0];}_0x5b76c7[_0xdf4a('0x12')](_0x16719e);_0x407784[_0xdf4a('0x12')](_0x5b76c7);}return{'pageSize':'A4','pageOrientation':_0xdf4a('0x1d'),'content':_0x407784,'footer':function(_0xfed4df,_0x48415c){return{'text':_0xfed4df[_0xdf4a('0xd')]()+_0xdf4a('0x1e')+_0x48415c,'style':'footer'};},'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':_0xdf4a('0x1f')},'footer':{'alignment':'right','margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x11a2f1){var _0x455df0=0x1388;var _0x4e22b4;if(!_0x11a2f1[0x0][_0xdf4a('0x20')]){return analyticExtractedReport(_0xdf4a('0x21'));}return db[_0xdf4a('0x22')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id','split','splitSizePdf']})['then'](function(_0x3b3fe6){if(_0x3b3fe6){_0x4e22b4=_0x3b3fe6;_0x455df0=_0x4e22b4[_0xdf4a('0x23')]||0x3e8;}})[_0xdf4a('0x24')](function(){var _0x169dc0=[];var _0x225074=0x0;if(_0x4e22b4[_0xdf4a('0x25')]){if(_0x11a2f1&&_0x11a2f1['length']){var _0x32b808=_[_0xdf4a('0x26')](_0x11a2f1[0x0][_0xdf4a('0x20')]/_0x455df0);var _0x28edc6=Number[_0xdf4a('0x27')](_0x11a2f1[0x0][_0xdf4a('0x20')]/_0x455df0)?_0x11a2f1[0x0][_0xdf4a('0x20')]%_0x455df0:0x0;_0x32b808[_0xdf4a('0x16')](function(_0x4bc1e2){if(_0x4bc1e2>0x0){_0x225074+=_0x455df0;}_0x169dc0[_0xdf4a('0x12')](dbH[_0xdf4a('0x28')][_0xdf4a('0x29')](util['format'](_0xdf4a('0x2a'),QUERY,_0x455df0,_0x225074),{'type':dbH[_0xdf4a('0x28')][_0xdf4a('0x2b')][_0xdf4a('0x2c')]}));});if(_0x28edc6>0x0){_0x225074+=_0x455df0;_0x169dc0['push'](dbH['sequelize'][_0xdf4a('0x29')](util[_0xdf4a('0x17')](_0xdf4a('0x2a'),QUERY,_0x28edc6,_0x225074),{'type':dbH[_0xdf4a('0x28')][_0xdf4a('0x2b')][_0xdf4a('0x2c')]}));}}}else{_0x169dc0[_0xdf4a('0x12')](dbH['sequelize'][_0xdf4a('0x29')](QUERY,{'type':dbH[_0xdf4a('0x28')][_0xdf4a('0x2b')]['SELECT']}));}var _0x368b13=path[_0xdf4a('0x2d')](PATH);var _0x51ed0d=path['basename'](PATH,_0xdf4a('0x2e'));var _0x562c0b=_0x4e22b4[_0xdf4a('0x25')]&&_0x169dc0[_0xdf4a('0x2f')]>0x1;var _0x3acb09=[];if(!fs[_0xdf4a('0x30')](path[_0xdf4a('0x31')](_0x368b13,_0x51ed0d))&&_0x562c0b){fs[_0xdf4a('0x32')](path['join'](_0x368b13,_0x51ed0d));}return BPromise['each'](_0x169dc0,function(_0x593809){_0x3acb09[_0xdf4a('0x12')](_0x593809);})[_0xdf4a('0x24')](function(){var _0x5b4749=[];for(var _0x3819e5=0x0;_0x3819e5<_0x3acb09[_0xdf4a('0x2f')];_0x3819e5+=0x1){var _0x2995d3=_0x3acb09[_0x3819e5];var _0x25c998=createTables(_[_0xdf4a('0x33')](_0x2995d3));var _0x4c0165;var _0x3363f3=getPDFDocDefinition(_0x25c998);var _0x565ff7=getPDFPrinter();var _0x4428c6=_0x565ff7[_0xdf4a('0x34')](_0x3363f3);if(_0x562c0b){_0x4c0165=path['join'](_0x368b13,_0x51ed0d,util[_0xdf4a('0x17')](_0xdf4a('0x35'),_0x51ed0d,_0x3819e5,_0xdf4a('0x36')));}else{_0x4c0165=path['join'](_0x368b13,util[_0xdf4a('0x17')](_0xdf4a('0x37'),_0x51ed0d,'pdf'));}_0x5b4749['push'](writePDFDocument(_0x4428c6,_0x4c0165));}return Promise[_0xdf4a('0x38')](_0x5b4749);})[_0xdf4a('0x24')](function(){if(_0x562c0b){return new Promise(function(_0x17fad6){zipdir(path[_0xdf4a('0x31')](_0x368b13,_0x51ed0d),{'saveTo':path['join'](_0x368b13,util['format'](_0xdf4a('0x37'),_0x51ed0d,_0xdf4a('0x39')))},function(){rimraf(path[_0xdf4a('0x31')](_0x368b13,_0x51ed0d),function(){});_0x17fad6('zip\x20finished');});});}})[_0xdf4a('0x24')](function(){if(!_0x562c0b)return;rimraf(path['join'](_0x368b13,_0x51ed0d),function(){});})[_0xdf4a('0x24')](function(){logger[_0xdf4a('0x3a')](util[_0xdf4a('0x17')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0xdf4a('0x3b')));return analyticExtractedReport('Completed',_0x562c0b?util['format']('%s.%s',_0x51ed0d,_0x562c0b?_0xdf4a('0x39'):_0xdf4a('0x36')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0xdf4a('0x3a')](util[_0xdf4a('0x17')](_0xdf4a('0x3c'),EXTRACTED_REPORT_ID,'PDF'));return db['AnalyticExtractedReport'][_0xdf4a('0x3d')]({'where':{'id':EXTRACTED_REPORT_ID}})[_0xdf4a('0x24')](function(_0x3e2ddc){EXTRACTED_REPORT=_0x3e2ddc;return dbH[_0xdf4a('0x28')][_0xdf4a('0x29')](util[_0xdf4a('0x17')](_0xdf4a('0x3e'),QUERY),{'type':dbH[_0xdf4a('0x28')][_0xdf4a('0x2b')][_0xdf4a('0x2c')]});})[_0xdf4a('0x24')](extractReport)[_0xdf4a('0x3f')](function(_0x56eacd){logger['info'](util[_0xdf4a('0x17')](_0xdf4a('0x40'),EXTRACTED_REPORT_ID,_0xdf4a('0x3b')),util['inspect'](_0x56eacd,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xdf4a('0x41'));})[_0xdf4a('0x42')](function(){process['exit'](EXIT_CODE);});}main();function getPDFPrinter(){var _0x1cf4f1=new PdfPrinter({'Arial':{'normal':__dirname+_0xdf4a('0x43'),'bold':__dirname+_0xdf4a('0x44'),'italics':__dirname+_0xdf4a('0x45'),'bolditalics':__dirname+_0xdf4a('0x46')}});return _0x1cf4f1;}function getPDFDocDefinitionFromHTML(_0x1976be,_0x59785a){var _0x1e5513=util[_0xdf4a('0x17')](_0xdf4a('0x47'),_0x59785a['channel'],_0x59785a[_0xdf4a('0x48')]);var _0x159f7e=moment()[_0xdf4a('0x17')](_0xdf4a('0x49'))[_0xdf4a('0xd')]();var _0x4d0f29=htmlToPdfmake(_0x1976be,{'window':window,'tableAutoSize':!![]});return{'content':[_0x4d0f29],'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0xdf4a('0x4a'),'margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0xdf4a('0x4a'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':'center'}},'header':function(){return[{'text':_0xdf4a('0x4b'),'style':'header'}];},'footer':function(_0x3e87da,_0x3e91a3){return[{'text':util[_0xdf4a('0x17')](_0xdf4a('0x4c'),_0x1e5513,_0x3e87da,_0x3e91a3,_0x159f7e),'style':_0xdf4a('0x4d')}];}};}function writePDFDocument(_0x5dd5ee,_0x21bd48){return new Promise(function(_0x428e80,_0x3fc6e7){var _0x4b119f=_0x5dd5ee[_0xdf4a('0x4e')](fs[_0xdf4a('0x4f')](_0x21bd48));_0x4b119f['on'](_0xdf4a('0x50'),function(){_0x428e80(_0xdf4a('0x50'));});_0x4b119f['on'](_0xdf4a('0x51'),function(_0x3dcd03){_0x3fc6e7(_0x3dcd03);});_0x5dd5ee[_0xdf4a('0x52')]();});}exports[_0xdf4a('0x53')]=function(_0x524f98,_0x174ac0){var _0x2d68cf=getPDFPrinter();var _0x14b3e2=getPDFDocDefinitionFromHTML(_0x524f98,_0x174ac0);var _0x101ce1=_0x2d68cf[_0xdf4a('0x34')](_0x14b3e2);return writePDFDocument(_0x101ce1,_0x174ac0[_0xdf4a('0x54')])[_0xdf4a('0x3f')](function(_0x14d974){throw _0x14d974;});};