a13395de91a8f9b048720bc4f33be20d766984f2
[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 _0x3b2b=['desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./voiceQueueReport.socket','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','save','destroy','stack','name','send','index','map','type','key','model','query','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','then','include','VoiceQueueReport','findAll','rows','catch','show','params','keys','rawAttributes','find','create','body','describe','getVoiceQueuesReport','hasOwnProperty','options','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce'];(function(_0x19d1e1,_0x123555){var _0x4bfa93=function(_0x10daac){while(--_0x10daac){_0x19d1e1['push'](_0x19d1e1['shift']());}};_0x4bfa93(++_0x123555);}(_0x3b2b,0x136));var _0xb3b2=function(_0x1d9aa0,_0x272488){_0x1d9aa0=_0x1d9aa0-0x0;var _0x226868=_0x3b2b[_0x1d9aa0];return _0x226868;};'use strict';var emlformat=require(_0xb3b2('0x0'));var rimraf=require(_0xb3b2('0x1'));var zipdir=require(_0xb3b2('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb3b2('0x3'));var moment=require(_0xb3b2('0x4'));var BPromise=require(_0xb3b2('0x5'));var Mustache=require('mustache');var util=require(_0xb3b2('0x6'));var path=require('path');var sox=require(_0xb3b2('0x7'));var csv=require('to-csv');var ejs=require(_0xb3b2('0x8'));var fs=require('fs');var fs_extra=require(_0xb3b2('0x9'));var _=require(_0xb3b2('0xa'));var squel=require(_0xb3b2('0xb'));var crypto=require(_0xb3b2('0xc'));var jsforce=require(_0xb3b2('0xd'));var deskjs=require(_0xb3b2('0xe'));var toCsv=require('to-csv');var querystring=require(_0xb3b2('0xf'));var Papa=require(_0xb3b2('0x10'));var Redis=require(_0xb3b2('0x11'));var authService=require(_0xb3b2('0x12'));var qs=require(_0xb3b2('0x13'));var as=require(_0xb3b2('0x14'));var hardwareService=require(_0xb3b2('0x15'));var logger=require(_0xb3b2('0x16'))('api');var utils=require('../../config/utils');var config=require(_0xb3b2('0x17'));var licenseUtil=require(_0xb3b2('0x18'));var db=require(_0xb3b2('0x19'))['db'];config[_0xb3b2('0x1a')]=_['defaults'](config[_0xb3b2('0x1a')],{'host':_0xb3b2('0x1b'),'port':0x18eb});var socket=require(_0xb3b2('0x1c'))(new Redis(config[_0xb3b2('0x1a')]));require(_0xb3b2('0x1d'))['register'](socket);function respondWithStatusCode(_0x50db1b,_0x228db2){_0x228db2=_0x228db2||0xcc;return function(_0x407e07){if(_0x407e07){return _0x50db1b[_0xb3b2('0x1e')](_0x228db2);}return _0x50db1b[_0xb3b2('0x1f')](_0x228db2)[_0xb3b2('0x20')]();};}function respondWithResult(_0x2791fa,_0x29d194){_0x29d194=_0x29d194||0xc8;return function(_0x34c503){if(_0x34c503){return _0x2791fa[_0xb3b2('0x1f')](_0x29d194)[_0xb3b2('0x21')](_0x34c503);}};}function respondWithFilteredResult(_0x43bca3,_0x1ee1b4){return function(_0x2254bd){if(_0x2254bd){var _0x34f3eb=typeof _0x1ee1b4[_0xb3b2('0x22')]==='undefined'&&typeof _0x1ee1b4['limit']===_0xb3b2('0x23');var _0x3e927a=_0x2254bd[_0xb3b2('0x24')];var _0x51632b=_0x34f3eb?0x0:_0x1ee1b4[_0xb3b2('0x22')];var _0x367d58=_0x34f3eb?_0x2254bd[_0xb3b2('0x24')]:_0x1ee1b4[_0xb3b2('0x22')]+_0x1ee1b4[_0xb3b2('0x25')];var _0x2e50c9;if(_0x367d58>=_0x3e927a){_0x367d58=_0x3e927a;_0x2e50c9=0xc8;}else{_0x2e50c9=0xce;}_0x43bca3['status'](_0x2e50c9);return _0x43bca3[_0xb3b2('0x26')](_0xb3b2('0x27'),_0x51632b+'-'+_0x367d58+'/'+_0x3e927a)[_0xb3b2('0x21')](_0x2254bd);}return null;};}function patchUpdates(_0xd37241){return function(_0x404bd1){try{jsonpatch['apply'](_0x404bd1,_0xd37241,!![]);}catch(_0x190996){return BPromise['reject'](_0x190996);}return _0x404bd1[_0xb3b2('0x28')]();};}function saveUpdates(_0x32b52c,_0x25dd59){return function(_0xd9f470){if(_0xd9f470){return _0xd9f470['update'](_0x32b52c)['then'](function(_0x212dfb){return _0x212dfb;});}return null;};}function removeEntity(_0x31ae68,_0x328f41){return function(_0x29eb77){if(_0x29eb77){return _0x29eb77[_0xb3b2('0x29')]()['then'](function(){_0x31ae68[_0xb3b2('0x1f')](0xcc)[_0xb3b2('0x20')]();});}};}function handleEntityNotFound(_0x2b5b9e,_0x2f633a){return function(_0x6a9ef1){if(!_0x6a9ef1){_0x2b5b9e[_0xb3b2('0x1e')](0x194);}return _0x6a9ef1;};}function handleError(_0x28821e,_0x102951){_0x102951=_0x102951||0x1f4;return function(_0x559bcc){logger['error'](_0x559bcc[_0xb3b2('0x2a')]);if(_0x559bcc[_0xb3b2('0x2b')]){delete _0x559bcc[_0xb3b2('0x2b')];}_0x28821e['status'](_0x102951)[_0xb3b2('0x2c')](_0x559bcc);};}exports[_0xb3b2('0x2d')]=function(_0x546f57,_0x3b3fab){var _0x419395={},_0x44a28d={},_0x216499={'count':0x0,'rows':[]};var _0x234be8=_[_0xb3b2('0x2e')](db['VoiceQueueReport']['rawAttributes'],function(_0x52dbc2){return{'name':_0x52dbc2['fieldName'],'type':_0x52dbc2[_0xb3b2('0x2f')][_0xb3b2('0x30')]};});_0x44a28d[_0xb3b2('0x31')]=_[_0xb3b2('0x2e')](_0x234be8,_0xb3b2('0x2b'));_0x44a28d[_0xb3b2('0x32')]=_['keys'](_0x546f57[_0xb3b2('0x32')]);_0x44a28d[_0xb3b2('0x33')]=_[_0xb3b2('0x34')](_0x44a28d[_0xb3b2('0x31')],_0x44a28d[_0xb3b2('0x32')]);_0x419395[_0xb3b2('0x35')]=_[_0xb3b2('0x34')](_0x44a28d[_0xb3b2('0x31')],qs['fields'](_0x546f57[_0xb3b2('0x32')][_0xb3b2('0x36')]));_0x419395[_0xb3b2('0x35')]=_0x419395[_0xb3b2('0x35')][_0xb3b2('0x37')]?_0x419395['attributes']:_0x44a28d[_0xb3b2('0x31')];if(!_0x546f57[_0xb3b2('0x32')]['hasOwnProperty'](_0xb3b2('0x38'))){_0x419395[_0xb3b2('0x25')]=qs['limit'](_0x546f57[_0xb3b2('0x32')]['limit']);_0x419395[_0xb3b2('0x22')]=qs['offset'](_0x546f57['query'][_0xb3b2('0x22')]);}_0x419395[_0xb3b2('0x39')]=qs[_0xb3b2('0x3a')](_0x546f57['query'][_0xb3b2('0x3a')]);_0x419395[_0xb3b2('0x3b')]=qs[_0xb3b2('0x33')](_[_0xb3b2('0x3c')](_0x546f57[_0xb3b2('0x32')],_0x44a28d['filters']),_0x234be8);if(_0x546f57[_0xb3b2('0x32')][_0xb3b2('0x3d')]){_0x419395[_0xb3b2('0x3b')]=_[_0xb3b2('0x3e')](_0x419395[_0xb3b2('0x3b')],{'$or':_[_0xb3b2('0x2e')](_0x234be8,function(_0x57a59c){if(_0x57a59c[_0xb3b2('0x2f')]!==_0xb3b2('0x3f')){var _0x229822={};_0x229822[_0x57a59c[_0xb3b2('0x2b')]]={'$like':'%'+_0x546f57[_0xb3b2('0x32')][_0xb3b2('0x3d')]+'%'};return _0x229822;}})});}_0x419395=_[_0xb3b2('0x3e')]({},_0x419395,_0x546f57['options']);var _0x39169d={'where':_0x419395[_0xb3b2('0x3b')]};return db['VoiceQueueReport'][_0xb3b2('0x24')](_0x39169d)[_0xb3b2('0x40')](function(_0x56af69){_0x216499['count']=_0x56af69;if(_0x546f57[_0xb3b2('0x32')]['includeAll']){_0x419395[_0xb3b2('0x41')]=[{'all':!![]}];}return db[_0xb3b2('0x42')][_0xb3b2('0x43')](_0x419395);})[_0xb3b2('0x40')](function(_0x3e9a2a){_0x216499[_0xb3b2('0x44')]=_0x3e9a2a;return _0x216499;})[_0xb3b2('0x40')](respondWithFilteredResult(_0x3b3fab,_0x419395))[_0xb3b2('0x45')](handleError(_0x3b3fab,null));};exports[_0xb3b2('0x46')]=function(_0x18901f,_0x3ba67b){var _0x30e1ee={'raw':![],'where':{'id':_0x18901f[_0xb3b2('0x47')]['id']}},_0x50f814={};_0x50f814[_0xb3b2('0x31')]=_[_0xb3b2('0x48')](db[_0xb3b2('0x42')][_0xb3b2('0x49')]);_0x50f814[_0xb3b2('0x32')]=_[_0xb3b2('0x48')](_0x18901f[_0xb3b2('0x32')]);_0x50f814['filters']=_[_0xb3b2('0x34')](_0x50f814[_0xb3b2('0x31')],_0x50f814[_0xb3b2('0x32')]);_0x30e1ee[_0xb3b2('0x35')]=_[_0xb3b2('0x34')](_0x50f814[_0xb3b2('0x31')],qs[_0xb3b2('0x36')](_0x18901f[_0xb3b2('0x32')][_0xb3b2('0x36')]));_0x30e1ee[_0xb3b2('0x35')]=_0x30e1ee[_0xb3b2('0x35')][_0xb3b2('0x37')]?_0x30e1ee[_0xb3b2('0x35')]:_0x50f814[_0xb3b2('0x31')];if(_0x18901f[_0xb3b2('0x32')]['includeAll']){_0x30e1ee[_0xb3b2('0x41')]=[{'all':!![]}];}_0x30e1ee=_['merge']({},_0x30e1ee,_0x18901f['options']);return db['VoiceQueueReport'][_0xb3b2('0x4a')](_0x30e1ee)['then'](handleEntityNotFound(_0x3ba67b,null))[_0xb3b2('0x40')](respondWithResult(_0x3ba67b,null))[_0xb3b2('0x45')](handleError(_0x3ba67b,null));};exports[_0xb3b2('0x4b')]=function(_0x3b9d47,_0x4fccfe){return db[_0xb3b2('0x42')][_0xb3b2('0x4b')](_0x3b9d47['body'],{})[_0xb3b2('0x40')](respondWithResult(_0x4fccfe,0xc9))[_0xb3b2('0x45')](handleError(_0x4fccfe,null));};exports['update']=function(_0x43803c,_0x19a82e){if(_0x43803c[_0xb3b2('0x4c')]['id']){delete _0x43803c[_0xb3b2('0x4c')]['id'];}return db['VoiceQueueReport'][_0xb3b2('0x4a')]({'where':{'id':_0x43803c[_0xb3b2('0x47')]['id']}})[_0xb3b2('0x40')](handleEntityNotFound(_0x19a82e,null))[_0xb3b2('0x40')](saveUpdates(_0x43803c['body'],null))[_0xb3b2('0x40')](respondWithResult(_0x19a82e,null))[_0xb3b2('0x45')](handleError(_0x19a82e,null));};exports[_0xb3b2('0x29')]=function(_0x1a6cff,_0x275ee4){return db['VoiceQueueReport'][_0xb3b2('0x4a')]({'where':{'id':_0x1a6cff[_0xb3b2('0x47')]['id']}})[_0xb3b2('0x40')](handleEntityNotFound(_0x275ee4,null))[_0xb3b2('0x40')](removeEntity(_0x275ee4,null))[_0xb3b2('0x45')](handleError(_0x275ee4,null));};exports['describe']=function(_0x207257,_0x2af88f){return db['VoiceQueueReport'][_0xb3b2('0x4d')]()['then'](respondWithResult(_0x2af88f,null))[_0xb3b2('0x45')](handleError(_0x2af88f,null));};exports[_0xb3b2('0x4e')]=function(_0x96ff72,_0x58f5c8){var _0x15da35={},_0x4be87d={},_0x20c421={'count':0x0,'rows':[]};_0x4be87d[_0xb3b2('0x31')]=_[_0xb3b2('0x48')](db[_0xb3b2('0x42')][_0xb3b2('0x49')]);_0x4be87d[_0xb3b2('0x32')]=_[_0xb3b2('0x48')](_0x96ff72[_0xb3b2('0x32')]);_0x4be87d[_0xb3b2('0x33')]=_[_0xb3b2('0x34')](_0x4be87d[_0xb3b2('0x31')],_0x4be87d['query']);_0x15da35[_0xb3b2('0x35')]=_[_0xb3b2('0x34')](_0x4be87d[_0xb3b2('0x31')],qs[_0xb3b2('0x36')](_0x96ff72[_0xb3b2('0x32')][_0xb3b2('0x36')]));_0x15da35[_0xb3b2('0x35')]=_0x15da35[_0xb3b2('0x35')][_0xb3b2('0x37')]?_0x15da35[_0xb3b2('0x35')]:_0x4be87d['model'];if(!_0x96ff72['query'][_0xb3b2('0x4f')](_0xb3b2('0x38'))){_0x15da35['limit']=qs[_0xb3b2('0x25')](_0x96ff72[_0xb3b2('0x32')][_0xb3b2('0x25')]);_0x15da35[_0xb3b2('0x22')]=qs[_0xb3b2('0x22')](_0x96ff72[_0xb3b2('0x32')][_0xb3b2('0x22')]);}_0x15da35[_0xb3b2('0x39')]=qs[_0xb3b2('0x3a')](_0x96ff72[_0xb3b2('0x32')][_0xb3b2('0x3a')]);_0x15da35['where']=qs[_0xb3b2('0x33')](_['pick'](_0x96ff72[_0xb3b2('0x32')],_0x4be87d[_0xb3b2('0x33')]));if(_0x96ff72['query'][_0xb3b2('0x3d')]){_0x15da35[_0xb3b2('0x3b')]=_[_0xb3b2('0x3e')](_0x15da35['where'],{'$or':_['map'](_0x15da35['attributes'],function(_0x594ede){var _0x4149dc={};_0x4149dc[_0x594ede]={'$like':'%'+_0x96ff72[_0xb3b2('0x32')]['filter']+'%'};return _0x4149dc;})});}_0x15da35=_[_0xb3b2('0x3e')]({},_0x15da35,_0x96ff72[_0xb3b2('0x50')]);var _0xb83744={'where':_0x15da35[_0xb3b2('0x3b')]};return db[_0xb3b2('0x42')][_0xb3b2('0x24')](_0xb83744)[_0xb3b2('0x40')](function(_0x41f2db){_0x20c421[_0xb3b2('0x24')]=_0x41f2db;if(_0x96ff72[_0xb3b2('0x32')]['includeAll']){_0x15da35['include']=[{'all':!![]}];}return db[_0xb3b2('0x42')][_0xb3b2('0x43')](_0x15da35);})['then'](function(_0x4b9826){_0x20c421[_0xb3b2('0x44')]=_0x4b9826;return _0x20c421;})['then'](respondWithFilteredResult(_0x58f5c8,_0x15da35,'getVoiceQueuesReport'))[_0xb3b2('0x45')](handleError(_0x58f5c8,null,_0xb3b2('0x4e')));};