90716088789c690fc88f43e2d9795249ad1423ca
[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 _0x45ad=['tableHeader','pick','value','length','auto','body','concat','chunk','keys','forEach','format','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','startDate','endDate','push','header','pageBreak','before','margin','toString','footer','num','Empty','Setting','find','split','splitSizePdf','then','range','isInteger','sequelize','query','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','dirname','basename','.pdf','existsSync','mkdirSync','join','each','createPdfKitDocument','%s%d.%s','pdf','%s.%s','all','zip','zip\x20finished','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','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','exit','/fonts/arial-italic.ttf','/fonts/arial-bold-italic.ttf','%s\x20#%d','channel','interactionId','YYYY-MM-DD','Arial','center','Interaction\x20Transcript','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','pipe','createWriteStream','finish','error','createPdfFromHTML','lodash','path','html-to-pdfmake','pdfmake/src/printer','zip-dir','jsdom','JSDOM','window','../../mysqldb','dbH','../../config/logger','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','AnalyticExtractedReport','update','map'];(function(_0x4badb4,_0x35dd05){var _0xff35b2=function(_0x43b032){while(--_0x43b032){_0x4badb4['push'](_0x4badb4['shift']());}};_0xff35b2(++_0x35dd05);}(_0x45ad,0x166));var _0xd45a=function(_0x382168,_0xe03b6a){_0x382168=_0x382168-0x0;var _0x3ecf7e=_0x45ad[_0x382168];return _0x3ecf7e;};'use strict';var _=require(_0xd45a('0x0'));var fs=require('fs');var util=require('util');var path=require(_0xd45a('0x1'));var moment=require('moment');var htmlToPdfmake=require(_0xd45a('0x2'));var PdfPrinter=require(_0xd45a('0x3'));var zipdir=require(_0xd45a('0x4'));var rimraf=require('rimraf');var JSDOM=require(_0xd45a('0x5'))[_0xd45a('0x6')];var window=new JSDOM('')[_0xd45a('0x7')];var BPromise=require('bluebird');var db=require(_0xd45a('0x8'))['db'];var dbH=require(_0xd45a('0x8'))[_0xd45a('0x9')];var logger=require(_0xd45a('0xa'))(_0xd45a('0xb'));var EXTRACTED_REPORT_ID=Number(process[_0xd45a('0xc')][0x2]);var QUERY=process[_0xd45a('0xc')][0x3];var PATH=process['argv'][0x4];var NAME=process[_0xd45a('0xc')][0x5];var FORMAT=_0xd45a('0xd');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x3d750c,_0x5b772d){var _0x39a867={'status':_0x3d750c};var _0x471a55={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x5b772d){_0x39a867[_0xd45a('0xe')]=_0x5b772d;}return db[_0xd45a('0xf')][_0xd45a('0x10')](_0x39a867,_0x471a55);}function getHeaders(_0x408167){return _[_0xd45a('0x11')](_0x408167,function(_0x29f943){return{'text':_0x29f943,'style':_0xd45a('0x12')};});}function getRows(_0x559f3f,_0x64471a){return _[_0xd45a('0x11')](_0x64471a,function(_0x40b645){return _(_0x40b645)[_0xd45a('0x13')](_0x559f3f)[_0xd45a('0x11')](function(_0x7c24d0){return _0x7c24d0?_['toString'](_0x7c24d0):'';})[_0xd45a('0x14')]();});}function createTable(_0x232515,_0x5ad106){var _0x314029={'widths':_['fill'](Array(_0x232515[_0xd45a('0x15')]),0x91),'heights':function(_0x495b8a){return _0x495b8a===0x0?_0xd45a('0x16'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x532dfa=getHeaders(_0x232515);_0x314029[_0xd45a('0x17')]['push'](_0x532dfa);var _0x4cb30d=getRows(_0x232515,_0x5ad106);_0x314029[_0xd45a('0x17')]=_0x314029[_0xd45a('0x17')][_0xd45a('0x18')](_0x4cb30d);return _0x314029;}function createTables(_0xad2aec){var _0x281be9=[];var _0x335442=_[_0xd45a('0x19')](Object[_0xd45a('0x1a')](_0xad2aec[0x0]),0x5);_0x335442[_0xd45a('0x1b')](function(_0x1c4132){_0x281be9['push'](createTable(_0x1c4132,_0xad2aec));});return _0x281be9;}function getPDFDocDefinition(_0x3f8128){var _0x57cd56=util[_0xd45a('0x1c')](_0xd45a('0x1d'),NAME,EXTRACTED_REPORT[_0xd45a('0x1e')],moment(EXTRACTED_REPORT[_0xd45a('0x1f')])[_0xd45a('0x1c')](FORMAT),moment(EXTRACTED_REPORT[_0xd45a('0x20')])[_0xd45a('0x1c')](FORMAT));var _0x311179=[];for(var _0x2cdebc=0x0;_0x2cdebc<_0x3f8128[_0xd45a('0x15')];_0x2cdebc++){var _0x1dfe4d=[];if(_0x2cdebc===0x0){_0x1dfe4d[_0xd45a('0x21')]({'text':_0x57cd56,'style':_0xd45a('0x22')});}var _0x57e3a6={'table':_0x3f8128[_0x2cdebc]};if(_0x2cdebc>0x0){_0x57e3a6[_0xd45a('0x23')]=_0xd45a('0x24');_0x57e3a6[_0xd45a('0x25')]=[0x0,0x46,0x0,0x0];}_0x1dfe4d['push'](_0x57e3a6);_0x311179[_0xd45a('0x21')](_0x1dfe4d);}return{'pageSize':'A4','pageOrientation':'landscape','content':_0x311179,'footer':function(_0xb62d84,_0x2d2d60){return{'text':_0xb62d84[_0xd45a('0x26')]()+'\x20/\x20'+_0x2d2d60,'style':_0xd45a('0x27')};},'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':'black'},'footer':{'alignment':'right','margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x121d31){var _0x433da3=0x1388;var _0x5d5dac;if(!_0x121d31[0x0][_0xd45a('0x28')]){return analyticExtractedReport(_0xd45a('0x29'));}return db[_0xd45a('0x2a')][_0xd45a('0x2b')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xd45a('0x2c'),_0xd45a('0x2d')]})[_0xd45a('0x2e')](function(_0x1a5383){if(_0x1a5383){_0x5d5dac=_0x1a5383;_0x433da3=_0x5d5dac['splitSizePdf']||0x3e8;}})[_0xd45a('0x2e')](function(){var _0xdcff8a=[];var _0x2db829=0x0;if(_0x5d5dac['split']){if(_0x121d31&&_0x121d31[_0xd45a('0x15')]){var _0x180dde=_[_0xd45a('0x2f')](_0x121d31[0x0]['num']/_0x433da3);var _0x5da8a4=Number[_0xd45a('0x30')](_0x121d31[0x0][_0xd45a('0x28')]/_0x433da3)?_0x121d31[0x0][_0xd45a('0x28')]%_0x433da3:0x0;_0x180dde['forEach'](function(_0x35693a){if(_0x35693a>0x0){_0x2db829+=_0x433da3;}_0xdcff8a[_0xd45a('0x21')](dbH[_0xd45a('0x31')][_0xd45a('0x32')](util[_0xd45a('0x1c')](_0xd45a('0x33'),QUERY,_0x433da3,_0x2db829),{'type':dbH[_0xd45a('0x31')][_0xd45a('0x34')][_0xd45a('0x35')]}));});if(_0x5da8a4>0x0){_0x2db829+=_0x433da3;_0xdcff8a[_0xd45a('0x21')](dbH[_0xd45a('0x31')][_0xd45a('0x32')](util[_0xd45a('0x1c')](_0xd45a('0x33'),QUERY,_0x5da8a4,_0x2db829),{'type':dbH[_0xd45a('0x31')][_0xd45a('0x34')]['SELECT']}));}}}else{_0xdcff8a['push'](dbH[_0xd45a('0x31')][_0xd45a('0x32')](QUERY,{'type':dbH['sequelize'][_0xd45a('0x34')][_0xd45a('0x35')]}));}var _0x1ffff1=path[_0xd45a('0x36')](PATH);var _0x3ee5c7=path[_0xd45a('0x37')](PATH,_0xd45a('0x38'));var _0x542fd4=_0x5d5dac['split']&&_0xdcff8a['length']>0x1;var _0x4ff72e=[];if(!fs[_0xd45a('0x39')](path['join'](_0x1ffff1,_0x3ee5c7))&&_0x542fd4){fs[_0xd45a('0x3a')](path[_0xd45a('0x3b')](_0x1ffff1,_0x3ee5c7));}return BPromise[_0xd45a('0x3c')](_0xdcff8a,function(_0x44e5a3){_0x4ff72e[_0xd45a('0x21')](_0x44e5a3);})[_0xd45a('0x2e')](function(){var _0x48378e=[];for(var _0x309615=0x0;_0x309615<_0x4ff72e[_0xd45a('0x15')];_0x309615+=0x1){var _0x4a9742=_0x4ff72e[_0x309615];var _0x1df977=createTables(_['flatten'](_0x4a9742));var _0x596e2e;var _0x279f3d=getPDFDocDefinition(_0x1df977);var _0x3ed178=getPDFPrinter();var _0x3e6360=_0x3ed178[_0xd45a('0x3d')](_0x279f3d);if(_0x542fd4){_0x596e2e=path[_0xd45a('0x3b')](_0x1ffff1,_0x3ee5c7,util['format'](_0xd45a('0x3e'),_0x3ee5c7,_0x309615,_0xd45a('0x3f')));}else{_0x596e2e=path[_0xd45a('0x3b')](_0x1ffff1,util[_0xd45a('0x1c')](_0xd45a('0x40'),_0x3ee5c7,'pdf'));}_0x48378e[_0xd45a('0x21')](writePDFDocument(_0x3e6360,_0x596e2e));}return Promise[_0xd45a('0x41')](_0x48378e);})[_0xd45a('0x2e')](function(){if(_0x542fd4){return new Promise(function(_0x5368f3){zipdir(path['join'](_0x1ffff1,_0x3ee5c7),{'saveTo':path['join'](_0x1ffff1,util['format'](_0xd45a('0x40'),_0x3ee5c7,_0xd45a('0x42')))},function(){rimraf(path[_0xd45a('0x3b')](_0x1ffff1,_0x3ee5c7),function(){});_0x5368f3(_0xd45a('0x43'));});});}})[_0xd45a('0x2e')](function(){if(!_0x542fd4)return;rimraf(path[_0xd45a('0x3b')](_0x1ffff1,_0x3ee5c7),function(){});})[_0xd45a('0x2e')](function(){logger[_0xd45a('0x44')](util['format'](_0xd45a('0x45'),EXTRACTED_REPORT_ID,_0xd45a('0x46')));return analyticExtractedReport('Completed',_0x542fd4?util['format'](_0xd45a('0x40'),_0x3ee5c7,_0x542fd4?_0xd45a('0x42'):_0xd45a('0x3f')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0xd45a('0x44')](util['format'](_0xd45a('0x47'),EXTRACTED_REPORT_ID,_0xd45a('0x46')));return db[_0xd45a('0xf')][_0xd45a('0x48')]({'where':{'id':EXTRACTED_REPORT_ID}})[_0xd45a('0x2e')](function(_0x2b6b92){EXTRACTED_REPORT=_0x2b6b92;return dbH[_0xd45a('0x31')]['query'](util[_0xd45a('0x1c')](_0xd45a('0x49'),QUERY),{'type':dbH[_0xd45a('0x31')][_0xd45a('0x34')][_0xd45a('0x35')]});})['then'](extractReport)[_0xd45a('0x4a')](function(_0x33d4ae){logger[_0xd45a('0x44')](util[_0xd45a('0x1c')](_0xd45a('0x4b'),EXTRACTED_REPORT_ID,_0xd45a('0x46')),util['inspect'](_0x33d4ae,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xd45a('0x4c'));})[_0xd45a('0x4d')](function(){process[_0xd45a('0x4e')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x4ee4d2=new PdfPrinter({'Arial':{'normal':__dirname+'/fonts/arial-regular.ttf','bold':__dirname+'/fonts/arial-bold.ttf','italics':__dirname+_0xd45a('0x4f'),'bolditalics':__dirname+_0xd45a('0x50')}});return _0x4ee4d2;}function getPDFDocDefinitionFromHTML(_0x2309fe,_0x399a51){var _0x59faf3=util[_0xd45a('0x1c')](_0xd45a('0x51'),_0x399a51[_0xd45a('0x52')],_0x399a51[_0xd45a('0x53')]);var _0x24fc38=moment()[_0xd45a('0x1c')](_0xd45a('0x54'))[_0xd45a('0x26')]();var _0x3bfe6d=htmlToPdfmake(_0x2309fe,{'window':window,'tableAutoSize':!![]});return{'content':[_0x3bfe6d],'defaultStyle':{'font':_0xd45a('0x55')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':'center','margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0xd45a('0x56'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':_0xd45a('0x56')}},'header':function(){return[{'text':_0xd45a('0x57'),'style':_0xd45a('0x22')}];},'footer':function(_0x564a54,_0x329d32){return[{'text':util['format'](_0xd45a('0x58'),_0x59faf3,_0x564a54,_0x329d32,_0x24fc38),'style':_0xd45a('0x27')}];}};}function writePDFDocument(_0x461b47,_0x32e86c){return new Promise(function(_0x350021,_0xda6b7c){var _0x4131fb=_0x461b47[_0xd45a('0x59')](fs[_0xd45a('0x5a')](_0x32e86c));_0x4131fb['on'](_0xd45a('0x5b'),function(){_0x350021(_0xd45a('0x5b'));});_0x4131fb['on'](_0xd45a('0x5c'),function(_0x3c05dd){_0xda6b7c(_0x3c05dd);});_0x461b47['end']();});}exports[_0xd45a('0x5d')]=function(_0x4bfbe7,_0x367724){var _0x5cc89d=getPDFPrinter();var _0x3eff89=getPDFDocDefinitionFromHTML(_0x4bfbe7,_0x367724);var _0x29adf5=_0x5cc89d[_0xd45a('0x3d')](_0x3eff89);return writePDFDocument(_0x29adf5,_0x367724['path'])[_0xd45a('0x4a')](function(_0x2040c6){throw _0x2040c6;});};