e6afb7319a5f85d0aa02c625426af28b8f92a5e0
[motion2.git] / server / api / voiceQueueReport / voiceQueueReport.controller.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 _0x9b7c=['show','params','keys','find','create','body','describe','getVoiceQueuesReport','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','defaults','localhost','socket.io-emitter','redis','./voiceQueueReport.socket','sendStatus','status','end','json','offset','Content-Range','apply','update','destroy','then','error','name','send','index','map','VoiceQueueReport','rawAttributes','fieldName','key','model','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','count','includeAll','include','findAll','rows','catch'];(function(_0x19aff5,_0x32b643){var _0x212d39=function(_0x10ef1d){while(--_0x10ef1d){_0x19aff5['push'](_0x19aff5['shift']());}};_0x212d39(++_0x32b643);}(_0x9b7c,0xa6));var _0xc9b7=function(_0x3bb557,_0x2d4e15){_0x3bb557=_0x3bb557-0x0;var _0x5eebcb=_0x9b7c[_0x3bb557];return _0x5eebcb;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xc9b7('0x0'));var zipdir=require(_0xc9b7('0x1'));var jsonpatch=require(_0xc9b7('0x2'));var rp=require(_0xc9b7('0x3'));var moment=require(_0xc9b7('0x4'));var BPromise=require(_0xc9b7('0x5'));var Mustache=require(_0xc9b7('0x6'));var util=require(_0xc9b7('0x7'));var path=require(_0xc9b7('0x8'));var sox=require(_0xc9b7('0x9'));var csv=require(_0xc9b7('0xa'));var ejs=require(_0xc9b7('0xb'));var fs=require('fs');var fs_extra=require(_0xc9b7('0xc'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xc9b7('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xc9b7('0xe'));var Papa=require(_0xc9b7('0xf'));var Redis=require(_0xc9b7('0x10'));var authService=require(_0xc9b7('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xc9b7('0x12'))(_0xc9b7('0x13'));var utils=require('../../config/utils');var config=require(_0xc9b7('0x14'));var licenseUtil=require(_0xc9b7('0x15'));var db=require(_0xc9b7('0x16'))['db'];config['redis']=_[_0xc9b7('0x17')](config['redis'],{'host':_0xc9b7('0x18'),'port':0x18eb});var socket=require(_0xc9b7('0x19'))(new Redis(config[_0xc9b7('0x1a')]));require(_0xc9b7('0x1b'))['register'](socket);function respondWithStatusCode(_0x2c2d7d,_0x1e49c6){_0x1e49c6=_0x1e49c6||0xcc;return function(_0x242f99){if(_0x242f99){return _0x2c2d7d[_0xc9b7('0x1c')](_0x1e49c6);}return _0x2c2d7d[_0xc9b7('0x1d')](_0x1e49c6)[_0xc9b7('0x1e')]();};}function respondWithResult(_0x2bf21e,_0x5a0693){_0x5a0693=_0x5a0693||0xc8;return function(_0x131d59){if(_0x131d59){return _0x2bf21e[_0xc9b7('0x1d')](_0x5a0693)[_0xc9b7('0x1f')](_0x131d59);}};}function respondWithFilteredResult(_0x14fadc,_0x1c57b2){return function(_0x2741b0){if(_0x2741b0){var _0x1b572c=_0x2741b0['count'],_0x49480a=_0x1c57b2[_0xc9b7('0x20')],_0x50f1ba=_0x1c57b2[_0xc9b7('0x20')]+_0x1c57b2['limit'],_0x408ec7;if(_0x50f1ba>=_0x1b572c){_0x50f1ba=_0x1b572c;_0x408ec7=0xc8;}else{_0x408ec7=0xce;}_0x14fadc['status'](_0x408ec7);return _0x14fadc['set'](_0xc9b7('0x21'),_0x49480a+'-'+_0x50f1ba+'/'+_0x1b572c)[_0xc9b7('0x1f')](_0x2741b0);}return null;};}function patchUpdates(_0x286e5d){return function(_0x1cca29){try{jsonpatch[_0xc9b7('0x22')](_0x1cca29,_0x286e5d,!![]);}catch(_0x544306){return BPromise['reject'](_0x544306);}return _0x1cca29['save']();};}function saveUpdates(_0x19c3b1,_0x457a08){return function(_0x4f02f2){if(_0x4f02f2){return _0x4f02f2[_0xc9b7('0x23')](_0x19c3b1)['then'](function(_0x4603f9){return _0x4603f9;});}return null;};}function removeEntity(_0x3b38a4,_0x184b62){return function(_0x420b1e){if(_0x420b1e){return _0x420b1e[_0xc9b7('0x24')]()[_0xc9b7('0x25')](function(){_0x3b38a4[_0xc9b7('0x1d')](0xcc)[_0xc9b7('0x1e')]();});}};}function handleEntityNotFound(_0x3eb040,_0x3fab6e){return function(_0x35dc02){if(!_0x35dc02){_0x3eb040['sendStatus'](0x194);}return _0x35dc02;};}function handleError(_0x104651,_0x5d9157){_0x5d9157=_0x5d9157||0x1f4;return function(_0xac7484){logger[_0xc9b7('0x26')](_0xac7484['stack']);if(_0xac7484[_0xc9b7('0x27')]){delete _0xac7484[_0xc9b7('0x27')];}_0x104651['status'](_0x5d9157)[_0xc9b7('0x28')](_0xac7484);};}exports[_0xc9b7('0x29')]=function(_0x3d2516,_0x559894){var _0x262e86={},_0x4a0172={},_0x4ee470={'count':0x0,'rows':[]};var _0x255921=_[_0xc9b7('0x2a')](db[_0xc9b7('0x2b')][_0xc9b7('0x2c')],function(_0x309a3c){return{'name':_0x309a3c[_0xc9b7('0x2d')],'type':_0x309a3c['type'][_0xc9b7('0x2e')]};});_0x4a0172[_0xc9b7('0x2f')]=_['map'](_0x255921,_0xc9b7('0x27'));_0x4a0172[_0xc9b7('0x30')]=_['keys'](_0x3d2516[_0xc9b7('0x30')]);_0x4a0172['filters']=_[_0xc9b7('0x31')](_0x4a0172[_0xc9b7('0x2f')],_0x4a0172[_0xc9b7('0x30')]);_0x262e86['attributes']=_[_0xc9b7('0x31')](_0x4a0172['model'],qs[_0xc9b7('0x32')](_0x3d2516[_0xc9b7('0x30')]['fields']));_0x262e86[_0xc9b7('0x33')]=_0x262e86[_0xc9b7('0x33')][_0xc9b7('0x34')]?_0x262e86[_0xc9b7('0x33')]:_0x4a0172['model'];if(!_0x3d2516[_0xc9b7('0x30')][_0xc9b7('0x35')](_0xc9b7('0x36'))){_0x262e86[_0xc9b7('0x37')]=qs[_0xc9b7('0x37')](_0x3d2516[_0xc9b7('0x30')][_0xc9b7('0x37')]);_0x262e86[_0xc9b7('0x20')]=qs[_0xc9b7('0x20')](_0x3d2516[_0xc9b7('0x30')][_0xc9b7('0x20')]);}_0x262e86[_0xc9b7('0x38')]=qs[_0xc9b7('0x39')](_0x3d2516[_0xc9b7('0x30')]['sort']);_0x262e86[_0xc9b7('0x3a')]=qs[_0xc9b7('0x3b')](_[_0xc9b7('0x3c')](_0x3d2516[_0xc9b7('0x30')],_0x4a0172[_0xc9b7('0x3b')]),_0x255921);if(_0x3d2516[_0xc9b7('0x30')][_0xc9b7('0x3d')]){_0x262e86['where']=_[_0xc9b7('0x3e')](_0x262e86['where'],{'$or':_[_0xc9b7('0x2a')](_0x255921,function(_0x5d5368){if(_0x5d5368['type']!==_0xc9b7('0x3f')){var _0x2f0f9b={};_0x2f0f9b[_0x5d5368[_0xc9b7('0x27')]]={'$like':'%'+_0x3d2516['query']['filter']+'%'};return _0x2f0f9b;}})});}_0x262e86=_[_0xc9b7('0x3e')]({},_0x262e86,_0x3d2516[_0xc9b7('0x40')]);var _0x4f8e95={'where':_0x262e86[_0xc9b7('0x3a')]};return db['VoiceQueueReport'][_0xc9b7('0x41')](_0x4f8e95)[_0xc9b7('0x25')](function(_0x27360d){_0x4ee470[_0xc9b7('0x41')]=_0x27360d;if(_0x3d2516[_0xc9b7('0x30')][_0xc9b7('0x42')]){_0x262e86[_0xc9b7('0x43')]=[{'all':!![]}];}return db[_0xc9b7('0x2b')][_0xc9b7('0x44')](_0x262e86);})['then'](function(_0x332e1d){_0x4ee470[_0xc9b7('0x45')]=_0x332e1d;return _0x4ee470;})['then'](respondWithFilteredResult(_0x559894,_0x262e86))[_0xc9b7('0x46')](handleError(_0x559894,null));};exports[_0xc9b7('0x47')]=function(_0x3b4753,_0x432cda){var _0x1c9766={'raw':![],'where':{'id':_0x3b4753[_0xc9b7('0x48')]['id']}},_0x16d008={};_0x16d008[_0xc9b7('0x2f')]=_[_0xc9b7('0x49')](db[_0xc9b7('0x2b')]['rawAttributes']);_0x16d008[_0xc9b7('0x30')]=_[_0xc9b7('0x49')](_0x3b4753[_0xc9b7('0x30')]);_0x16d008[_0xc9b7('0x3b')]=_[_0xc9b7('0x31')](_0x16d008[_0xc9b7('0x2f')],_0x16d008[_0xc9b7('0x30')]);_0x1c9766[_0xc9b7('0x33')]=_[_0xc9b7('0x31')](_0x16d008['model'],qs[_0xc9b7('0x32')](_0x3b4753['query']['fields']));_0x1c9766[_0xc9b7('0x33')]=_0x1c9766[_0xc9b7('0x33')]['length']?_0x1c9766[_0xc9b7('0x33')]:_0x16d008['model'];if(_0x3b4753[_0xc9b7('0x30')][_0xc9b7('0x42')]){_0x1c9766[_0xc9b7('0x43')]=[{'all':!![]}];}_0x1c9766=_[_0xc9b7('0x3e')]({},_0x1c9766,_0x3b4753[_0xc9b7('0x40')]);return db[_0xc9b7('0x2b')][_0xc9b7('0x4a')](_0x1c9766)['then'](handleEntityNotFound(_0x432cda,null))[_0xc9b7('0x25')](respondWithResult(_0x432cda,null))[_0xc9b7('0x46')](handleError(_0x432cda,null));};exports[_0xc9b7('0x4b')]=function(_0x39e046,_0xc236a9){return db[_0xc9b7('0x2b')]['create'](_0x39e046[_0xc9b7('0x4c')],{})['then'](respondWithResult(_0xc236a9,0xc9))[_0xc9b7('0x46')](handleError(_0xc236a9,null));};exports['update']=function(_0x29cecc,_0x2abe56){if(_0x29cecc[_0xc9b7('0x4c')]['id']){delete _0x29cecc[_0xc9b7('0x4c')]['id'];}return db[_0xc9b7('0x2b')][_0xc9b7('0x4a')]({'where':{'id':_0x29cecc['params']['id']}})[_0xc9b7('0x25')](handleEntityNotFound(_0x2abe56,null))[_0xc9b7('0x25')](saveUpdates(_0x29cecc[_0xc9b7('0x4c')],null))[_0xc9b7('0x25')](respondWithResult(_0x2abe56,null))['catch'](handleError(_0x2abe56,null));};exports[_0xc9b7('0x24')]=function(_0x24afe2,_0x41a1e9){return db[_0xc9b7('0x2b')][_0xc9b7('0x4a')]({'where':{'id':_0x24afe2[_0xc9b7('0x48')]['id']}})['then'](handleEntityNotFound(_0x41a1e9,null))[_0xc9b7('0x25')](removeEntity(_0x41a1e9,null))[_0xc9b7('0x46')](handleError(_0x41a1e9,null));};exports[_0xc9b7('0x4d')]=function(_0x3db553,_0x1c1c57){return db[_0xc9b7('0x2b')]['describe']()[_0xc9b7('0x25')](respondWithResult(_0x1c1c57,null))['catch'](handleError(_0x1c1c57,null));};exports[_0xc9b7('0x4e')]=function(_0x36dfcf,_0x1a9ca7){var _0x14dbb1={},_0x2e597a={},_0x5463ec={'count':0x0,'rows':[]};_0x2e597a[_0xc9b7('0x2f')]=_[_0xc9b7('0x49')](db[_0xc9b7('0x2b')][_0xc9b7('0x2c')]);_0x2e597a[_0xc9b7('0x30')]=_[_0xc9b7('0x49')](_0x36dfcf['query']);_0x2e597a['filters']=_['intersection'](_0x2e597a['model'],_0x2e597a[_0xc9b7('0x30')]);_0x14dbb1[_0xc9b7('0x33')]=_[_0xc9b7('0x31')](_0x2e597a['model'],qs[_0xc9b7('0x32')](_0x36dfcf['query'][_0xc9b7('0x32')]));_0x14dbb1[_0xc9b7('0x33')]=_0x14dbb1['attributes'][_0xc9b7('0x34')]?_0x14dbb1[_0xc9b7('0x33')]:_0x2e597a['model'];if(!_0x36dfcf[_0xc9b7('0x30')][_0xc9b7('0x35')](_0xc9b7('0x36'))){_0x14dbb1[_0xc9b7('0x37')]=qs[_0xc9b7('0x37')](_0x36dfcf['query'][_0xc9b7('0x37')]);_0x14dbb1[_0xc9b7('0x20')]=qs[_0xc9b7('0x20')](_0x36dfcf['query'][_0xc9b7('0x20')]);}_0x14dbb1[_0xc9b7('0x38')]=qs[_0xc9b7('0x39')](_0x36dfcf[_0xc9b7('0x30')][_0xc9b7('0x39')]);_0x14dbb1[_0xc9b7('0x3a')]=qs[_0xc9b7('0x3b')](_[_0xc9b7('0x3c')](_0x36dfcf['query'],_0x2e597a[_0xc9b7('0x3b')]));if(_0x36dfcf['query']['filter']){_0x14dbb1['where']=_[_0xc9b7('0x3e')](_0x14dbb1[_0xc9b7('0x3a')],{'$or':_['map'](_0x14dbb1[_0xc9b7('0x33')],function(_0x5b896b){var _0x572ed3={};_0x572ed3[_0x5b896b]={'$like':'%'+_0x36dfcf[_0xc9b7('0x30')]['filter']+'%'};return _0x572ed3;})});}_0x14dbb1=_[_0xc9b7('0x3e')]({},_0x14dbb1,_0x36dfcf['options']);var _0x22de6f={'where':_0x14dbb1[_0xc9b7('0x3a')]};return db[_0xc9b7('0x2b')][_0xc9b7('0x41')](_0x22de6f)[_0xc9b7('0x25')](function(_0x277128){_0x5463ec['count']=_0x277128;if(_0x36dfcf[_0xc9b7('0x30')]['includeAll']){_0x14dbb1[_0xc9b7('0x43')]=[{'all':!![]}];}return db[_0xc9b7('0x2b')]['findAll'](_0x14dbb1);})[_0xc9b7('0x25')](function(_0x57483b){_0x5463ec[_0xc9b7('0x45')]=_0x57483b;return _0x5463ec;})[_0xc9b7('0x25')](respondWithFilteredResult(_0x1a9ca7,_0x14dbb1,_0xc9b7('0x4e')))[_0xc9b7('0x46')](handleError(_0x1a9ca7,null,_0xc9b7('0x4e')));};