c67eb07fd78e8ff8cd10b5a0921e3a544bc5f2ca
[motion2.git] / server / components / export / csv.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 _0x95b2=['finally','exit','util','path','lodash','to-csv','bluebird','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','find','split','splitSizeCsv','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','Empty','range','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','basename','.csv','length','join','mkdirSync','each','csv','%s.%s','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','catch','inspect'];(function(_0x5ddaac,_0x2697a8){var _0x2a9c58=function(_0x851032){while(--_0x851032){_0x5ddaac['push'](_0x5ddaac['shift']());}};_0x2a9c58(++_0x2697a8);}(_0x95b2,0xe3));var _0x295b=function(_0x42e0ec,_0x47a580){_0x42e0ec=_0x42e0ec-0x0;var _0x42aa88=_0x95b2[_0x42e0ec];return _0x42aa88;};'use strict';var util=require(_0x295b('0x0'));var path=require(_0x295b('0x1'));var _=require(_0x295b('0x2'));var csv=require(_0x295b('0x3'));var fs=require('fs');var BPromise=require(_0x295b('0x4'));var zipdir=require('zip-dir');var rimraf=require('rimraf');var db=require('../../mysqldb')['db'];var dbH=require('../../mysqldb')['dbH'];var logger=require(_0x295b('0x5'))(_0x295b('0x6'));var EXTRACTED_REPORT_ID=Number(process[_0x295b('0x7')][0x2]);var QUERY=process[_0x295b('0x7')][0x3];var PATH=process[_0x295b('0x7')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x5f3ccb,_0x195aee){var _0x56c309={'status':_0x5f3ccb};var _0x3b83c2={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x195aee){_0x56c309[_0x295b('0x8')]=_0x195aee;}return db[_0x295b('0x9')][_0x295b('0xa')](_0x56c309,_0x3b83c2);}function main(){var _0x3fad27=0x1388;var _0x3d2865;logger[_0x295b('0xb')](util[_0x295b('0xc')](_0x295b('0xd'),EXTRACTED_REPORT_ID,_0x295b('0xe')));return db[_0x295b('0xf')][_0x295b('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x295b('0x11'),_0x295b('0x12')]})[_0x295b('0x13')](function(_0x4bc92c){if(_0x4bc92c){_0x3d2865=_0x4bc92c;_0x3fad27=_0x3d2865[_0x295b('0x12')]||0x1388;}})[_0x295b('0x13')](function(){return dbH[_0x295b('0x14')][_0x295b('0x15')](util[_0x295b('0xc')](_0x295b('0x16'),QUERY),{'type':dbH['sequelize'][_0x295b('0x17')][_0x295b('0x18')]});})['then'](function(_0x479140){if(!_0x479140[0x0][_0x295b('0x19')]){return analyticExtractedReport(_0x295b('0x1a'));}var _0xfca281=[];var _0x26f9f5=0x0;if(_0x3d2865['split']){if(_0x479140&&_0x479140['length']){var _0x91e01d=_[_0x295b('0x1b')](_0x479140[0x0][_0x295b('0x19')]/_0x3fad27);var _0x13f5bd=Number['isInteger'](_0x479140[0x0][_0x295b('0x19')]/_0x3fad27)?_0x479140[0x0][_0x295b('0x19')]%_0x3fad27:0x0;_0x91e01d[_0x295b('0x1c')](function(_0x2a80a1){if(_0x2a80a1>0x0){_0x26f9f5+=_0x3fad27;}_0xfca281['push'](dbH[_0x295b('0x14')][_0x295b('0x15')](util[_0x295b('0xc')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x3fad27,_0x26f9f5),{'type':dbH[_0x295b('0x14')][_0x295b('0x17')][_0x295b('0x18')]}));});if(_0x13f5bd>0x0){_0x26f9f5+=_0x3fad27;_0xfca281[_0x295b('0x1d')](dbH[_0x295b('0x14')][_0x295b('0x15')](util['format'](_0x295b('0x1e'),QUERY,_0x13f5bd,_0x26f9f5),{'type':dbH[_0x295b('0x14')][_0x295b('0x17')][_0x295b('0x18')]}));}}}else{_0xfca281[_0x295b('0x1d')](dbH[_0x295b('0x14')][_0x295b('0x15')](QUERY,{'type':dbH[_0x295b('0x14')][_0x295b('0x17')][_0x295b('0x18')]}));}var _0x149a45=path['dirname'](PATH);var _0x4a8cc2=path[_0x295b('0x1f')](PATH,_0x295b('0x20'));var _0x352ecd=_0x3d2865[_0x295b('0x11')]&&_0xfca281[_0x295b('0x21')]>0x1;var _0x389fdf=[];if(!fs['existsSync'](path[_0x295b('0x22')](_0x149a45,_0x4a8cc2))&&_0x352ecd){fs[_0x295b('0x23')](path[_0x295b('0x22')](_0x149a45,_0x4a8cc2));}return BPromise[_0x295b('0x24')](_0xfca281,function(_0x76fdd9){_0x389fdf[_0x295b('0x1d')](_0x76fdd9);})[_0x295b('0x13')](function(){for(var _0x46b034=0x0;_0x46b034<_0x389fdf[_0x295b('0x21')];_0x46b034+=0x1){var _0x5294d5;var _0x278f0f=_0x389fdf[_0x46b034];if(_0x352ecd){_0x5294d5=path[_0x295b('0x22')](_0x149a45,_0x4a8cc2,util[_0x295b('0xc')]('%s%d.%s',_0x4a8cc2,_0x46b034,_0x295b('0x25')));}else{_0x5294d5=path[_0x295b('0x22')](_0x149a45,util[_0x295b('0xc')](_0x295b('0x26'),_0x4a8cc2,_0x295b('0x25')));}fs['writeFileSync'](_0x5294d5,csv(_0x278f0f));}})[_0x295b('0x13')](function(){if(_0x352ecd){return new Promise(function(_0x5ac140){zipdir(path[_0x295b('0x22')](_0x149a45,_0x4a8cc2),{'saveTo':path[_0x295b('0x22')](_0x149a45,util[_0x295b('0xc')]('%s.%s',_0x4a8cc2,'zip'))},function(_0x10ace2,_0x4855c8){rimraf(path[_0x295b('0x22')](_0x149a45,_0x4a8cc2),function(){});_0x5ac140(_0x295b('0x27'));});});}})[_0x295b('0x13')](function(){logger[_0x295b('0xb')](util[_0x295b('0xc')](_0x295b('0x28'),EXTRACTED_REPORT_ID,_0x295b('0xe')));return analyticExtractedReport('Completed',_0x352ecd?util[_0x295b('0xc')](_0x295b('0x26'),_0x4a8cc2,_0x352ecd?'zip':_0x295b('0x25')):null);});})[_0x295b('0x29')](function(_0x52b1ec){logger[_0x295b('0xb')](util[_0x295b('0xc')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x295b('0xe')),util[_0x295b('0x2a')](_0x52b1ec,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})[_0x295b('0x2b')](function(){process[_0x295b('0x2c')](EXIT_CODE);});}main();