1c65add07c203ff13a3ff2ad96dfeedac93f480b
[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 _0xcc77=['pick','getVoiceQueuesReport','eml-format','rimraf','zip-dir','moment','bluebird','mustache','sox','to-csv','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./voiceQueueReport.socket','register','sendStatus','status','end','json','offset','undefined','count','limit','Content-Range','apply','reject','save','then','destroy','error','stack','name','send','map','VoiceQueueReport','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','rawAttributes','find','create','body','update','params','describe','order'];(function(_0x4e0f47,_0x382e57){var _0x36a384=function(_0x1c3e63){while(--_0x1c3e63){_0x4e0f47['push'](_0x4e0f47['shift']());}};_0x36a384(++_0x382e57);}(_0xcc77,0xa6));var _0x7cc7=function(_0x1de484,_0x270cd3){_0x1de484=_0x1de484-0x0;var _0x3e2ff3=_0xcc77[_0x1de484];return _0x3e2ff3;};'use strict';var emlformat=require(_0x7cc7('0x0'));var rimraf=require(_0x7cc7('0x1'));var zipdir=require(_0x7cc7('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x7cc7('0x3'));var BPromise=require(_0x7cc7('0x4'));var Mustache=require(_0x7cc7('0x5'));var util=require('util');var path=require('path');var sox=require(_0x7cc7('0x6'));var csv=require(_0x7cc7('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7cc7('0x8'));var _=require(_0x7cc7('0x9'));var squel=require(_0x7cc7('0xa'));var crypto=require(_0x7cc7('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x7cc7('0xc'));var toCsv=require(_0x7cc7('0x7'));var querystring=require(_0x7cc7('0xd'));var Papa=require(_0x7cc7('0xe'));var Redis=require(_0x7cc7('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x7cc7('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x7cc7('0x11'))(_0x7cc7('0x12'));var utils=require(_0x7cc7('0x13'));var config=require(_0x7cc7('0x14'));var licenseUtil=require(_0x7cc7('0x15'));var db=require(_0x7cc7('0x16'))['db'];config['redis']=_['defaults'](config[_0x7cc7('0x17')],{'host':_0x7cc7('0x18'),'port':0x18eb});var socket=require(_0x7cc7('0x19'))(new Redis(config[_0x7cc7('0x17')]));require(_0x7cc7('0x1a'))[_0x7cc7('0x1b')](socket);function respondWithStatusCode(_0x3c4624,_0x4a9405){_0x4a9405=_0x4a9405||0xcc;return function(_0x5d1c46){if(_0x5d1c46){return _0x3c4624[_0x7cc7('0x1c')](_0x4a9405);}return _0x3c4624[_0x7cc7('0x1d')](_0x4a9405)[_0x7cc7('0x1e')]();};}function respondWithResult(_0x3967f3,_0x46c3fb){_0x46c3fb=_0x46c3fb||0xc8;return function(_0x25d00f){if(_0x25d00f){return _0x3967f3[_0x7cc7('0x1d')](_0x46c3fb)[_0x7cc7('0x1f')](_0x25d00f);}};}function respondWithFilteredResult(_0x4771d2,_0x5bf62d){return function(_0x152984){if(_0x152984){var _0x5e137e=typeof _0x5bf62d[_0x7cc7('0x20')]===_0x7cc7('0x21')&&typeof _0x5bf62d['limit']===_0x7cc7('0x21');var _0x3cb376=_0x152984['count'];var _0x736753=_0x5e137e?0x0:_0x5bf62d[_0x7cc7('0x20')];var _0x1f4d46=_0x5e137e?_0x152984[_0x7cc7('0x22')]:_0x5bf62d['offset']+_0x5bf62d[_0x7cc7('0x23')];var _0x1ecc5b;if(_0x1f4d46>=_0x3cb376){_0x1f4d46=_0x3cb376;_0x1ecc5b=0xc8;}else{_0x1ecc5b=0xce;}_0x4771d2[_0x7cc7('0x1d')](_0x1ecc5b);return _0x4771d2['set'](_0x7cc7('0x24'),_0x736753+'-'+_0x1f4d46+'/'+_0x3cb376)[_0x7cc7('0x1f')](_0x152984);}return null;};}function patchUpdates(_0x340fcb){return function(_0x20b689){try{jsonpatch[_0x7cc7('0x25')](_0x20b689,_0x340fcb,!![]);}catch(_0x64a2d3){return BPromise[_0x7cc7('0x26')](_0x64a2d3);}return _0x20b689[_0x7cc7('0x27')]();};}function saveUpdates(_0xcfa18,_0x3c5b20){return function(_0x23014b){if(_0x23014b){return _0x23014b['update'](_0xcfa18)[_0x7cc7('0x28')](function(_0x3a087a){return _0x3a087a;});}return null;};}function removeEntity(_0x434805,_0x521135){return function(_0xcb8587){if(_0xcb8587){return _0xcb8587[_0x7cc7('0x29')]()[_0x7cc7('0x28')](function(){_0x434805[_0x7cc7('0x1d')](0xcc)[_0x7cc7('0x1e')]();});}};}function handleEntityNotFound(_0x97f650,_0x8ede29){return function(_0x5946f2){if(!_0x5946f2){_0x97f650['sendStatus'](0x194);}return _0x5946f2;};}function handleError(_0x4578bb,_0x35e9ef){_0x35e9ef=_0x35e9ef||0x1f4;return function(_0x48071a){logger[_0x7cc7('0x2a')](_0x48071a[_0x7cc7('0x2b')]);if(_0x48071a[_0x7cc7('0x2c')]){delete _0x48071a['name'];}_0x4578bb[_0x7cc7('0x1d')](_0x35e9ef)[_0x7cc7('0x2d')](_0x48071a);};}exports['index']=function(_0x390e25,_0x20d9ad){var _0x433c80={},_0x20e8f2={},_0x87df64={'count':0x0,'rows':[]};var _0x32d2e2=_[_0x7cc7('0x2e')](db[_0x7cc7('0x2f')]['rawAttributes'],function(_0x5a06ed){return{'name':_0x5a06ed[_0x7cc7('0x30')],'type':_0x5a06ed[_0x7cc7('0x31')][_0x7cc7('0x32')]};});_0x20e8f2[_0x7cc7('0x33')]=_[_0x7cc7('0x2e')](_0x32d2e2,'name');_0x20e8f2[_0x7cc7('0x34')]=_[_0x7cc7('0x35')](_0x390e25['query']);_0x20e8f2[_0x7cc7('0x36')]=_[_0x7cc7('0x37')](_0x20e8f2['model'],_0x20e8f2['query']);_0x433c80[_0x7cc7('0x38')]=_[_0x7cc7('0x37')](_0x20e8f2[_0x7cc7('0x33')],qs[_0x7cc7('0x39')](_0x390e25['query']['fields']));_0x433c80[_0x7cc7('0x38')]=_0x433c80[_0x7cc7('0x38')][_0x7cc7('0x3a')]?_0x433c80[_0x7cc7('0x38')]:_0x20e8f2[_0x7cc7('0x33')];if(!_0x390e25[_0x7cc7('0x34')][_0x7cc7('0x3b')](_0x7cc7('0x3c'))){_0x433c80[_0x7cc7('0x23')]=qs[_0x7cc7('0x23')](_0x390e25[_0x7cc7('0x34')][_0x7cc7('0x23')]);_0x433c80[_0x7cc7('0x20')]=qs[_0x7cc7('0x20')](_0x390e25[_0x7cc7('0x34')][_0x7cc7('0x20')]);}_0x433c80['order']=qs['sort'](_0x390e25['query'][_0x7cc7('0x3d')]);_0x433c80[_0x7cc7('0x3e')]=qs[_0x7cc7('0x36')](_['pick'](_0x390e25[_0x7cc7('0x34')],_0x20e8f2[_0x7cc7('0x36')]),_0x32d2e2);if(_0x390e25[_0x7cc7('0x34')][_0x7cc7('0x3f')]){_0x433c80[_0x7cc7('0x3e')]=_['merge'](_0x433c80[_0x7cc7('0x3e')],{'$or':_[_0x7cc7('0x2e')](_0x32d2e2,function(_0x4d4795){if(_0x4d4795[_0x7cc7('0x31')]!==_0x7cc7('0x40')){var _0x474b0e={};_0x474b0e[_0x4d4795['name']]={'$like':'%'+_0x390e25[_0x7cc7('0x34')]['filter']+'%'};return _0x474b0e;}})});}_0x433c80=_[_0x7cc7('0x41')]({},_0x433c80,_0x390e25[_0x7cc7('0x42')]);var _0x3b3038={'where':_0x433c80['where']};return db[_0x7cc7('0x2f')]['count'](_0x3b3038)['then'](function(_0x2ab618){_0x87df64[_0x7cc7('0x22')]=_0x2ab618;if(_0x390e25[_0x7cc7('0x34')][_0x7cc7('0x43')]){_0x433c80[_0x7cc7('0x44')]=[{'all':!![]}];}return db[_0x7cc7('0x2f')][_0x7cc7('0x45')](_0x433c80);})['then'](function(_0x1dcd62){_0x87df64[_0x7cc7('0x46')]=_0x1dcd62;return _0x87df64;})[_0x7cc7('0x28')](respondWithFilteredResult(_0x20d9ad,_0x433c80))[_0x7cc7('0x47')](handleError(_0x20d9ad,null));};exports['show']=function(_0x4fad5e,_0x3bcf39){var _0x21b67e={'raw':![],'where':{'id':_0x4fad5e['params']['id']}},_0x3213f1={};_0x3213f1[_0x7cc7('0x33')]=_[_0x7cc7('0x35')](db[_0x7cc7('0x2f')][_0x7cc7('0x48')]);_0x3213f1[_0x7cc7('0x34')]=_[_0x7cc7('0x35')](_0x4fad5e[_0x7cc7('0x34')]);_0x3213f1['filters']=_['intersection'](_0x3213f1[_0x7cc7('0x33')],_0x3213f1[_0x7cc7('0x34')]);_0x21b67e[_0x7cc7('0x38')]=_['intersection'](_0x3213f1[_0x7cc7('0x33')],qs[_0x7cc7('0x39')](_0x4fad5e[_0x7cc7('0x34')][_0x7cc7('0x39')]));_0x21b67e['attributes']=_0x21b67e[_0x7cc7('0x38')][_0x7cc7('0x3a')]?_0x21b67e[_0x7cc7('0x38')]:_0x3213f1[_0x7cc7('0x33')];if(_0x4fad5e[_0x7cc7('0x34')][_0x7cc7('0x43')]){_0x21b67e[_0x7cc7('0x44')]=[{'all':!![]}];}_0x21b67e=_[_0x7cc7('0x41')]({},_0x21b67e,_0x4fad5e['options']);return db[_0x7cc7('0x2f')][_0x7cc7('0x49')](_0x21b67e)['then'](handleEntityNotFound(_0x3bcf39,null))[_0x7cc7('0x28')](respondWithResult(_0x3bcf39,null))['catch'](handleError(_0x3bcf39,null));};exports[_0x7cc7('0x4a')]=function(_0x599138,_0x34cec3){return db[_0x7cc7('0x2f')][_0x7cc7('0x4a')](_0x599138[_0x7cc7('0x4b')],{})[_0x7cc7('0x28')](respondWithResult(_0x34cec3,0xc9))[_0x7cc7('0x47')](handleError(_0x34cec3,null));};exports[_0x7cc7('0x4c')]=function(_0x47e900,_0x40658b){if(_0x47e900[_0x7cc7('0x4b')]['id']){delete _0x47e900[_0x7cc7('0x4b')]['id'];}return db['VoiceQueueReport'][_0x7cc7('0x49')]({'where':{'id':_0x47e900[_0x7cc7('0x4d')]['id']}})[_0x7cc7('0x28')](handleEntityNotFound(_0x40658b,null))[_0x7cc7('0x28')](saveUpdates(_0x47e900[_0x7cc7('0x4b')],null))[_0x7cc7('0x28')](respondWithResult(_0x40658b,null))[_0x7cc7('0x47')](handleError(_0x40658b,null));};exports[_0x7cc7('0x29')]=function(_0x4ba677,_0x2c3e6b){return db[_0x7cc7('0x2f')][_0x7cc7('0x49')]({'where':{'id':_0x4ba677[_0x7cc7('0x4d')]['id']}})['then'](handleEntityNotFound(_0x2c3e6b,null))[_0x7cc7('0x28')](removeEntity(_0x2c3e6b,null))['catch'](handleError(_0x2c3e6b,null));};exports[_0x7cc7('0x4e')]=function(_0x187fe3,_0x3452f2){return db[_0x7cc7('0x2f')][_0x7cc7('0x4e')]()[_0x7cc7('0x28')](respondWithResult(_0x3452f2,null))[_0x7cc7('0x47')](handleError(_0x3452f2,null));};exports['getVoiceQueuesReport']=function(_0x33f5c4,_0x46a736){var _0x45fd2f={},_0x10b05d={},_0x2a0c8e={'count':0x0,'rows':[]};_0x10b05d['model']=_[_0x7cc7('0x35')](db[_0x7cc7('0x2f')][_0x7cc7('0x48')]);_0x10b05d[_0x7cc7('0x34')]=_['keys'](_0x33f5c4['query']);_0x10b05d[_0x7cc7('0x36')]=_[_0x7cc7('0x37')](_0x10b05d[_0x7cc7('0x33')],_0x10b05d[_0x7cc7('0x34')]);_0x45fd2f[_0x7cc7('0x38')]=_[_0x7cc7('0x37')](_0x10b05d[_0x7cc7('0x33')],qs['fields'](_0x33f5c4[_0x7cc7('0x34')][_0x7cc7('0x39')]));_0x45fd2f[_0x7cc7('0x38')]=_0x45fd2f[_0x7cc7('0x38')][_0x7cc7('0x3a')]?_0x45fd2f['attributes']:_0x10b05d[_0x7cc7('0x33')];if(!_0x33f5c4[_0x7cc7('0x34')][_0x7cc7('0x3b')](_0x7cc7('0x3c'))){_0x45fd2f['limit']=qs[_0x7cc7('0x23')](_0x33f5c4[_0x7cc7('0x34')][_0x7cc7('0x23')]);_0x45fd2f[_0x7cc7('0x20')]=qs[_0x7cc7('0x20')](_0x33f5c4['query'][_0x7cc7('0x20')]);}_0x45fd2f[_0x7cc7('0x4f')]=qs[_0x7cc7('0x3d')](_0x33f5c4[_0x7cc7('0x34')][_0x7cc7('0x3d')]);_0x45fd2f[_0x7cc7('0x3e')]=qs[_0x7cc7('0x36')](_[_0x7cc7('0x50')](_0x33f5c4['query'],_0x10b05d[_0x7cc7('0x36')]));if(_0x33f5c4[_0x7cc7('0x34')][_0x7cc7('0x3f')]){_0x45fd2f[_0x7cc7('0x3e')]=_[_0x7cc7('0x41')](_0x45fd2f['where'],{'$or':_[_0x7cc7('0x2e')](_0x45fd2f['attributes'],function(_0x6ac190){var _0x558ec3={};_0x558ec3[_0x6ac190]={'$like':'%'+_0x33f5c4[_0x7cc7('0x34')][_0x7cc7('0x3f')]+'%'};return _0x558ec3;})});}_0x45fd2f=_[_0x7cc7('0x41')]({},_0x45fd2f,_0x33f5c4[_0x7cc7('0x42')]);var _0x4477e3={'where':_0x45fd2f[_0x7cc7('0x3e')]};return db[_0x7cc7('0x2f')]['count'](_0x4477e3)[_0x7cc7('0x28')](function(_0x144cfc){_0x2a0c8e[_0x7cc7('0x22')]=_0x144cfc;if(_0x33f5c4[_0x7cc7('0x34')][_0x7cc7('0x43')]){_0x45fd2f[_0x7cc7('0x44')]=[{'all':!![]}];}return db[_0x7cc7('0x2f')][_0x7cc7('0x45')](_0x45fd2f);})['then'](function(_0x13c558){_0x2a0c8e[_0x7cc7('0x46')]=_0x13c558;return _0x2a0c8e;})[_0x7cc7('0x28')](respondWithFilteredResult(_0x46a736,_0x45fd2f,'getVoiceQueuesReport'))['catch'](handleError(_0x46a736,null,_0x7cc7('0x51')));};