Built motion from commit da617fac.|2.6.6
[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 _0xb414=['Failed','finally','exit','/fonts/arial-regular.ttf','/fonts/arial-bold.ttf','/fonts/arial-bold-italic.ttf','channel','interactionId','YYYY-MM-DD','center','Interaction\x20Transcript','header','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','pipe','createWriteStream','finish','error','end','lodash','path','moment','html-to-pdfmake','pdfmake/src/printer','rimraf','jsdom','JSDOM','window','bluebird','../../mysqldb','../../config/logger','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','AnalyticExtractedReport','update','map','tableHeader','toString','value','fill','length','auto','body','push','concat','chunk','keys','name','startDate','format','endDate','pageBreak','before','landscape','\x20/\x20','footer','Arial','black','right','Empty','Setting','find','split','splitSizePdf','then','num','forEach','query','%s\x20limit\x20%d\x20OFFSET\x20%d','sequelize','QueryTypes','SELECT','dirname','basename','.pdf','existsSync','mkdirSync','join','each','flatten','createPdfKitDocument','%s%d.%s','pdf','all','%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','inspect'];(function(_0x45b034,_0x3a57dd){var _0x509cb0=function(_0x3a89d5){while(--_0x3a89d5){_0x45b034['push'](_0x45b034['shift']());}};_0x509cb0(++_0x3a57dd);}(_0xb414,0x192));var _0x4b41=function(_0x1aafb2,_0x1055ee){_0x1aafb2=_0x1aafb2-0x0;var _0x42e538=_0xb414[_0x1aafb2];return _0x42e538;};'use strict';var _=require(_0x4b41('0x0'));var fs=require('fs');var util=require('util');var path=require(_0x4b41('0x1'));var moment=require(_0x4b41('0x2'));var htmlToPdfmake=require(_0x4b41('0x3'));var PdfPrinter=require(_0x4b41('0x4'));var zipdir=require('zip-dir');var rimraf=require(_0x4b41('0x5'));var JSDOM=require(_0x4b41('0x6'))[_0x4b41('0x7')];var window=new JSDOM('')[_0x4b41('0x8')];var BPromise=require(_0x4b41('0x9'));var db=require(_0x4b41('0xa'))['db'];var dbH=require(_0x4b41('0xa'))['dbH'];var logger=require(_0x4b41('0xb'))(_0x4b41('0xc'));var EXTRACTED_REPORT_ID=Number(process[_0x4b41('0xd')][0x2]);var QUERY=process[_0x4b41('0xd')][0x3];var PATH=process[_0x4b41('0xd')][0x4];var NAME=process[_0x4b41('0xd')][0x5];var FORMAT=_0x4b41('0xe');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x267ed7,_0x474ae0){var _0x12f15a={'status':_0x267ed7};var _0x1f87de={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x474ae0){_0x12f15a['savename']=_0x474ae0;}return db[_0x4b41('0xf')][_0x4b41('0x10')](_0x12f15a,_0x1f87de);}function getHeaders(_0x50a8ce){return _[_0x4b41('0x11')](_0x50a8ce,function(_0x5c3c80){return{'text':_0x5c3c80,'style':_0x4b41('0x12')};});}function getRows(_0x23cb29,_0x1d0e3e){return _[_0x4b41('0x11')](_0x1d0e3e,function(_0x2ed7f5){return _(_0x2ed7f5)['pick'](_0x23cb29)['map'](function(_0x111404){return _0x111404?_[_0x4b41('0x13')](_0x111404):'';})[_0x4b41('0x14')]();});}function createTable(_0x128138,_0x3c3c26){var _0x43a000={'widths':_[_0x4b41('0x15')](Array(_0x128138[_0x4b41('0x16')]),0x91),'heights':function(_0x93c149){return _0x93c149===0x0?_0x4b41('0x17'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x4a9650=getHeaders(_0x128138);_0x43a000[_0x4b41('0x18')][_0x4b41('0x19')](_0x4a9650);var _0x232400=getRows(_0x128138,_0x3c3c26);_0x43a000[_0x4b41('0x18')]=_0x43a000[_0x4b41('0x18')][_0x4b41('0x1a')](_0x232400);return _0x43a000;}function createTables(_0x456566){var _0x3d68e3=[];var _0xd8a026=_[_0x4b41('0x1b')](Object[_0x4b41('0x1c')](_0x456566[0x0]),0x5);_0xd8a026['forEach'](function(_0x1eb27f){_0x3d68e3['push'](createTable(_0x1eb27f,_0x456566));});return _0x3d68e3;}function getPDFDocDefinition(_0x484c01){var _0x29287e=util['format']('Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s',NAME,EXTRACTED_REPORT[_0x4b41('0x1d')],moment(EXTRACTED_REPORT[_0x4b41('0x1e')])[_0x4b41('0x1f')](FORMAT),moment(EXTRACTED_REPORT[_0x4b41('0x20')])[_0x4b41('0x1f')](FORMAT));var _0x4a3a0d=[];for(var _0x5f4678=0x0;_0x5f4678<_0x484c01['length'];_0x5f4678++){var _0x597f47=[];if(_0x5f4678===0x0){_0x597f47[_0x4b41('0x19')]({'text':_0x29287e,'style':'header'});}var _0x2b83fe={'table':_0x484c01[_0x5f4678]};if(_0x5f4678>0x0){_0x2b83fe[_0x4b41('0x21')]=_0x4b41('0x22');_0x2b83fe['margin']=[0x0,0x46,0x0,0x0];}_0x597f47['push'](_0x2b83fe);_0x4a3a0d['push'](_0x597f47);}return{'pageSize':'A4','pageOrientation':_0x4b41('0x23'),'content':_0x4a3a0d,'footer':function(_0x24d6ac,_0x1ec90c){return{'text':_0x24d6ac['toString']()+_0x4b41('0x24')+_0x1ec90c,'style':_0x4b41('0x25')};},'defaultStyle':{'font':_0x4b41('0x26')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':_0x4b41('0x27')},'footer':{'alignment':_0x4b41('0x28'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x3ef83e){var _0x3db5c0=0x1388;var _0x4a2857;if(!_0x3ef83e[0x0]['num']){return analyticExtractedReport(_0x4b41('0x29'));}return db[_0x4b41('0x2a')][_0x4b41('0x2b')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x4b41('0x2c'),'splitSizePdf']})['then'](function(_0x2a650e){if(_0x2a650e){_0x4a2857=_0x2a650e;_0x3db5c0=_0x4a2857[_0x4b41('0x2d')]||0x3e8;}})[_0x4b41('0x2e')](function(){var _0x5852ff=[];var _0xcf3f3b=0x0;if(_0x4a2857['split']){if(_0x3ef83e&&_0x3ef83e[_0x4b41('0x16')]){var _0x11d219=_['range'](_0x3ef83e[0x0][_0x4b41('0x2f')]/_0x3db5c0);var _0x35daef=Number['isInteger'](_0x3ef83e[0x0][_0x4b41('0x2f')]/_0x3db5c0)?_0x3ef83e[0x0][_0x4b41('0x2f')]%_0x3db5c0:0x0;_0x11d219[_0x4b41('0x30')](function(_0x5d26a2){if(_0x5d26a2>0x0){_0xcf3f3b+=_0x3db5c0;}_0x5852ff[_0x4b41('0x19')](dbH['sequelize'][_0x4b41('0x31')](util[_0x4b41('0x1f')](_0x4b41('0x32'),QUERY,_0x3db5c0,_0xcf3f3b),{'type':dbH[_0x4b41('0x33')][_0x4b41('0x34')][_0x4b41('0x35')]}));});if(_0x35daef>0x0){_0xcf3f3b+=_0x3db5c0;_0x5852ff[_0x4b41('0x19')](dbH[_0x4b41('0x33')][_0x4b41('0x31')](util[_0x4b41('0x1f')](_0x4b41('0x32'),QUERY,_0x35daef,_0xcf3f3b),{'type':dbH[_0x4b41('0x33')][_0x4b41('0x34')][_0x4b41('0x35')]}));}}}else{_0x5852ff['push'](dbH['sequelize']['query'](QUERY,{'type':dbH[_0x4b41('0x33')]['QueryTypes'][_0x4b41('0x35')]}));}var _0x288109=path[_0x4b41('0x36')](PATH);var _0x37b70e=path[_0x4b41('0x37')](PATH,_0x4b41('0x38'));var _0x51d1ae=_0x4a2857[_0x4b41('0x2c')]&&_0x5852ff[_0x4b41('0x16')]>0x1;var _0x1de030=[];if(!fs[_0x4b41('0x39')](path['join'](_0x288109,_0x37b70e))&&_0x51d1ae){fs[_0x4b41('0x3a')](path[_0x4b41('0x3b')](_0x288109,_0x37b70e));}return BPromise[_0x4b41('0x3c')](_0x5852ff,function(_0x3b27c7){_0x1de030['push'](_0x3b27c7);})[_0x4b41('0x2e')](function(){var _0x4bd6bd=[];for(var _0x1e6f5f=0x0;_0x1e6f5f<_0x1de030['length'];_0x1e6f5f+=0x1){var _0x17c195=_0x1de030[_0x1e6f5f];var _0x1920b2=createTables(_[_0x4b41('0x3d')](_0x17c195));var _0x5e5c06;var _0xe62e97=getPDFDocDefinition(_0x1920b2);var _0x3e40d0=getPDFPrinter();var _0x3619a7=_0x3e40d0[_0x4b41('0x3e')](_0xe62e97);if(_0x51d1ae){_0x5e5c06=path[_0x4b41('0x3b')](_0x288109,_0x37b70e,util[_0x4b41('0x1f')](_0x4b41('0x3f'),_0x37b70e,_0x1e6f5f,_0x4b41('0x40')));}else{_0x5e5c06=path[_0x4b41('0x3b')](_0x288109,util[_0x4b41('0x1f')]('%s.%s',_0x37b70e,'pdf'));}_0x4bd6bd[_0x4b41('0x19')](writePDFDocument(_0x3619a7,_0x5e5c06));}return Promise[_0x4b41('0x41')](_0x4bd6bd);})[_0x4b41('0x2e')](function(){if(_0x51d1ae){return new Promise(function(_0x59a4c0){zipdir(path[_0x4b41('0x3b')](_0x288109,_0x37b70e),{'saveTo':path[_0x4b41('0x3b')](_0x288109,util[_0x4b41('0x1f')](_0x4b41('0x42'),_0x37b70e,'zip'))},function(){rimraf(path[_0x4b41('0x3b')](_0x288109,_0x37b70e),function(){});_0x59a4c0(_0x4b41('0x43'));});});}})[_0x4b41('0x2e')](function(){if(!_0x51d1ae)return;rimraf(path[_0x4b41('0x3b')](_0x288109,_0x37b70e),function(){});})[_0x4b41('0x2e')](function(){logger[_0x4b41('0x44')](util[_0x4b41('0x1f')](_0x4b41('0x45'),EXTRACTED_REPORT_ID,_0x4b41('0x46')));return analyticExtractedReport(_0x4b41('0x47'),_0x51d1ae?util['format'](_0x4b41('0x42'),_0x37b70e,_0x51d1ae?_0x4b41('0x48'):_0x4b41('0x40')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0x4b41('0x44')](util[_0x4b41('0x1f')](_0x4b41('0x49'),EXTRACTED_REPORT_ID,_0x4b41('0x46')));return db[_0x4b41('0xf')][_0x4b41('0x4a')]({'where':{'id':EXTRACTED_REPORT_ID}})['then'](function(_0x1acae3){EXTRACTED_REPORT=_0x1acae3;return dbH['sequelize'][_0x4b41('0x31')](util[_0x4b41('0x1f')](_0x4b41('0x4b'),QUERY),{'type':dbH[_0x4b41('0x33')][_0x4b41('0x34')][_0x4b41('0x35')]});})[_0x4b41('0x2e')](extractReport)[_0x4b41('0x4c')](function(_0xe42ca6){logger[_0x4b41('0x44')](util['format']('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x4b41('0x46')),util[_0x4b41('0x4d')](_0xe42ca6,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x4b41('0x4e'));})[_0x4b41('0x4f')](function(){process[_0x4b41('0x50')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x12e197=new PdfPrinter({'Arial':{'normal':__dirname+_0x4b41('0x51'),'bold':__dirname+_0x4b41('0x52'),'italics':__dirname+'/fonts/arial-italic.ttf','bolditalics':__dirname+_0x4b41('0x53')}});return _0x12e197;}function getPDFDocDefinitionFromHTML(_0xb35f,_0x2e3ab6){var _0x47329c=util[_0x4b41('0x1f')]('%s\x20#%d',_0x2e3ab6[_0x4b41('0x54')],_0x2e3ab6[_0x4b41('0x55')]);var _0x1e1a85=moment()[_0x4b41('0x1f')](_0x4b41('0x56'))[_0x4b41('0x13')]();var _0x5692a2=htmlToPdfmake(_0xb35f,{'window':window,'tableAutoSize':!![]});return{'content':[_0x5692a2],'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0x4b41('0x57'),'margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0x4b41('0x57'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':_0x4b41('0x57')}},'header':function(){return[{'text':_0x4b41('0x58'),'style':_0x4b41('0x59')}];},'footer':function(_0x46c67c,_0x351853){return[{'text':util[_0x4b41('0x1f')](_0x4b41('0x5a'),_0x47329c,_0x46c67c,_0x351853,_0x1e1a85),'style':'footer'}];}};}function writePDFDocument(_0x53e000,_0x50cf60){return new Promise(function(_0x3d74db,_0x492342){var _0x2db8f9=_0x53e000[_0x4b41('0x5b')](fs[_0x4b41('0x5c')](_0x50cf60));_0x2db8f9['on'](_0x4b41('0x5d'),function(){_0x3d74db(_0x4b41('0x5d'));});_0x2db8f9['on'](_0x4b41('0x5e'),function(_0x169f60){_0x492342(_0x169f60);});_0x53e000[_0x4b41('0x5f')]();});}exports['createPdfFromHTML']=function(_0x302f05,_0x10b3fc){var _0x459b7f=getPDFPrinter();var _0x1d21c5=getPDFDocDefinitionFromHTML(_0x302f05,_0x10b3fc);var _0x24a29b=_0x459b7f['createPdfKitDocument'](_0x1d21c5);return writePDFDocument(_0x24a29b,_0x10b3fc[_0x4b41('0x1')])[_0x4b41('0x4c')](function(_0x3f97d6){throw _0x3f97d6;});};