2bf9b57d17eabdf0da6fdec569d1c8c1bbf60928
[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 _0xcce0=['../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./voiceQueueReport.socket','register','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','end','name','send','index','map','VoiceQueueReport','rawAttributes','type','key','query','keys','filters','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','where','merge','VIRTUAL','filter','options','includeAll','findAll','then','rows','catch','show','params','include','find','create','body','describe','getVoiceQueuesReport','eml-format','rimraf','zip-dir','moment','mustache','util','path','ejs','fs-extra','lodash','crypto','jsforce','to-csv','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x1e5bac,_0x2c5987){var _0x341bef=function(_0x3b08ef){while(--_0x3b08ef){_0x1e5bac['push'](_0x1e5bac['shift']());}};_0x341bef(++_0x2c5987);}(_0xcce0,0x132));var _0x0cce=function(_0x3d9703,_0x5348ad){_0x3d9703=_0x3d9703-0x0;var _0x3512e9=_0xcce0[_0x3d9703];return _0x3512e9;};'use strict';var emlformat=require(_0x0cce('0x0'));var rimraf=require(_0x0cce('0x1'));var zipdir=require(_0x0cce('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0cce('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x0cce('0x4'));var util=require(_0x0cce('0x5'));var path=require(_0x0cce('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x0cce('0x7'));var fs=require('fs');var fs_extra=require(_0x0cce('0x8'));var _=require(_0x0cce('0x9'));var squel=require('squel');var crypto=require(_0x0cce('0xa'));var jsforce=require(_0x0cce('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x0cce('0xc'));var querystring=require('querystring');var Papa=require(_0x0cce('0xd'));var Redis=require(_0x0cce('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x0cce('0xf'));var as=require(_0x0cce('0x10'));var hardwareService=require(_0x0cce('0x11'));var logger=require(_0x0cce('0x12'))('api');var utils=require(_0x0cce('0x13'));var config=require(_0x0cce('0x14'));var licenseUtil=require(_0x0cce('0x15'));var db=require(_0x0cce('0x16'))['db'];config[_0x0cce('0x17')]=_[_0x0cce('0x18')](config[_0x0cce('0x17')],{'host':_0x0cce('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x0cce('0x17')]));require(_0x0cce('0x1a'))[_0x0cce('0x1b')](socket);function respondWithStatusCode(_0x337f3f,_0x4c9d47){_0x4c9d47=_0x4c9d47||0xcc;return function(_0x4b224c){if(_0x4b224c){return _0x337f3f[_0x0cce('0x1c')](_0x4c9d47);}return _0x337f3f[_0x0cce('0x1d')](_0x4c9d47)['end']();};}function respondWithResult(_0x3ee14f,_0x1f28cd){_0x1f28cd=_0x1f28cd||0xc8;return function(_0x2cf685){if(_0x2cf685){return _0x3ee14f[_0x0cce('0x1d')](_0x1f28cd)[_0x0cce('0x1e')](_0x2cf685);}};}function respondWithFilteredResult(_0x57ad37,_0x133b2c){return function(_0x28792b){if(_0x28792b){var _0x3526bf=typeof _0x133b2c[_0x0cce('0x1f')]===_0x0cce('0x20')&&typeof _0x133b2c[_0x0cce('0x21')]===_0x0cce('0x20');var _0x343dc3=_0x28792b[_0x0cce('0x22')];var _0x26b0d7=_0x3526bf?0x0:_0x133b2c['offset'];var _0xed19c0=_0x3526bf?_0x28792b[_0x0cce('0x22')]:_0x133b2c[_0x0cce('0x1f')]+_0x133b2c[_0x0cce('0x21')];var _0x33deb7;if(_0xed19c0>=_0x343dc3){_0xed19c0=_0x343dc3;_0x33deb7=0xc8;}else{_0x33deb7=0xce;}_0x57ad37[_0x0cce('0x1d')](_0x33deb7);return _0x57ad37[_0x0cce('0x23')](_0x0cce('0x24'),_0x26b0d7+'-'+_0xed19c0+'/'+_0x343dc3)[_0x0cce('0x1e')](_0x28792b);}return null;};}function patchUpdates(_0x3749da){return function(_0x33e911){try{jsonpatch[_0x0cce('0x25')](_0x33e911,_0x3749da,!![]);}catch(_0x1d2c0b){return BPromise[_0x0cce('0x26')](_0x1d2c0b);}return _0x33e911[_0x0cce('0x27')]();};}function saveUpdates(_0x1151f4,_0xe4a3fd){return function(_0x18b8fc){if(_0x18b8fc){return _0x18b8fc[_0x0cce('0x28')](_0x1151f4)['then'](function(_0x48413d){return _0x48413d;});}return null;};}function removeEntity(_0x5326fe,_0x14b618){return function(_0xe8ab9a){if(_0xe8ab9a){return _0xe8ab9a['destroy']()['then'](function(){_0x5326fe[_0x0cce('0x1d')](0xcc)[_0x0cce('0x29')]();});}};}function handleEntityNotFound(_0x10ba0f,_0x3af199){return function(_0x4ae9f4){if(!_0x4ae9f4){_0x10ba0f['sendStatus'](0x194);}return _0x4ae9f4;};}function handleError(_0x2bf6f0,_0x40c389){_0x40c389=_0x40c389||0x1f4;return function(_0x262076){logger['error'](_0x262076['stack']);if(_0x262076[_0x0cce('0x2a')]){delete _0x262076[_0x0cce('0x2a')];}_0x2bf6f0[_0x0cce('0x1d')](_0x40c389)[_0x0cce('0x2b')](_0x262076);};}exports[_0x0cce('0x2c')]=function(_0x38536c,_0x5655fc){var _0x312b99={},_0x3aef09={},_0x45d653={'count':0x0,'rows':[]};var _0x5a7519=_[_0x0cce('0x2d')](db[_0x0cce('0x2e')][_0x0cce('0x2f')],function(_0x497df5){return{'name':_0x497df5['fieldName'],'type':_0x497df5[_0x0cce('0x30')][_0x0cce('0x31')]};});_0x3aef09['model']=_[_0x0cce('0x2d')](_0x5a7519,_0x0cce('0x2a'));_0x3aef09[_0x0cce('0x32')]=_[_0x0cce('0x33')](_0x38536c['query']);_0x3aef09[_0x0cce('0x34')]=_['intersection'](_0x3aef09[_0x0cce('0x35')],_0x3aef09[_0x0cce('0x32')]);_0x312b99[_0x0cce('0x36')]=_[_0x0cce('0x37')](_0x3aef09[_0x0cce('0x35')],qs[_0x0cce('0x38')](_0x38536c['query'][_0x0cce('0x38')]));_0x312b99['attributes']=_0x312b99[_0x0cce('0x36')][_0x0cce('0x39')]?_0x312b99[_0x0cce('0x36')]:_0x3aef09[_0x0cce('0x35')];if(!_0x38536c[_0x0cce('0x32')][_0x0cce('0x3a')](_0x0cce('0x3b'))){_0x312b99[_0x0cce('0x21')]=qs['limit'](_0x38536c['query'][_0x0cce('0x21')]);_0x312b99[_0x0cce('0x1f')]=qs[_0x0cce('0x1f')](_0x38536c[_0x0cce('0x32')][_0x0cce('0x1f')]);}_0x312b99[_0x0cce('0x3c')]=qs[_0x0cce('0x3d')](_0x38536c[_0x0cce('0x32')][_0x0cce('0x3d')]);_0x312b99['where']=qs[_0x0cce('0x34')](_[_0x0cce('0x3e')](_0x38536c[_0x0cce('0x32')],_0x3aef09[_0x0cce('0x34')]),_0x5a7519);if(_0x38536c[_0x0cce('0x32')]['filter']){_0x312b99[_0x0cce('0x3f')]=_[_0x0cce('0x40')](_0x312b99['where'],{'$or':_[_0x0cce('0x2d')](_0x5a7519,function(_0xd8761a){if(_0xd8761a['type']!==_0x0cce('0x41')){var _0x3308df={};_0x3308df[_0xd8761a[_0x0cce('0x2a')]]={'$like':'%'+_0x38536c['query'][_0x0cce('0x42')]+'%'};return _0x3308df;}})});}_0x312b99=_[_0x0cce('0x40')]({},_0x312b99,_0x38536c[_0x0cce('0x43')]);var _0x1b9652={'where':_0x312b99[_0x0cce('0x3f')]};return db[_0x0cce('0x2e')][_0x0cce('0x22')](_0x1b9652)['then'](function(_0x4192f3){_0x45d653[_0x0cce('0x22')]=_0x4192f3;if(_0x38536c[_0x0cce('0x32')][_0x0cce('0x44')]){_0x312b99['include']=[{'all':!![]}];}return db[_0x0cce('0x2e')][_0x0cce('0x45')](_0x312b99);})[_0x0cce('0x46')](function(_0x2d3846){_0x45d653[_0x0cce('0x47')]=_0x2d3846;return _0x45d653;})[_0x0cce('0x46')](respondWithFilteredResult(_0x5655fc,_0x312b99))[_0x0cce('0x48')](handleError(_0x5655fc,null));};exports[_0x0cce('0x49')]=function(_0x2d6cde,_0x190421){var _0xeba29d={'raw':![],'where':{'id':_0x2d6cde[_0x0cce('0x4a')]['id']}},_0x4d4c0a={};_0x4d4c0a[_0x0cce('0x35')]=_[_0x0cce('0x33')](db[_0x0cce('0x2e')][_0x0cce('0x2f')]);_0x4d4c0a[_0x0cce('0x32')]=_[_0x0cce('0x33')](_0x2d6cde[_0x0cce('0x32')]);_0x4d4c0a[_0x0cce('0x34')]=_[_0x0cce('0x37')](_0x4d4c0a['model'],_0x4d4c0a['query']);_0xeba29d[_0x0cce('0x36')]=_[_0x0cce('0x37')](_0x4d4c0a[_0x0cce('0x35')],qs[_0x0cce('0x38')](_0x2d6cde[_0x0cce('0x32')]['fields']));_0xeba29d['attributes']=_0xeba29d[_0x0cce('0x36')][_0x0cce('0x39')]?_0xeba29d[_0x0cce('0x36')]:_0x4d4c0a[_0x0cce('0x35')];if(_0x2d6cde[_0x0cce('0x32')][_0x0cce('0x44')]){_0xeba29d[_0x0cce('0x4b')]=[{'all':!![]}];}_0xeba29d=_['merge']({},_0xeba29d,_0x2d6cde['options']);return db[_0x0cce('0x2e')][_0x0cce('0x4c')](_0xeba29d)['then'](handleEntityNotFound(_0x190421,null))[_0x0cce('0x46')](respondWithResult(_0x190421,null))['catch'](handleError(_0x190421,null));};exports['create']=function(_0x2e4f71,_0xcfbd98){return db['VoiceQueueReport'][_0x0cce('0x4d')](_0x2e4f71['body'],{})[_0x0cce('0x46')](respondWithResult(_0xcfbd98,0xc9))['catch'](handleError(_0xcfbd98,null));};exports[_0x0cce('0x28')]=function(_0x79c5ae,_0x20cdf0){if(_0x79c5ae[_0x0cce('0x4e')]['id']){delete _0x79c5ae[_0x0cce('0x4e')]['id'];}return db['VoiceQueueReport'][_0x0cce('0x4c')]({'where':{'id':_0x79c5ae[_0x0cce('0x4a')]['id']}})[_0x0cce('0x46')](handleEntityNotFound(_0x20cdf0,null))[_0x0cce('0x46')](saveUpdates(_0x79c5ae[_0x0cce('0x4e')],null))[_0x0cce('0x46')](respondWithResult(_0x20cdf0,null))[_0x0cce('0x48')](handleError(_0x20cdf0,null));};exports['destroy']=function(_0x13a40c,_0x27d775){return db[_0x0cce('0x2e')][_0x0cce('0x4c')]({'where':{'id':_0x13a40c[_0x0cce('0x4a')]['id']}})[_0x0cce('0x46')](handleEntityNotFound(_0x27d775,null))['then'](removeEntity(_0x27d775,null))[_0x0cce('0x48')](handleError(_0x27d775,null));};exports[_0x0cce('0x4f')]=function(_0xafe219,_0x4c98f2){return db[_0x0cce('0x2e')]['describe']()[_0x0cce('0x46')](respondWithResult(_0x4c98f2,null))[_0x0cce('0x48')](handleError(_0x4c98f2,null));};exports['getVoiceQueuesReport']=function(_0x132c1e,_0x18bbe8){var _0x16fb84={},_0x2f7219={},_0x4ea483={'count':0x0,'rows':[]};_0x2f7219[_0x0cce('0x35')]=_[_0x0cce('0x33')](db[_0x0cce('0x2e')][_0x0cce('0x2f')]);_0x2f7219[_0x0cce('0x32')]=_[_0x0cce('0x33')](_0x132c1e[_0x0cce('0x32')]);_0x2f7219[_0x0cce('0x34')]=_[_0x0cce('0x37')](_0x2f7219['model'],_0x2f7219[_0x0cce('0x32')]);_0x16fb84['attributes']=_[_0x0cce('0x37')](_0x2f7219[_0x0cce('0x35')],qs[_0x0cce('0x38')](_0x132c1e[_0x0cce('0x32')][_0x0cce('0x38')]));_0x16fb84['attributes']=_0x16fb84[_0x0cce('0x36')][_0x0cce('0x39')]?_0x16fb84[_0x0cce('0x36')]:_0x2f7219['model'];if(!_0x132c1e['query'][_0x0cce('0x3a')](_0x0cce('0x3b'))){_0x16fb84[_0x0cce('0x21')]=qs['limit'](_0x132c1e[_0x0cce('0x32')][_0x0cce('0x21')]);_0x16fb84[_0x0cce('0x1f')]=qs[_0x0cce('0x1f')](_0x132c1e[_0x0cce('0x32')][_0x0cce('0x1f')]);}_0x16fb84[_0x0cce('0x3c')]=qs[_0x0cce('0x3d')](_0x132c1e['query'][_0x0cce('0x3d')]);_0x16fb84[_0x0cce('0x3f')]=qs[_0x0cce('0x34')](_[_0x0cce('0x3e')](_0x132c1e['query'],_0x2f7219[_0x0cce('0x34')]));if(_0x132c1e['query'][_0x0cce('0x42')]){_0x16fb84[_0x0cce('0x3f')]=_['merge'](_0x16fb84[_0x0cce('0x3f')],{'$or':_[_0x0cce('0x2d')](_0x16fb84['attributes'],function(_0x143ce0){var _0x5c29c3={};_0x5c29c3[_0x143ce0]={'$like':'%'+_0x132c1e[_0x0cce('0x32')][_0x0cce('0x42')]+'%'};return _0x5c29c3;})});}_0x16fb84=_[_0x0cce('0x40')]({},_0x16fb84,_0x132c1e[_0x0cce('0x43')]);var _0xe9d17a={'where':_0x16fb84[_0x0cce('0x3f')]};return db[_0x0cce('0x2e')][_0x0cce('0x22')](_0xe9d17a)[_0x0cce('0x46')](function(_0x1a6647){_0x4ea483[_0x0cce('0x22')]=_0x1a6647;if(_0x132c1e[_0x0cce('0x32')]['includeAll']){_0x16fb84['include']=[{'all':!![]}];}return db[_0x0cce('0x2e')][_0x0cce('0x45')](_0x16fb84);})[_0x0cce('0x46')](function(_0x353324){_0x4ea483[_0x0cce('0x47')]=_0x353324;return _0x4ea483;})['then'](respondWithFilteredResult(_0x18bbe8,_0x16fb84,_0x0cce('0x50')))['catch'](handleError(_0x18bbe8,null,_0x0cce('0x50')));};