6c39dfecf70fc6d34352c2c0770361f49eecc36f
[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 _0x5007=['binary','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','zip','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','finally','exit','util','lodash','json2xls','bluebird','zip-dir','rimraf','../../mysqldb','../../config/logger','analytics','argv','savename','update','info','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Setting','find','split','splitSizeXlsx','then','sequelize','query','format','QueryTypes','SELECT','num','length','range','isInteger','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','.xlsx','existsSync','join','each','%s%d.%s','xlsx','%s.%s','writeFileSync'];(function(_0x5a9c0c,_0x4ec485){var _0x53c77d=function(_0x1cf384){while(--_0x1cf384){_0x5a9c0c['push'](_0x5a9c0c['shift']());}};_0x53c77d(++_0x4ec485);}(_0x5007,0xfe));var _0x7500=function(_0x32de54,_0x5c0d24){_0x32de54=_0x32de54-0x0;var _0x4d7d5a=_0x5007[_0x32de54];return _0x4d7d5a;};'use strict';var util=require(_0x7500('0x0'));var path=require('path');var _=require(_0x7500('0x1'));var fs=require('fs');var json2xls=require(_0x7500('0x2'));var BPromise=require(_0x7500('0x3'));var zipdir=require(_0x7500('0x4'));var rimraf=require(_0x7500('0x5'));var db=require(_0x7500('0x6'))['db'];var dbH=require('../../mysqldb')['dbH'];var logger=require(_0x7500('0x7'))(_0x7500('0x8'));var EXTRACTED_REPORT_ID=Number(process[_0x7500('0x9')][0x2]);var QUERY=process['argv'][0x3];var PATH=process['argv'][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x929f2,_0x46000e){var _0x364ad2={'status':_0x929f2};var _0x2681e0={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x46000e){_0x364ad2[_0x7500('0xa')]=_0x46000e;}return db['AnalyticExtractedReport'][_0x7500('0xb')](_0x364ad2,_0x2681e0);}function main(){var _0x24e0f2=0x1388;var _0x29895f;logger[_0x7500('0xc')](util['format'](_0x7500('0xd'),EXTRACTED_REPORT_ID,'XLSX'));return db[_0x7500('0xe')][_0x7500('0xf')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x7500('0x10'),_0x7500('0x11')]})[_0x7500('0x12')](function(_0x1d1b49){if(_0x1d1b49){_0x29895f=_0x1d1b49;_0x24e0f2=_0x29895f[_0x7500('0x11')]||0x1388;}})[_0x7500('0x12')](function(){return dbH[_0x7500('0x13')][_0x7500('0x14')](util[_0x7500('0x15')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0x7500('0x13')][_0x7500('0x16')][_0x7500('0x17')]});})[_0x7500('0x12')](function(_0x16b3c3){if(!_0x16b3c3[0x0][_0x7500('0x18')]){return analyticExtractedReport('Empty');}var _0x38315e=[];var _0x5cecd2=0x0;if(_0x29895f['split']){if(_0x16b3c3&&_0x16b3c3[_0x7500('0x19')]){var _0x899468=_[_0x7500('0x1a')](_0x16b3c3[0x0][_0x7500('0x18')]/_0x24e0f2);var _0x3b00cd=Number[_0x7500('0x1b')](_0x16b3c3[0x0]['num']/_0x24e0f2)?_0x16b3c3[0x0]['num']%_0x24e0f2:0x0;_0x899468[_0x7500('0x1c')](function(_0xaa6a38){if(_0xaa6a38>0x0){_0x5cecd2+=_0x24e0f2;}_0x38315e[_0x7500('0x1d')](dbH[_0x7500('0x13')][_0x7500('0x14')](util[_0x7500('0x15')](_0x7500('0x1e'),QUERY,_0x24e0f2,_0x5cecd2),{'type':dbH[_0x7500('0x13')][_0x7500('0x16')][_0x7500('0x17')]}));});if(_0x3b00cd>0x0){_0x5cecd2+=_0x24e0f2;_0x38315e['push'](dbH['sequelize']['query'](util['format']('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x3b00cd,_0x5cecd2),{'type':dbH[_0x7500('0x13')][_0x7500('0x16')][_0x7500('0x17')]}));}}}else{_0x38315e[_0x7500('0x1d')](dbH['sequelize'][_0x7500('0x14')](QUERY,{'type':dbH[_0x7500('0x13')][_0x7500('0x16')][_0x7500('0x17')]}));}var _0x3d960d=path[_0x7500('0x1f')](PATH);var _0xbbcefa=path['basename'](PATH,_0x7500('0x20'));var _0x281ab5=_0x29895f[_0x7500('0x10')]&&_0x38315e[_0x7500('0x19')]>0x1;var _0x2e6535=[];if(!fs[_0x7500('0x21')](path[_0x7500('0x22')](_0x3d960d,_0xbbcefa))&&_0x281ab5){fs['mkdirSync'](path[_0x7500('0x22')](_0x3d960d,_0xbbcefa));}return BPromise[_0x7500('0x23')](_0x38315e,function(_0x2cc524){_0x2e6535['push'](_0x2cc524);})[_0x7500('0x12')](function(){for(var _0x51036a=0x0;_0x51036a<_0x2e6535[_0x7500('0x19')];_0x51036a+=0x1){var _0x4debb9;var _0x45b719=_0x2e6535[_0x51036a];if(_0x281ab5){_0x4debb9=path[_0x7500('0x22')](_0x3d960d,_0xbbcefa,util[_0x7500('0x15')](_0x7500('0x24'),_0xbbcefa,_0x51036a,_0x7500('0x25')));}else{_0x4debb9=path[_0x7500('0x22')](_0x3d960d,util['format'](_0x7500('0x26'),_0xbbcefa,_0x7500('0x25')));}fs[_0x7500('0x27')](_0x4debb9,json2xls(_0x45b719),_0x7500('0x28'));}})['then'](function(){if(_0x281ab5){return new Promise(function(_0x2b3ed8){zipdir(path['join'](_0x3d960d,_0xbbcefa),{'saveTo':path[_0x7500('0x22')](_0x3d960d,util['format'](_0x7500('0x26'),_0xbbcefa,'zip'))},function(_0x428d5a,_0x37b344){rimraf(path['join'](_0x3d960d,_0xbbcefa),function(){});_0x2b3ed8(_0x7500('0x29'));});});}})['then'](function(){logger[_0x7500('0xc')](util[_0x7500('0x15')](_0x7500('0x2a'),EXTRACTED_REPORT_ID,'XLSX'));return analyticExtractedReport('Completed',_0x281ab5?util[_0x7500('0x15')](_0x7500('0x26'),_0xbbcefa,_0x281ab5?_0x7500('0x2b'):_0x7500('0x25')):null);});})[_0x7500('0x2c')](function(_0x99b3ac){logger[_0x7500('0xc')](util[_0x7500('0x15')](_0x7500('0x2d'),EXTRACTED_REPORT_ID,_0x7500('0x2e')),util['inspect'](_0x99b3ac,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})[_0x7500('0x2f')](function(){process[_0x7500('0x30')](EXIT_CODE);});}main();