Built motion from commit 47436d59.|2.6.7
[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 _0xf37b=['splitSizePdf','then','length','range','sequelize','query','SELECT','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','dirname','.pdf','join','mkdirSync','each','flatten','createPdfKitDocument','%s%d.%s','%s.%s','pdf','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','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','finally','/fonts/arial-regular.ttf','/fonts/arial-bold.ttf','/fonts/arial-italic.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','pipe','createWriteStream','error','path','moment','html-to-pdfmake','pdfmake/src/printer','zip-dir','rimraf','jsdom','JSDOM','window','../../mysqldb','../../config/logger','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','AnalyticExtractedReport','update','tableHeader','map','toString','value','fill','auto','body','chunk','keys','forEach','format','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','startDate','endDate','push','header','pageBreak','margin','landscape','\x20/\x20','footer','Arial','black','right','num'];(function(_0x6a0266,_0x1552d6){var _0x309e00=function(_0x17c1d1){while(--_0x17c1d1){_0x6a0266['push'](_0x6a0266['shift']());}};_0x309e00(++_0x1552d6);}(_0xf37b,0x86));var _0xbf37=function(_0x1a89a1,_0x56d889){_0x1a89a1=_0x1a89a1-0x0;var _0x3d5b46=_0xf37b[_0x1a89a1];return _0x3d5b46;};'use strict';var _=require('lodash');var fs=require('fs');var util=require('util');var path=require(_0xbf37('0x0'));var moment=require(_0xbf37('0x1'));var htmlToPdfmake=require(_0xbf37('0x2'));var PdfPrinter=require(_0xbf37('0x3'));var zipdir=require(_0xbf37('0x4'));var rimraf=require(_0xbf37('0x5'));var JSDOM=require(_0xbf37('0x6'))[_0xbf37('0x7')];var window=new JSDOM('')[_0xbf37('0x8')];var BPromise=require('bluebird');var db=require(_0xbf37('0x9'))['db'];var dbH=require(_0xbf37('0x9'))['dbH'];var logger=require(_0xbf37('0xa'))(_0xbf37('0xb'));var EXTRACTED_REPORT_ID=Number(process[_0xbf37('0xc')][0x2]);var QUERY=process['argv'][0x3];var PATH=process[_0xbf37('0xc')][0x4];var NAME=process[_0xbf37('0xc')][0x5];var FORMAT=_0xbf37('0xd');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0xee4b36,_0x47b820){var _0x54a895={'status':_0xee4b36};var _0x228b15={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x47b820){_0x54a895['savename']=_0x47b820;}return db[_0xbf37('0xe')][_0xbf37('0xf')](_0x54a895,_0x228b15);}function getHeaders(_0x44000f){return _['map'](_0x44000f,function(_0x587579){return{'text':_0x587579,'style':_0xbf37('0x10')};});}function getRows(_0x1c350b,_0x5f1d55){return _['map'](_0x5f1d55,function(_0x11c505){return _(_0x11c505)['pick'](_0x1c350b)[_0xbf37('0x11')](function(_0x1269c2){return _0x1269c2?_[_0xbf37('0x12')](_0x1269c2):'';})[_0xbf37('0x13')]();});}function createTable(_0x1ab024,_0x310725){var _0x1c783c={'widths':_[_0xbf37('0x14')](Array(_0x1ab024['length']),0x91),'heights':function(_0xb2a296){return _0xb2a296===0x0?_0xbf37('0x15'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x47c271=getHeaders(_0x1ab024);_0x1c783c[_0xbf37('0x16')]['push'](_0x47c271);var _0x36aa43=getRows(_0x1ab024,_0x310725);_0x1c783c[_0xbf37('0x16')]=_0x1c783c[_0xbf37('0x16')]['concat'](_0x36aa43);return _0x1c783c;}function createTables(_0x4baaef){var _0x2f9338=[];var _0x3a9e2e=_[_0xbf37('0x17')](Object[_0xbf37('0x18')](_0x4baaef[0x0]),0x5);_0x3a9e2e[_0xbf37('0x19')](function(_0x132348){_0x2f9338['push'](createTable(_0x132348,_0x4baaef));});return _0x2f9338;}function getPDFDocDefinition(_0x2a6eb9){var _0x33061b=util[_0xbf37('0x1a')](_0xbf37('0x1b'),NAME,EXTRACTED_REPORT[_0xbf37('0x1c')],moment(EXTRACTED_REPORT[_0xbf37('0x1d')])[_0xbf37('0x1a')](FORMAT),moment(EXTRACTED_REPORT[_0xbf37('0x1e')])[_0xbf37('0x1a')](FORMAT));var _0x5c3e15=[];for(var _0x51c414=0x0;_0x51c414<_0x2a6eb9['length'];_0x51c414++){var _0x2a3ca9=[];if(_0x51c414===0x0){_0x2a3ca9[_0xbf37('0x1f')]({'text':_0x33061b,'style':_0xbf37('0x20')});}var _0x3bd5cd={'table':_0x2a6eb9[_0x51c414]};if(_0x51c414>0x0){_0x3bd5cd[_0xbf37('0x21')]='before';_0x3bd5cd[_0xbf37('0x22')]=[0x0,0x46,0x0,0x0];}_0x2a3ca9[_0xbf37('0x1f')](_0x3bd5cd);_0x5c3e15['push'](_0x2a3ca9);}return{'pageSize':'A4','pageOrientation':_0xbf37('0x23'),'content':_0x5c3e15,'footer':function(_0x19a76,_0x3dadc4){return{'text':_0x19a76[_0xbf37('0x12')]()+_0xbf37('0x24')+_0x3dadc4,'style':_0xbf37('0x25')};},'defaultStyle':{'font':_0xbf37('0x26')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':_0xbf37('0x27')},'footer':{'alignment':_0xbf37('0x28'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x1fab02){var _0x378ede=0x1388;var _0x5f1237;if(!_0x1fab02[0x0][_0xbf37('0x29')]){return analyticExtractedReport('Empty');}return db['Setting']['find']({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0xbf37('0x2a')]})[_0xbf37('0x2b')](function(_0x4ce507){if(_0x4ce507){_0x5f1237=_0x4ce507;_0x378ede=_0x5f1237[_0xbf37('0x2a')]||0x3e8;}})[_0xbf37('0x2b')](function(){var _0x55a2e5=[];var _0xbd0d44=0x0;if(_0x5f1237['split']){if(_0x1fab02&&_0x1fab02[_0xbf37('0x2c')]){var _0x5c75fd=_[_0xbf37('0x2d')](_0x1fab02[0x0][_0xbf37('0x29')]/_0x378ede);var _0x2d7bb4=Number['isInteger'](_0x1fab02[0x0][_0xbf37('0x29')]/_0x378ede)?_0x1fab02[0x0][_0xbf37('0x29')]%_0x378ede:0x0;_0x5c75fd[_0xbf37('0x19')](function(_0x355812){if(_0x355812>0x0){_0xbd0d44+=_0x378ede;}_0x55a2e5[_0xbf37('0x1f')](dbH[_0xbf37('0x2e')][_0xbf37('0x2f')](util[_0xbf37('0x1a')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x378ede,_0xbd0d44),{'type':dbH[_0xbf37('0x2e')]['QueryTypes'][_0xbf37('0x30')]}));});if(_0x2d7bb4>0x0){_0xbd0d44+=_0x378ede;_0x55a2e5[_0xbf37('0x1f')](dbH[_0xbf37('0x2e')][_0xbf37('0x2f')](util['format'](_0xbf37('0x31'),QUERY,_0x2d7bb4,_0xbd0d44),{'type':dbH[_0xbf37('0x2e')][_0xbf37('0x32')][_0xbf37('0x30')]}));}}}else{_0x55a2e5['push'](dbH['sequelize'][_0xbf37('0x2f')](QUERY,{'type':dbH[_0xbf37('0x2e')]['QueryTypes'][_0xbf37('0x30')]}));}var _0x3607df=path[_0xbf37('0x33')](PATH);var _0x502e6c=path['basename'](PATH,_0xbf37('0x34'));var _0x3fb7bd=_0x5f1237['split']&&_0x55a2e5[_0xbf37('0x2c')]>0x1;var _0x3781c2=[];if(!fs['existsSync'](path[_0xbf37('0x35')](_0x3607df,_0x502e6c))&&_0x3fb7bd){fs[_0xbf37('0x36')](path[_0xbf37('0x35')](_0x3607df,_0x502e6c));}return BPromise[_0xbf37('0x37')](_0x55a2e5,function(_0x54240f){_0x3781c2[_0xbf37('0x1f')](_0x54240f);})['then'](function(){var _0x228722=[];for(var _0x183c9f=0x0;_0x183c9f<_0x3781c2[_0xbf37('0x2c')];_0x183c9f+=0x1){var _0x250401=_0x3781c2[_0x183c9f];var _0x16990c=createTables(_[_0xbf37('0x38')](_0x250401));var _0x1e2778;var _0x16e9a8=getPDFDocDefinition(_0x16990c);var _0x2363cd=getPDFPrinter();var _0x4a984d=_0x2363cd[_0xbf37('0x39')](_0x16e9a8);if(_0x3fb7bd){_0x1e2778=path[_0xbf37('0x35')](_0x3607df,_0x502e6c,util['format'](_0xbf37('0x3a'),_0x502e6c,_0x183c9f,'pdf'));}else{_0x1e2778=path[_0xbf37('0x35')](_0x3607df,util[_0xbf37('0x1a')](_0xbf37('0x3b'),_0x502e6c,_0xbf37('0x3c')));}_0x228722[_0xbf37('0x1f')](writePDFDocument(_0x4a984d,_0x1e2778));}return Promise['all'](_0x228722);})[_0xbf37('0x2b')](function(){if(_0x3fb7bd){return new Promise(function(_0x17ff45){zipdir(path[_0xbf37('0x35')](_0x3607df,_0x502e6c),{'saveTo':path['join'](_0x3607df,util[_0xbf37('0x1a')](_0xbf37('0x3b'),_0x502e6c,'zip'))},function(){rimraf(path['join'](_0x3607df,_0x502e6c),function(){});_0x17ff45('zip\x20finished');});});}})[_0xbf37('0x2b')](function(){if(!_0x3fb7bd)return;rimraf(path['join'](_0x3607df,_0x502e6c),function(){});})[_0xbf37('0x2b')](function(){logger[_0xbf37('0x3d')](util[_0xbf37('0x1a')](_0xbf37('0x3e'),EXTRACTED_REPORT_ID,_0xbf37('0x3f')));return analyticExtractedReport(_0xbf37('0x40'),_0x3fb7bd?util[_0xbf37('0x1a')]('%s.%s',_0x502e6c,_0x3fb7bd?_0xbf37('0x41'):_0xbf37('0x3c')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0xbf37('0x3d')](util[_0xbf37('0x1a')](_0xbf37('0x42'),EXTRACTED_REPORT_ID,_0xbf37('0x3f')));return db[_0xbf37('0xe')][_0xbf37('0x43')]({'where':{'id':EXTRACTED_REPORT_ID}})[_0xbf37('0x2b')](function(_0x2e2040){EXTRACTED_REPORT=_0x2e2040;return dbH[_0xbf37('0x2e')]['query'](util[_0xbf37('0x1a')](_0xbf37('0x44'),QUERY),{'type':dbH[_0xbf37('0x2e')][_0xbf37('0x32')][_0xbf37('0x30')]});})[_0xbf37('0x2b')](extractReport)[_0xbf37('0x45')](function(_0x5725cc){logger['info'](util[_0xbf37('0x1a')](_0xbf37('0x46'),EXTRACTED_REPORT_ID,_0xbf37('0x3f')),util[_0xbf37('0x47')](_0x5725cc,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xbf37('0x48'));})[_0xbf37('0x49')](function(){process['exit'](EXIT_CODE);});}main();function getPDFPrinter(){var _0xf8931c=new PdfPrinter({'Arial':{'normal':__dirname+_0xbf37('0x4a'),'bold':__dirname+_0xbf37('0x4b'),'italics':__dirname+_0xbf37('0x4c'),'bolditalics':__dirname+_0xbf37('0x4d')}});return _0xf8931c;}function getPDFDocDefinitionFromHTML(_0x189bcd,_0x117b41){var _0x3dd38f=util[_0xbf37('0x1a')](_0xbf37('0x4e'),_0x117b41[_0xbf37('0x4f')],_0x117b41[_0xbf37('0x50')]);var _0x4d5eb0=moment()[_0xbf37('0x1a')](_0xbf37('0x51'))[_0xbf37('0x12')]();var _0x58542b=htmlToPdfmake(_0x189bcd,{'window':window,'tableAutoSize':!![]});return{'content':[_0x58542b],'defaultStyle':{'font':_0xbf37('0x26')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0xbf37('0x52'),'margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0xbf37('0x52'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':_0xbf37('0x52')}},'header':function(){return[{'text':_0xbf37('0x53'),'style':_0xbf37('0x20')}];},'footer':function(_0xd33d25,_0x542619){return[{'text':util[_0xbf37('0x1a')](_0xbf37('0x54'),_0x3dd38f,_0xd33d25,_0x542619,_0x4d5eb0),'style':_0xbf37('0x25')}];}};}function writePDFDocument(_0x35e0e1,_0x14e67c){return new Promise(function(_0x3fdd9f,_0x2609c9){var _0x5f0af1=_0x35e0e1[_0xbf37('0x55')](fs[_0xbf37('0x56')](_0x14e67c));_0x5f0af1['on']('finish',function(){_0x3fdd9f('finish');});_0x5f0af1['on'](_0xbf37('0x57'),function(_0x11b96a){_0x2609c9(_0x11b96a);});_0x35e0e1['end']();});}exports['createPdfFromHTML']=function(_0x4bcc15,_0x5910ab){var _0x583f6b=getPDFPrinter();var _0x292b94=getPDFDocDefinitionFromHTML(_0x4bcc15,_0x5910ab);var _0x2fc72e=_0x583f6b[_0xbf37('0x39')](_0x292b94);return writePDFDocument(_0x2fc72e,_0x5910ab[_0xbf37('0x0')])[_0xbf37('0x45')](function(_0x4ad209){throw _0x4ad209;});};