Built motion from commit (unavailable).|2.5.29
[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 _0x438c=['join','mkdirSync','all','flatten','createPdfKitDocument','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','CSV','zip','info','PDF','findOne','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','catch','inspect','Failed','finally','exit','/fonts/arial-regular.ttf','/fonts/arial-bold.ttf','/fonts/arial-italic.ttf','%s\x20#%d','channel','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','finish','error','end','lodash','util','path','moment','html-to-pdfmake','zip-dir','jsdom','JSDOM','../../mysqldb','argv','savename','AnalyticExtractedReport','update','map','tableHeader','pick','toString','value','fill','length','auto','body','push','keys','chunk','format','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','startDate','endDate','pageBreak','margin','\x20/\x20','footer','Arial','black','num','dirname','basename','.pdf','%s.%s','pdf','Setting','find','split','splitSizePdf','then','sequelize','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','query'];(function(_0x504c36,_0x44bbea){var _0x253151=function(_0x47f31c){while(--_0x47f31c){_0x504c36['push'](_0x504c36['shift']());}};_0x253151(++_0x44bbea);}(_0x438c,0x72));var _0xc438=function(_0x32fce1,_0x1c1017){_0x32fce1=_0x32fce1-0x0;var _0x55b47a=_0x438c[_0x32fce1];return _0x55b47a;};'use strict';var _=require(_0xc438('0x0'));var fs=require('fs');var util=require(_0xc438('0x1'));var path=require(_0xc438('0x2'));var moment=require(_0xc438('0x3'));var htmlToPdfmake=require(_0xc438('0x4'));var PdfPrinter=require('pdfmake/src/printer');var zipdir=require(_0xc438('0x5'));var rimraf=require('rimraf');var JSDOM=require(_0xc438('0x6'))[_0xc438('0x7')];var window=new JSDOM('')['window'];var db=require(_0xc438('0x8'))['db'];var dbH=require(_0xc438('0x8'))['dbH'];var logger=require('../../config/logger')('analytics');var EXTRACTED_REPORT_ID=Number(process[_0xc438('0x9')][0x2]);var QUERY=process[_0xc438('0x9')][0x3];var PATH=process['argv'][0x4];var NAME=process[_0xc438('0x9')][0x5];var FORMAT='MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a';var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x5af608,_0xd5e0ff){var _0x3f4385={'status':_0x5af608};var _0x2d5f66={'where':{'id':EXTRACTED_REPORT_ID}};if(_0xd5e0ff){_0x3f4385[_0xc438('0xa')]=_0xd5e0ff;}return db[_0xc438('0xb')][_0xc438('0xc')](_0x3f4385,_0x2d5f66);}function getHeaders(_0x580b15){return _[_0xc438('0xd')](_0x580b15,function(_0x1d7a15){return{'text':_0x1d7a15,'style':_0xc438('0xe')};});}function getRows(_0x29882e,_0x1d3ef3){return _[_0xc438('0xd')](_0x1d3ef3,function(_0x4641c1){return _(_0x4641c1)[_0xc438('0xf')](_0x29882e)[_0xc438('0xd')](function(_0x1f12f6){return _0x1f12f6?_[_0xc438('0x10')](_0x1f12f6):'';})[_0xc438('0x11')]();});}function createTable(_0x86bf5f,_0x348fa4){var _0x414105={'widths':_[_0xc438('0x12')](Array(_0x86bf5f[_0xc438('0x13')]),0x91),'heights':function(_0x7387dd){return _0x7387dd===0x0?_0xc438('0x14'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x38ce11=getHeaders(_0x86bf5f);_0x414105[_0xc438('0x15')][_0xc438('0x16')](_0x38ce11);var _0x12a5c1=getRows(_0x86bf5f,_0x348fa4);_0x414105[_0xc438('0x15')]=_0x414105[_0xc438('0x15')]['concat'](_0x12a5c1);return _0x414105;}function createTables(_0x4d031f){var _0xae5f26=[];var _0x6e8586=Object[_0xc438('0x17')](_0x4d031f[0x0]);if(_0x6e8586[_0xc438('0x13')]>0x5)_0x6e8586=_[_0xc438('0x18')](Object[_0xc438('0x17')](_0x4d031f[0x0]),0x5);_0x6e8586['forEach'](function(_0x1d1c85){_0xae5f26['push'](createTable(_0x1d1c85,_0x4d031f));});return _0xae5f26;}function getPDFDocDefinition(_0xf69207){var _0x139b36=util[_0xc438('0x19')](_0xc438('0x1a'),NAME,EXTRACTED_REPORT[_0xc438('0x1b')],moment(EXTRACTED_REPORT[_0xc438('0x1c')])[_0xc438('0x19')](FORMAT),moment(EXTRACTED_REPORT[_0xc438('0x1d')])[_0xc438('0x19')](FORMAT));var _0x5a8f88=[];for(var _0xac92fd=0x0;_0xac92fd<_0xf69207['length'];_0xac92fd++){var _0x15618e=[];if(_0xac92fd===0x0){_0x15618e[_0xc438('0x16')]({'text':_0x139b36,'style':'header'});}var _0x3c82d6={'table':_0xf69207[_0xac92fd]};if(_0xac92fd>0x0){_0x3c82d6[_0xc438('0x1e')]='before';_0x3c82d6[_0xc438('0x1f')]=[0x0,0x46,0x0,0x0];}_0x15618e[_0xc438('0x16')](_0x3c82d6);_0x5a8f88[_0xc438('0x16')](_0x15618e);}return{'pageSize':'A4','pageOrientation':'landscape','content':_0x5a8f88,'footer':function(_0x3f3ba1,_0x3fef9e){return{'text':_0x3f3ba1[_0xc438('0x10')]()+_0xc438('0x20')+_0x3fef9e,'style':_0xc438('0x21')};},'defaultStyle':{'font':_0xc438('0x22')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':_0xc438('0x23')},'footer':{'alignment':'right','margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x1f455a){var _0x3583e5=0x1388;var _0x505f1d;if(!_0x1f455a[0x0][_0xc438('0x24')]){return analyticExtractedReport('Empty');}var _0x1ef4ec=[];var _0x459fef=0x0;var _0x4b5051=!![];var _0x5597b2=path[_0xc438('0x25')](PATH);var _0x2892e9=path[_0xc438('0x26')](PATH,_0xc438('0x27'));var _0x589d93=path['join'](_0x5597b2,util[_0xc438('0x19')](_0xc438('0x28'),_0x2892e9,_0xc438('0x29')));var _0x2f6d4d=![];return db[_0xc438('0x2a')][_0xc438('0x2b')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xc438('0x2c'),_0xc438('0x2d')]})[_0xc438('0x2e')](function(_0xd85bfa){if(_0xd85bfa){_0x505f1d=_0xd85bfa;_0x3583e5=_0x505f1d[_0xc438('0x2d')]||0x3e8;}})[_0xc438('0x2e')](function(){if(_0x1f455a&&_0x1f455a['length']){var _0x3cb20a=_0x1f455a[0x0][_0xc438('0x24')]%(_0x459fef+_0x3583e5);if(_0x505f1d[_0xc438('0x2c')]){for(;_0x4b5051;_0x459fef+=_0x3583e5,_0x3cb20a=_0x1f455a[0x0][_0xc438('0x24')]%(_0x459fef+_0x3583e5)){if(_0x3cb20a==0x0||_0x3cb20a==_0x1f455a[0x0][_0xc438('0x24')]){_0x4b5051=![];}_0x1ef4ec[_0xc438('0x16')](dbH[_0xc438('0x2f')]['query'](util[_0xc438('0x19')](_0xc438('0x30'),QUERY,_0x3583e5,_0x459fef),{'type':dbH[_0xc438('0x2f')][_0xc438('0x31')][_0xc438('0x32')]}));}}else{_0x1ef4ec[_0xc438('0x16')](dbH[_0xc438('0x2f')][_0xc438('0x33')](QUERY,{'type':dbH[_0xc438('0x2f')][_0xc438('0x31')]['SELECT']}));}}_0x2f6d4d=_0x505f1d[_0xc438('0x2c')]&&_0x1ef4ec[_0xc438('0x13')]>0x1;if(!fs['existsSync'](path[_0xc438('0x34')](_0x5597b2,_0x2892e9))&&_0x2f6d4d){fs[_0xc438('0x35')](path[_0xc438('0x34')](_0x5597b2,_0x2892e9));}return Promise[_0xc438('0x36')](_0x1ef4ec);})[_0xc438('0x2e')](function(_0x4b13c6){return createTables(_[_0xc438('0x37')](_0x4b13c6));})['then'](function(_0x1d3975){var _0x2e8328=getPDFDocDefinition(_0x1d3975);var _0x2cf8d2=getPDFPrinter();var _0x2e2659=_0x2cf8d2[_0xc438('0x38')](_0x2e8328);if(_0x2f6d4d)_0x589d93=path['join'](_0x5597b2,_0x2892e9,util[_0xc438('0x19')]('%s%d.%s',_0x2892e9,index,_0xc438('0x29')));return writePDFDocument(_0x2e2659,_0x589d93);})['then'](function(){if(!_0x2f6d4d)return;zipdir(path[_0xc438('0x34')](_0x5597b2,_0x2892e9),{'saveTo':path[_0xc438('0x34')](_0x5597b2,util[_0xc438('0x19')]('%s.%s',_0x2892e9,'zip'))},function(_0x44fb50){if(_0x44fb50)throw _0x44fb50;return;});})[_0xc438('0x2e')](function(){if(!_0x2f6d4d)return;rimraf(path['join'](_0x5597b2,_0x2892e9),function(){});})['then'](function(){logger['info'](util['format'](_0xc438('0x39'),EXTRACTED_REPORT_ID,_0xc438('0x3a')));return analyticExtractedReport('Completed',_0x2f6d4d?util['format'](_0xc438('0x28'),_0x2892e9,_0x2f6d4d?_0xc438('0x3b'):'pdf'):null);});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0xc438('0x3c')](util[_0xc438('0x19')]('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0xc438('0x3d')));return db[_0xc438('0xb')][_0xc438('0x3e')]({'where':{'id':EXTRACTED_REPORT_ID}})['then'](function(_0x6056a1){EXTRACTED_REPORT=_0x6056a1;return dbH[_0xc438('0x2f')][_0xc438('0x33')](util[_0xc438('0x19')](_0xc438('0x3f'),QUERY),{'type':dbH[_0xc438('0x2f')]['QueryTypes'][_0xc438('0x32')]});})[_0xc438('0x2e')](extractReport)[_0xc438('0x40')](function(_0x2af617){logger[_0xc438('0x3c')](util[_0xc438('0x19')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,'PDF'),util[_0xc438('0x41')](_0x2af617,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xc438('0x42'));})[_0xc438('0x43')](function(){process[_0xc438('0x44')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x2a6d28=new PdfPrinter({'Arial':{'normal':__dirname+_0xc438('0x45'),'bold':__dirname+_0xc438('0x46'),'italics':__dirname+_0xc438('0x47'),'bolditalics':__dirname+'/fonts/arial-bold-italic.ttf'}});return _0x2a6d28;}function getPDFDocDefinitionFromHTML(_0x238835,_0x26f077){var _0x28f3a0=util[_0xc438('0x19')](_0xc438('0x48'),_0x26f077[_0xc438('0x49')],_0x26f077['interactionId']);var _0xb4ff54=moment()[_0xc438('0x19')](_0xc438('0x4a'))['toString']();var _0x2ce272=htmlToPdfmake(_0x238835,{'window':window,'tableAutoSize':!![]});return{'content':[_0x2ce272],'defaultStyle':{'font':_0xc438('0x22')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0xc438('0x4b'),'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':_0xc438('0x4c'),'style':_0xc438('0x4d')}];},'footer':function(_0x1a2d71,_0x28de7b){return[{'text':util[_0xc438('0x19')](_0xc438('0x4e'),_0x28f3a0,_0x1a2d71,_0x28de7b,_0xb4ff54),'style':_0xc438('0x21')}];}};}function writePDFDocument(_0x507ea2,_0x143cb9){return new Promise(function(_0x5cccee,_0x319912){var _0x46d694=_0x507ea2[_0xc438('0x4f')](fs['createWriteStream'](_0x143cb9));_0x46d694['on'](_0xc438('0x50'),function(){_0x5cccee(_0xc438('0x50'));});_0x46d694['on'](_0xc438('0x51'),function(_0x3901bb){_0x319912(_0x3901bb);});_0x507ea2[_0xc438('0x52')]();});}exports['createPdfFromHTML']=function(_0x5cdf66,_0x5a50a3){var _0x23bb83=getPDFPrinter();var _0x1c66f8=getPDFDocDefinitionFromHTML(_0x5cdf66,_0x5a50a3);var _0x69a2c0=_0x23bb83[_0xc438('0x38')](_0x1c66f8);return writePDFDocument(_0x69a2c0,_0x5a50a3['path'])['catch'](function(_0x3b38b6){throw _0x3b38b6;});};