8e1f3ffa2ac9e43b5e754f67bf4cf66ab19d0b8c
[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 _0xc0d4=['jsdom','JSDOM','window','../../mysqldb','../../config/logger','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','update','tableHeader','map','toString','value','fill','length','auto','push','body','concat','keys','forEach','startDate','format','endDate','pageBreak','before','landscape','\x20/\x20','footer','Arial','right','num','Empty','Setting','find','split','splitSizePdf','then','range','isInteger','sequelize','%s\x20limit\x20%d\x20OFFSET\x20%d','query','QueryTypes','dirname','basename','.pdf','join','mkdirSync','each','%s%d.%s','pdf','%s.%s','zip\x20finished','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','AnalyticExtractedReport','findOne','SELECT','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','PDF','inspect','Failed','finally','exit','/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','header','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','createWriteStream','finish','error','createPdfFromHTML','createPdfKitDocument','lodash','util','path','moment','html-to-pdfmake','pdfmake/src/printer'];(function(_0x5da016,_0x268421){var _0x384902=function(_0x19f6b1){while(--_0x19f6b1){_0x5da016['push'](_0x5da016['shift']());}};_0x384902(++_0x268421);}(_0xc0d4,0x10b));var _0x4c0d=function(_0x446e61,_0x27e680){_0x446e61=_0x446e61-0x0;var _0x4160a8=_0xc0d4[_0x446e61];return _0x4160a8;};'use strict';var _=require(_0x4c0d('0x0'));var fs=require('fs');var util=require(_0x4c0d('0x1'));var path=require(_0x4c0d('0x2'));var moment=require(_0x4c0d('0x3'));var htmlToPdfmake=require(_0x4c0d('0x4'));var PdfPrinter=require(_0x4c0d('0x5'));var zipdir=require('zip-dir');var rimraf=require('rimraf');var JSDOM=require(_0x4c0d('0x6'))[_0x4c0d('0x7')];var window=new JSDOM('')[_0x4c0d('0x8')];var BPromise=require('bluebird');var db=require('../../mysqldb')['db'];var dbH=require(_0x4c0d('0x9'))['dbH'];var logger=require(_0x4c0d('0xa'))('analytics');var EXTRACTED_REPORT_ID=Number(process[_0x4c0d('0xb')][0x2]);var QUERY=process[_0x4c0d('0xb')][0x3];var PATH=process[_0x4c0d('0xb')][0x4];var NAME=process[_0x4c0d('0xb')][0x5];var FORMAT=_0x4c0d('0xc');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x231777,_0x126624){var _0x24f347={'status':_0x231777};var _0x1d18a8={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x126624){_0x24f347[_0x4c0d('0xd')]=_0x126624;}return db['AnalyticExtractedReport'][_0x4c0d('0xe')](_0x24f347,_0x1d18a8);}function getHeaders(_0x3e787d){return _['map'](_0x3e787d,function(_0x21d33f){return{'text':_0x21d33f,'style':_0x4c0d('0xf')};});}function getRows(_0x5e513d,_0x5f1a6b){return _[_0x4c0d('0x10')](_0x5f1a6b,function(_0x7f54fc){return _(_0x7f54fc)['pick'](_0x5e513d)['map'](function(_0x1889d8){return _0x1889d8?_[_0x4c0d('0x11')](_0x1889d8):'';})[_0x4c0d('0x12')]();});}function createTable(_0x51c14d,_0xc4c7ae){var _0x4865fc={'widths':_[_0x4c0d('0x13')](Array(_0x51c14d[_0x4c0d('0x14')]),0x91),'heights':function(_0x83e6bb){return _0x83e6bb===0x0?_0x4c0d('0x15'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x2e41ac=getHeaders(_0x51c14d);_0x4865fc['body'][_0x4c0d('0x16')](_0x2e41ac);var _0x3527f7=getRows(_0x51c14d,_0xc4c7ae);_0x4865fc[_0x4c0d('0x17')]=_0x4865fc['body'][_0x4c0d('0x18')](_0x3527f7);return _0x4865fc;}function createTables(_0x3da614){var _0x46dd69=[];var _0x3c44ca=_['chunk'](Object[_0x4c0d('0x19')](_0x3da614[0x0]),0x5);_0x3c44ca[_0x4c0d('0x1a')](function(_0x59b1ed){_0x46dd69[_0x4c0d('0x16')](createTable(_0x59b1ed,_0x3da614));});return _0x46dd69;}function getPDFDocDefinition(_0x3f0cf4){var _0x5effff=util['format']('Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s',NAME,EXTRACTED_REPORT['name'],moment(EXTRACTED_REPORT[_0x4c0d('0x1b')])[_0x4c0d('0x1c')](FORMAT),moment(EXTRACTED_REPORT[_0x4c0d('0x1d')])[_0x4c0d('0x1c')](FORMAT));var _0xf9d6ac=[];for(var _0x3d3159=0x0;_0x3d3159<_0x3f0cf4[_0x4c0d('0x14')];_0x3d3159++){var _0x44356=[];if(_0x3d3159===0x0){_0x44356[_0x4c0d('0x16')]({'text':_0x5effff,'style':'header'});}var _0x30696={'table':_0x3f0cf4[_0x3d3159]};if(_0x3d3159>0x0){_0x30696[_0x4c0d('0x1e')]=_0x4c0d('0x1f');_0x30696['margin']=[0x0,0x46,0x0,0x0];}_0x44356[_0x4c0d('0x16')](_0x30696);_0xf9d6ac[_0x4c0d('0x16')](_0x44356);}return{'pageSize':'A4','pageOrientation':_0x4c0d('0x20'),'content':_0xf9d6ac,'footer':function(_0x17036f,_0x511a64){return{'text':_0x17036f[_0x4c0d('0x11')]()+_0x4c0d('0x21')+_0x511a64,'style':_0x4c0d('0x22')};},'defaultStyle':{'font':_0x4c0d('0x23')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':'black'},'footer':{'alignment':_0x4c0d('0x24'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0xdc471e){var _0x41c1c9=0x1388;var _0xf604b1;if(!_0xdc471e[0x0][_0x4c0d('0x25')]){return analyticExtractedReport(_0x4c0d('0x26'));}return db[_0x4c0d('0x27')][_0x4c0d('0x28')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x4c0d('0x29'),_0x4c0d('0x2a')]})[_0x4c0d('0x2b')](function(_0xe67237){if(_0xe67237){_0xf604b1=_0xe67237;_0x41c1c9=_0xf604b1[_0x4c0d('0x2a')]||0x3e8;}})[_0x4c0d('0x2b')](function(){var _0x297313=[];var _0x4a6538=0x0;if(_0xf604b1[_0x4c0d('0x29')]){if(_0xdc471e&&_0xdc471e[_0x4c0d('0x14')]){var _0x250014=_[_0x4c0d('0x2c')](_0xdc471e[0x0][_0x4c0d('0x25')]/_0x41c1c9);var _0x582e88=Number[_0x4c0d('0x2d')](_0xdc471e[0x0][_0x4c0d('0x25')]/_0x41c1c9)?_0xdc471e[0x0][_0x4c0d('0x25')]%_0x41c1c9:0x0;_0x250014[_0x4c0d('0x1a')](function(_0xac117e){if(_0xac117e>0x0){_0x4a6538+=_0x41c1c9;}_0x297313[_0x4c0d('0x16')](dbH[_0x4c0d('0x2e')]['query'](util[_0x4c0d('0x1c')](_0x4c0d('0x2f'),QUERY,_0x41c1c9,_0x4a6538),{'type':dbH['sequelize']['QueryTypes']['SELECT']}));});if(_0x582e88>0x0){_0x4a6538+=_0x41c1c9;_0x297313['push'](dbH[_0x4c0d('0x2e')][_0x4c0d('0x30')](util[_0x4c0d('0x1c')](_0x4c0d('0x2f'),QUERY,_0x582e88,_0x4a6538),{'type':dbH[_0x4c0d('0x2e')][_0x4c0d('0x31')]['SELECT']}));}}}else{_0x297313[_0x4c0d('0x16')](dbH[_0x4c0d('0x2e')][_0x4c0d('0x30')](QUERY,{'type':dbH['sequelize']['QueryTypes']['SELECT']}));}var _0x45fbdb=path[_0x4c0d('0x32')](PATH);var _0x3ed533=path[_0x4c0d('0x33')](PATH,_0x4c0d('0x34'));var _0x4a166b=_0xf604b1[_0x4c0d('0x29')]&&_0x297313[_0x4c0d('0x14')]>0x1;var _0x4a1061=[];if(!fs['existsSync'](path[_0x4c0d('0x35')](_0x45fbdb,_0x3ed533))&&_0x4a166b){fs[_0x4c0d('0x36')](path['join'](_0x45fbdb,_0x3ed533));}return BPromise[_0x4c0d('0x37')](_0x297313,function(_0x3216bb){_0x4a1061[_0x4c0d('0x16')](_0x3216bb);})[_0x4c0d('0x2b')](function(){var _0x2ab4ea=[];for(var _0x743243=0x0;_0x743243<_0x4a1061[_0x4c0d('0x14')];_0x743243+=0x1){var _0x1d2fd5=_0x4a1061[_0x743243];var _0x24af7e=createTables(_['flatten'](_0x1d2fd5));var _0x51a058;var _0x9c7b11=getPDFDocDefinition(_0x24af7e);var _0x2b4428=getPDFPrinter();var _0x2220ec=_0x2b4428['createPdfKitDocument'](_0x9c7b11);if(_0x4a166b){_0x51a058=path['join'](_0x45fbdb,_0x3ed533,util[_0x4c0d('0x1c')](_0x4c0d('0x38'),_0x3ed533,_0x743243,_0x4c0d('0x39')));}else{_0x51a058=path[_0x4c0d('0x35')](_0x45fbdb,util[_0x4c0d('0x1c')](_0x4c0d('0x3a'),_0x3ed533,'pdf'));}_0x2ab4ea[_0x4c0d('0x16')](writePDFDocument(_0x2220ec,_0x51a058));}return Promise['all'](_0x2ab4ea);})['then'](function(){if(_0x4a166b){return new Promise(function(_0x5cc363){zipdir(path[_0x4c0d('0x35')](_0x45fbdb,_0x3ed533),{'saveTo':path[_0x4c0d('0x35')](_0x45fbdb,util[_0x4c0d('0x1c')]('%s.%s',_0x3ed533,'zip'))},function(){rimraf(path[_0x4c0d('0x35')](_0x45fbdb,_0x3ed533),function(){});_0x5cc363(_0x4c0d('0x3b'));});});}})[_0x4c0d('0x2b')](function(){if(!_0x4a166b)return;rimraf(path[_0x4c0d('0x35')](_0x45fbdb,_0x3ed533),function(){});})[_0x4c0d('0x2b')](function(){logger[_0x4c0d('0x3c')](util[_0x4c0d('0x1c')](_0x4c0d('0x3d'),EXTRACTED_REPORT_ID,'PDF'));return analyticExtractedReport(_0x4c0d('0x3e'),_0x4a166b?util[_0x4c0d('0x1c')]('%s.%s',_0x3ed533,_0x4a166b?'zip':_0x4c0d('0x39')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0x4c0d('0x3c')](util[_0x4c0d('0x1c')](_0x4c0d('0x3f'),EXTRACTED_REPORT_ID,'PDF'));return db[_0x4c0d('0x40')][_0x4c0d('0x41')]({'where':{'id':EXTRACTED_REPORT_ID}})[_0x4c0d('0x2b')](function(_0x3dd90f){EXTRACTED_REPORT=_0x3dd90f;return dbH[_0x4c0d('0x2e')][_0x4c0d('0x30')](util['format']('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0x4c0d('0x2e')]['QueryTypes'][_0x4c0d('0x42')]});})['then'](extractReport)[_0x4c0d('0x43')](function(_0x591365){logger['info'](util[_0x4c0d('0x1c')](_0x4c0d('0x44'),EXTRACTED_REPORT_ID,_0x4c0d('0x45')),util[_0x4c0d('0x46')](_0x591365,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x4c0d('0x47'));})[_0x4c0d('0x48')](function(){process[_0x4c0d('0x49')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x5d6f03=new PdfPrinter({'Arial':{'normal':__dirname+_0x4c0d('0x4a'),'bold':__dirname+_0x4c0d('0x4b'),'italics':__dirname+_0x4c0d('0x4c'),'bolditalics':__dirname+_0x4c0d('0x4d')}});return _0x5d6f03;}function getPDFDocDefinitionFromHTML(_0x508524,_0x46d1e3){var _0x468254=util[_0x4c0d('0x1c')](_0x4c0d('0x4e'),_0x46d1e3[_0x4c0d('0x4f')],_0x46d1e3[_0x4c0d('0x50')]);var _0x55bcbc=moment()[_0x4c0d('0x1c')](_0x4c0d('0x51'))['toString']();var _0x1e9d05=htmlToPdfmake(_0x508524,{'window':window,'tableAutoSize':!![]});return{'content':[_0x1e9d05],'defaultStyle':{'font':_0x4c0d('0x23')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0x4c0d('0x52'),'margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0x4c0d('0x52'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':_0x4c0d('0x52')}},'header':function(){return[{'text':_0x4c0d('0x53'),'style':_0x4c0d('0x54')}];},'footer':function(_0x47ebef,_0x585242){return[{'text':util[_0x4c0d('0x1c')](_0x4c0d('0x55'),_0x468254,_0x47ebef,_0x585242,_0x55bcbc),'style':'footer'}];}};}function writePDFDocument(_0x1951b8,_0x660ea){return new Promise(function(_0xf28b76,_0xd74e3e){var _0x99cf35=_0x1951b8['pipe'](fs[_0x4c0d('0x56')](_0x660ea));_0x99cf35['on']('finish',function(){_0xf28b76(_0x4c0d('0x57'));});_0x99cf35['on'](_0x4c0d('0x58'),function(_0x11b945){_0xd74e3e(_0x11b945);});_0x1951b8['end']();});}exports[_0x4c0d('0x59')]=function(_0x2d0515,_0x1ec608){var _0x54fe07=getPDFPrinter();var _0x48f738=getPDFDocDefinitionFromHTML(_0x2d0515,_0x1ec608);var _0x3194e0=_0x54fe07[_0x4c0d('0x5a')](_0x48f738);return writePDFDocument(_0x3194e0,_0x1ec608[_0x4c0d('0x2')])['catch'](function(_0x217dfb){throw _0x217dfb;});};