0fa7a4dedb62d1c5197741511f78010b86f0889d
[motion2.git] / server / components / export / xlsx.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 _0xfb75=['exit','path','lodash','bluebird','zip-dir','rimraf','../../mysqldb','../../config/logger','argv','update','info','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','Setting','find','splitSizeXlsx','then','query','format','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','Empty','length','range','isInteger','num','forEach','%s\x20limit\x20%d\x20OFFSET\x20%d','sequelize','push','dirname','basename','split','existsSync','mkdirSync','join','xlsx','writeFileSync','binary','%s.%s','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','zip','catch','inspect','Failed'];(function(_0x4d07cc,_0x587613){var _0x42de3b=function(_0x201f78){while(--_0x201f78){_0x4d07cc['push'](_0x4d07cc['shift']());}};_0x42de3b(++_0x587613);}(_0xfb75,0x1cd));var _0x5fb7=function(_0x339e04,_0x3c2dde){_0x339e04=_0x339e04-0x0;var _0x4195fe=_0xfb75[_0x339e04];return _0x4195fe;};'use strict';var util=require('util');var path=require(_0x5fb7('0x0'));var _=require(_0x5fb7('0x1'));var fs=require('fs');var json2xls=require('json2xls');var BPromise=require(_0x5fb7('0x2'));var zipdir=require(_0x5fb7('0x3'));var rimraf=require(_0x5fb7('0x4'));var db=require('../../mysqldb')['db'];var dbH=require(_0x5fb7('0x5'))['dbH'];var logger=require(_0x5fb7('0x6'))('analytics');var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0x5fb7('0x7')][0x3];var PATH=process['argv'][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0xb51d26,_0xc10aa1){var _0x4cc05c={'status':_0xb51d26};var _0x38bc00={'where':{'id':EXTRACTED_REPORT_ID}};if(_0xc10aa1){_0x4cc05c['savename']=_0xc10aa1;}return db['AnalyticExtractedReport'][_0x5fb7('0x8')](_0x4cc05c,_0x38bc00);}function main(){var _0x2ea2f6=0x1388;var _0xcb1bd0;logger[_0x5fb7('0x9')](util['format'](_0x5fb7('0xa'),EXTRACTED_REPORT_ID,_0x5fb7('0xb')));return db[_0x5fb7('0xc')][_0x5fb7('0xd')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0x5fb7('0xe')]})[_0x5fb7('0xf')](function(_0x307d27){if(_0x307d27){_0xcb1bd0=_0x307d27;_0x2ea2f6=_0xcb1bd0[_0x5fb7('0xe')]||0x1388;}})[_0x5fb7('0xf')](function(){return dbH['sequelize'][_0x5fb7('0x10')](util[_0x5fb7('0x11')](_0x5fb7('0x12'),QUERY),{'type':dbH['sequelize'][_0x5fb7('0x13')][_0x5fb7('0x14')]});})[_0x5fb7('0xf')](function(_0x380dbd){if(!_0x380dbd[0x0]['num']){return analyticExtractedReport(_0x5fb7('0x15'));}var _0x422c0c=[];var _0xd2802f=0x0;if(_0xcb1bd0['split']){if(_0x380dbd&&_0x380dbd[_0x5fb7('0x16')]){var _0x29d8a2=_[_0x5fb7('0x17')](_0x380dbd[0x0]['num']/_0x2ea2f6);var _0x4b298c=Number[_0x5fb7('0x18')](_0x380dbd[0x0][_0x5fb7('0x19')]/_0x2ea2f6)?_0x380dbd[0x0][_0x5fb7('0x19')]%_0x2ea2f6:0x0;_0x29d8a2[_0x5fb7('0x1a')](function(_0x54f436){if(_0x54f436>0x0){_0xd2802f+=_0x2ea2f6;}_0x422c0c['push'](dbH['sequelize']['query'](util[_0x5fb7('0x11')](_0x5fb7('0x1b'),QUERY,_0x2ea2f6,_0xd2802f),{'type':dbH[_0x5fb7('0x1c')][_0x5fb7('0x13')][_0x5fb7('0x14')]}));});if(_0x4b298c>0x0){_0xd2802f+=_0x2ea2f6;_0x422c0c['push'](dbH[_0x5fb7('0x1c')]['query'](util[_0x5fb7('0x11')](_0x5fb7('0x1b'),QUERY,_0x4b298c,_0xd2802f),{'type':dbH[_0x5fb7('0x1c')]['QueryTypes'][_0x5fb7('0x14')]}));}}}else{_0x422c0c[_0x5fb7('0x1d')](dbH['sequelize'][_0x5fb7('0x10')](QUERY,{'type':dbH[_0x5fb7('0x1c')][_0x5fb7('0x13')][_0x5fb7('0x14')]}));}var _0x3c0f65=path[_0x5fb7('0x1e')](PATH);var _0x46878c=path[_0x5fb7('0x1f')](PATH,'.xlsx');var _0x4d5b62=_0xcb1bd0[_0x5fb7('0x20')]&&_0x422c0c['length']>0x1;var _0x5394d0=[];if(!fs[_0x5fb7('0x21')](path['join'](_0x3c0f65,_0x46878c))&&_0x4d5b62){fs[_0x5fb7('0x22')](path[_0x5fb7('0x23')](_0x3c0f65,_0x46878c));}return BPromise['each'](_0x422c0c,function(_0x48053f){_0x5394d0['push'](_0x48053f);})[_0x5fb7('0xf')](function(){for(var _0x2da077=0x0;_0x2da077<_0x5394d0[_0x5fb7('0x16')];_0x2da077+=0x1){var _0x252cbd;var _0x52905f=_0x5394d0[_0x2da077];if(_0x4d5b62){_0x252cbd=path['join'](_0x3c0f65,_0x46878c,util['format']('%s%d.%s',_0x46878c,_0x2da077,'xlsx'));}else{_0x252cbd=path[_0x5fb7('0x23')](_0x3c0f65,util[_0x5fb7('0x11')]('%s.%s',_0x46878c,_0x5fb7('0x24')));}fs[_0x5fb7('0x25')](_0x252cbd,json2xls(_0x52905f),_0x5fb7('0x26'));}})[_0x5fb7('0xf')](function(){if(_0x4d5b62){return new Promise(function(_0x36f96d){zipdir(path[_0x5fb7('0x23')](_0x3c0f65,_0x46878c),{'saveTo':path[_0x5fb7('0x23')](_0x3c0f65,util[_0x5fb7('0x11')](_0x5fb7('0x27'),_0x46878c,'zip'))},function(_0xfb6878,_0x1ae738){rimraf(path[_0x5fb7('0x23')](_0x3c0f65,_0x46878c),function(){});_0x36f96d('zip\x20finished');});});}})[_0x5fb7('0xf')](function(){logger['info'](util[_0x5fb7('0x11')](_0x5fb7('0x28'),EXTRACTED_REPORT_ID,_0x5fb7('0xb')));return analyticExtractedReport('Completed',_0x4d5b62?util['format'](_0x5fb7('0x27'),_0x46878c,_0x4d5b62?_0x5fb7('0x29'):'xlsx'):null);});})[_0x5fb7('0x2a')](function(_0x1fef98){logger['info'](util[_0x5fb7('0x11')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x5fb7('0xb')),util[_0x5fb7('0x2b')](_0x1fef98,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x5fb7('0x2c'));})['finally'](function(){process[_0x5fb7('0x2d')](EXIT_CODE);});}main();