8e9307b92894145ec3ca4e3e61f6ed54fc443388
[motion2.git] / server / api / team / team.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 _0xe917=['removeQueues','remove','Chat','Mail','Sms','Fax','Openchannel','Voice','through','penalty','defaults','TeamVoiceQueue','emit','Queue:save','User','online','voicePause','interface','upsert','format','SIP/%s','all','TeamVoicePrefix','VoicePrefixId','addAgents','spread','removeAgents','Whatsapp','Queue:remove','QueueId','UserVoiceQueueRt','options','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','crypto','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','localhost','./team.socket','register','sendStatus','status','json','offset','undefined','Content-Range','apply','reject','save','name','index','map','Team','rawAttributes','type','key','model','keys','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','limit','order','sort','pick','filter','where','merge','then','count','includeAll','include','findAll','rows','catch','find','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','Teams','UserProfileSection','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','params','transaction','SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20','sequelize','Sequelize','QueryTypes','SELECT','SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20','VoiceQueueId','destroy','SELECT\x20MailQueueId\x20FROM\x20team_has_mail_queues\x20WHERE\x20TeamId\x20=\x20','MailQueueId','UserMailQueue','SELECT\x20SmsQueueId\x20FROM\x20team_has_sms_queues\x20WHERE\x20TeamId\x20=\x20','UserSmsQueue','SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20','ChatQueueId','SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20','UserFaxQueue','SELECT\x20OpenchannelQueueId\x20FROM\x20team_has_openchannel_queues\x20WHERE\x20TeamId\x20=\x20','OpenchannelQueueId','UserOpenchannelQueue','SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20','UserWhatsappQueue','UserVoicePrefix','UserProfileResource','send','getQueues','findOne','channel','isValidChannel','ValidationError','capitalize','toLowerCase','Queue','addQueues','Unknown\x20channel','add','Queues','ids'];(function(_0x5f0089,_0x227e2c){var _0x193892=function(_0x24051f){while(--_0x24051f){_0x5f0089['push'](_0x5f0089['shift']());}};_0x193892(++_0x227e2c);}(_0xe917,0xbb));var _0x7e91=function(_0x2763f2,_0x416af8){_0x2763f2=_0x2763f2-0x0;var _0x3ef471=_0xe917[_0x2763f2];return _0x3ef471;};'use strict';var emlformat=require(_0x7e91('0x0'));var rimraf=require(_0x7e91('0x1'));var zipdir=require(_0x7e91('0x2'));var jsonpatch=require(_0x7e91('0x3'));var rp=require(_0x7e91('0x4'));var moment=require('moment');var BPromise=require(_0x7e91('0x5'));var Mustache=require(_0x7e91('0x6'));var util=require(_0x7e91('0x7'));var path=require(_0x7e91('0x8'));var sox=require(_0x7e91('0x9'));var csv=require(_0x7e91('0xa'));var ejs=require(_0x7e91('0xb'));var fs=require('fs');var fs_extra=require(_0x7e91('0xc'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x7e91('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x7e91('0xe'));var toCsv=require(_0x7e91('0xa'));var querystring=require('querystring');var Papa=require(_0x7e91('0xf'));var Redis=require('ioredis');var authService=require(_0x7e91('0x10'));var qs=require(_0x7e91('0x11'));var as=require(_0x7e91('0x12'));var hardwareService=require(_0x7e91('0x13'));var logger=require(_0x7e91('0x14'))(_0x7e91('0x15'));var utils=require(_0x7e91('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x7e91('0x17'));var db=require(_0x7e91('0x18'))['db'];config['redis']=_['defaults'](config[_0x7e91('0x19')],{'host':_0x7e91('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x7e91('0x19')]));require(_0x7e91('0x1b'))[_0x7e91('0x1c')](socket);function respondWithStatusCode(_0x457caa,_0xbda85c){_0xbda85c=_0xbda85c||0xcc;return function(_0x4cfcd0){if(_0x4cfcd0){return _0x457caa[_0x7e91('0x1d')](_0xbda85c);}return _0x457caa[_0x7e91('0x1e')](_0xbda85c)['end']();};}function respondWithResult(_0xe6f362,_0x3577fa){_0x3577fa=_0x3577fa||0xc8;return function(_0x3fd447){if(_0x3fd447){return _0xe6f362[_0x7e91('0x1e')](_0x3577fa)[_0x7e91('0x1f')](_0x3fd447);}};}function respondWithFilteredResult(_0x14e578,_0x5791ff){return function(_0x51af68){if(_0x51af68){var _0x17e1a4=typeof _0x5791ff[_0x7e91('0x20')]==='undefined'&&typeof _0x5791ff['limit']===_0x7e91('0x21');var _0x45bbd4=_0x51af68['count'];var _0xda3f36=_0x17e1a4?0x0:_0x5791ff[_0x7e91('0x20')];var _0x12fa8e=_0x17e1a4?_0x51af68['count']:_0x5791ff[_0x7e91('0x20')]+_0x5791ff['limit'];var _0x45ac91;if(_0x12fa8e>=_0x45bbd4){_0x12fa8e=_0x45bbd4;_0x45ac91=0xc8;}else{_0x45ac91=0xce;}_0x14e578['status'](_0x45ac91);return _0x14e578['set'](_0x7e91('0x22'),_0xda3f36+'-'+_0x12fa8e+'/'+_0x45bbd4)[_0x7e91('0x1f')](_0x51af68);}return null;};}function patchUpdates(_0x32ece2){return function(_0x4a9049){try{jsonpatch[_0x7e91('0x23')](_0x4a9049,_0x32ece2,!![]);}catch(_0x154f6a){return BPromise[_0x7e91('0x24')](_0x154f6a);}return _0x4a9049[_0x7e91('0x25')]();};}function saveUpdates(_0x54587c,_0x51dc86){return function(_0x31696b){if(_0x31696b){return _0x31696b['update'](_0x54587c)['then'](function(_0x588d2b){return _0x588d2b;});}return null;};}function handleEntityNotFound(_0x4b2228,_0x2d8edf){return function(_0x322d3b){if(!_0x322d3b){_0x4b2228['sendStatus'](0x194);}return _0x322d3b;};}function handleError(_0x2cbd19,_0x458474){_0x458474=_0x458474||0x1f4;return function(_0x3aa5a0){logger['error'](_0x3aa5a0['stack']);if(_0x3aa5a0[_0x7e91('0x26')]){delete _0x3aa5a0[_0x7e91('0x26')];}_0x2cbd19[_0x7e91('0x1e')](_0x458474)['send'](_0x3aa5a0);};}exports[_0x7e91('0x27')]=function(_0x5bc18a,_0x1e339f){var _0x2250c5={},_0x2bfed5={},_0xb2bf49={'count':0x0,'rows':[]};var _0x1faf7a=_[_0x7e91('0x28')](db[_0x7e91('0x29')][_0x7e91('0x2a')],function(_0x12294f){return{'name':_0x12294f['fieldName'],'type':_0x12294f[_0x7e91('0x2b')][_0x7e91('0x2c')]};});_0x2bfed5[_0x7e91('0x2d')]=_[_0x7e91('0x28')](_0x1faf7a,_0x7e91('0x26'));_0x2bfed5['query']=_[_0x7e91('0x2e')](_0x5bc18a[_0x7e91('0x2f')]);_0x2bfed5[_0x7e91('0x30')]=_['intersection'](_0x2bfed5[_0x7e91('0x2d')],_0x2bfed5[_0x7e91('0x2f')]);_0x2250c5[_0x7e91('0x31')]=_[_0x7e91('0x32')](_0x2bfed5[_0x7e91('0x2d')],qs['fields'](_0x5bc18a[_0x7e91('0x2f')][_0x7e91('0x33')]));_0x2250c5[_0x7e91('0x31')]=_0x2250c5[_0x7e91('0x31')][_0x7e91('0x34')]?_0x2250c5[_0x7e91('0x31')]:_0x2bfed5['model'];if(!_0x5bc18a['query'][_0x7e91('0x35')](_0x7e91('0x36'))){_0x2250c5[_0x7e91('0x37')]=qs['limit'](_0x5bc18a[_0x7e91('0x2f')][_0x7e91('0x37')]);_0x2250c5[_0x7e91('0x20')]=qs[_0x7e91('0x20')](_0x5bc18a[_0x7e91('0x2f')]['offset']);}_0x2250c5[_0x7e91('0x38')]=qs[_0x7e91('0x39')](_0x5bc18a[_0x7e91('0x2f')][_0x7e91('0x39')]);_0x2250c5['where']=qs[_0x7e91('0x30')](_[_0x7e91('0x3a')](_0x5bc18a[_0x7e91('0x2f')],_0x2bfed5[_0x7e91('0x30')]),_0x1faf7a);if(_0x5bc18a[_0x7e91('0x2f')][_0x7e91('0x3b')]){_0x2250c5[_0x7e91('0x3c')]=_[_0x7e91('0x3d')](_0x2250c5[_0x7e91('0x3c')],{'$or':_[_0x7e91('0x28')](_0x1faf7a,function(_0x1737e8){if(_0x1737e8[_0x7e91('0x2b')]!=='VIRTUAL'){var _0x2ff5bf={};_0x2ff5bf[_0x1737e8['name']]={'$like':'%'+_0x5bc18a[_0x7e91('0x2f')][_0x7e91('0x3b')]+'%'};return _0x2ff5bf;}})});}_0x2250c5=_[_0x7e91('0x3d')]({},_0x2250c5,_0x5bc18a['options']);var _0x2f31ad={'where':_0x2250c5[_0x7e91('0x3c')]};return db[_0x7e91('0x29')]['count'](_0x2f31ad)[_0x7e91('0x3e')](function(_0x3e0652){_0xb2bf49[_0x7e91('0x3f')]=_0x3e0652;if(_0x5bc18a['query'][_0x7e91('0x40')]){_0x2250c5[_0x7e91('0x41')]=[{'all':!![]}];}return db[_0x7e91('0x29')][_0x7e91('0x42')](_0x2250c5);})['then'](function(_0x43f299){_0xb2bf49[_0x7e91('0x43')]=_0x43f299;return _0xb2bf49;})['then'](respondWithFilteredResult(_0x1e339f,_0x2250c5))[_0x7e91('0x44')](handleError(_0x1e339f,null));};exports['show']=function(_0x3b8eb8,_0x509585){var _0x3315da={'raw':![],'where':{'id':_0x3b8eb8['params']['id']}},_0x1b834e={};_0x1b834e['model']=_[_0x7e91('0x2e')](db[_0x7e91('0x29')][_0x7e91('0x2a')]);_0x1b834e[_0x7e91('0x2f')]=_[_0x7e91('0x2e')](_0x3b8eb8[_0x7e91('0x2f')]);_0x1b834e[_0x7e91('0x30')]=_[_0x7e91('0x32')](_0x1b834e[_0x7e91('0x2d')],_0x1b834e[_0x7e91('0x2f')]);_0x3315da[_0x7e91('0x31')]=_[_0x7e91('0x32')](_0x1b834e[_0x7e91('0x2d')],qs['fields'](_0x3b8eb8['query'][_0x7e91('0x33')]));_0x3315da['attributes']=_0x3315da[_0x7e91('0x31')][_0x7e91('0x34')]?_0x3315da[_0x7e91('0x31')]:_0x1b834e[_0x7e91('0x2d')];if(_0x3b8eb8[_0x7e91('0x2f')][_0x7e91('0x40')]){_0x3315da[_0x7e91('0x41')]=[{'all':!![]}];}_0x3315da=_[_0x7e91('0x3d')]({},_0x3315da,_0x3b8eb8['options']);return db[_0x7e91('0x29')][_0x7e91('0x45')](_0x3315da)[_0x7e91('0x3e')](handleEntityNotFound(_0x509585,null))[_0x7e91('0x3e')](respondWithResult(_0x509585,null))[_0x7e91('0x44')](handleError(_0x509585,null));};exports[_0x7e91('0x46')]=function(_0x26d12a,_0x1442d0){return db[_0x7e91('0x29')][_0x7e91('0x46')](_0x26d12a['body'],{})[_0x7e91('0x3e')](function(_0x27b44f){var _0x440a1c=_0x26d12a[_0x7e91('0x47')][_0x7e91('0x48')]({'plain':!![]});if(!_0x440a1c)throw new Error(_0x7e91('0x49'));if(_0x440a1c['role']===_0x7e91('0x47')){var _0x13fa7a=_0x27b44f[_0x7e91('0x48')]({'plain':!![]});var _0x386849=_0x7e91('0x4a');return db[_0x7e91('0x4b')][_0x7e91('0x45')]({'where':{'name':_0x386849,'userProfileId':_0x440a1c[_0x7e91('0x4c')]},'raw':!![]})[_0x7e91('0x3e')](function(_0x3a2501){if(_0x3a2501&&_0x3a2501['autoAssociation']===0x0){return db['UserProfileResource'][_0x7e91('0x46')]({'name':_0x13fa7a[_0x7e91('0x26')],'resourceId':_0x13fa7a['id'],'type':_0x3a2501[_0x7e91('0x26')],'sectionId':_0x3a2501['id']},{})[_0x7e91('0x3e')](function(){return _0x27b44f;});}else{return _0x27b44f;}})[_0x7e91('0x44')](function(_0x4f8664){logger[_0x7e91('0x4d')](_0x7e91('0x4e'),_0x4f8664);throw _0x4f8664;});}return _0x27b44f;})[_0x7e91('0x3e')](respondWithResult(_0x1442d0,0xc9))['catch'](handleError(_0x1442d0,null));};exports[_0x7e91('0x4f')]=function(_0x3f8dd4,_0x38386f){if(_0x3f8dd4['body']['id']){delete _0x3f8dd4[_0x7e91('0x50')]['id'];}return db[_0x7e91('0x29')][_0x7e91('0x45')]({'where':{'id':_0x3f8dd4[_0x7e91('0x51')]['id']}})[_0x7e91('0x3e')](handleEntityNotFound(_0x38386f,null))[_0x7e91('0x3e')](saveUpdates(_0x3f8dd4[_0x7e91('0x50')],null))[_0x7e91('0x3e')](respondWithResult(_0x38386f,null))[_0x7e91('0x44')](handleError(_0x38386f,null));};exports['destroy']=function(_0x1a7eaf,_0x248113){var _0x5ca39d=_0x1a7eaf[_0x7e91('0x51')]['id'];var _0x51c179=[];return db['sequelize'][_0x7e91('0x52')](function(_0x5a7f67){var _0x37149f=_0x7e91('0x53')+_0x5ca39d;return db[_0x7e91('0x54')]['query'](_0x37149f,{'type':db[_0x7e91('0x55')][_0x7e91('0x56')][_0x7e91('0x57')],'raw':!![],'transaction':_0x5a7f67})[_0x7e91('0x3e')](function(_0x448b81){_0x51c179=_['map'](_0x448b81,function(_0x189a2a){return Number(_0x189a2a['UserId']);});})[_0x7e91('0x3e')](function(){var _0x3dfb81=_0x7e91('0x58')+_0x5ca39d;return db[_0x7e91('0x54')][_0x7e91('0x2f')](_0x3dfb81,{'type':db['Sequelize']['QueryTypes']['SELECT'],'raw':!![],'transaction':_0x5a7f67});})[_0x7e91('0x3e')](function(_0x2866dd){var _0x5459b8=_[_0x7e91('0x28')](_0x2866dd,function(_0x16d472){return Number(_0x16d472[_0x7e91('0x59')]);});return db['UserVoiceQueue'][_0x7e91('0x5a')]({'where':{'UserId':{'$in':_0x51c179},'VoiceQueueId':{'$in':_0x5459b8}},'transaction':_0x5a7f67});})[_0x7e91('0x3e')](function(){var _0x324731=_0x7e91('0x5b')+_0x5ca39d;return db[_0x7e91('0x54')][_0x7e91('0x2f')](_0x324731,{'type':db['Sequelize'][_0x7e91('0x56')][_0x7e91('0x57')],'raw':!![],'transaction':_0x5a7f67});})[_0x7e91('0x3e')](function(_0x4165e1){var _0xec88ed=_[_0x7e91('0x28')](_0x4165e1,function(_0x10ad2b){return Number(_0x10ad2b[_0x7e91('0x5c')]);});return db[_0x7e91('0x5d')]['destroy']({'where':{'UserId':{'$in':_0x51c179},'MailQueueId':{'$in':_0xec88ed}},'transaction':_0x5a7f67});})[_0x7e91('0x3e')](function(){var _0x5d4088=_0x7e91('0x5e')+_0x5ca39d;return db[_0x7e91('0x54')][_0x7e91('0x2f')](_0x5d4088,{'type':db[_0x7e91('0x55')][_0x7e91('0x56')][_0x7e91('0x57')],'raw':!![],'transaction':_0x5a7f67});})[_0x7e91('0x3e')](function(_0x4ba209){var _0x4fea23=_[_0x7e91('0x28')](_0x4ba209,function(_0x4be287){return Number(_0x4be287['SmsQueueId']);});return db[_0x7e91('0x5f')][_0x7e91('0x5a')]({'where':{'UserId':{'$in':_0x51c179},'SmsQueueId':{'$in':_0x4fea23}},'transaction':_0x5a7f67});})[_0x7e91('0x3e')](function(){var _0x75fe7f=_0x7e91('0x60')+_0x5ca39d;return db[_0x7e91('0x54')][_0x7e91('0x2f')](_0x75fe7f,{'type':db[_0x7e91('0x55')][_0x7e91('0x56')]['SELECT'],'raw':!![],'transaction':_0x5a7f67});})['then'](function(_0x29d17b){var _0x301e80=_['map'](_0x29d17b,function(_0x1e3642){return Number(_0x1e3642[_0x7e91('0x61')]);});return db['UserChatQueue'][_0x7e91('0x5a')]({'where':{'UserId':{'$in':_0x51c179},'ChatQueueId':{'$in':_0x301e80}},'transaction':_0x5a7f67});})[_0x7e91('0x3e')](function(){var _0x278be6=_0x7e91('0x62')+_0x5ca39d;return db[_0x7e91('0x54')][_0x7e91('0x2f')](_0x278be6,{'type':db[_0x7e91('0x55')][_0x7e91('0x56')][_0x7e91('0x57')],'raw':!![],'transaction':_0x5a7f67});})[_0x7e91('0x3e')](function(_0xb018d5){var _0xc2af53=_[_0x7e91('0x28')](_0xb018d5,function(_0x3fe02f){return Number(_0x3fe02f['FaxQueueId']);});return db[_0x7e91('0x63')][_0x7e91('0x5a')]({'where':{'UserId':{'$in':_0x51c179},'FaxQueueId':{'$in':_0xc2af53}},'transaction':_0x5a7f67});})['then'](function(){var _0x3842bc=_0x7e91('0x64')+_0x5ca39d;return db['sequelize']['query'](_0x3842bc,{'type':db['Sequelize'][_0x7e91('0x56')][_0x7e91('0x57')],'raw':!![],'transaction':_0x5a7f67});})['then'](function(_0x33c9cc){var _0x55f6a8=_['map'](_0x33c9cc,function(_0x506504){return Number(_0x506504[_0x7e91('0x65')]);});return db[_0x7e91('0x66')][_0x7e91('0x5a')]({'where':{'UserId':{'$in':_0x51c179},'OpenchannelQueueId':{'$in':_0x55f6a8}},'transaction':_0x5a7f67});})[_0x7e91('0x3e')](function(){var _0x39a160=_0x7e91('0x67')+_0x5ca39d;return db['sequelize'][_0x7e91('0x2f')](_0x39a160,{'type':db[_0x7e91('0x55')]['QueryTypes']['SELECT'],'raw':!![],'transaction':_0x5a7f67});})[_0x7e91('0x3e')](function(_0x122c20){var _0x50d357=_['map'](_0x122c20,function(_0x1b9d4b){return Number(_0x1b9d4b['WhatsappQueueId']);});return db[_0x7e91('0x68')][_0x7e91('0x5a')]({'where':{'UserId':{'$in':_0x51c179},'WhatsappQueueId':{'$in':_0x50d357}},'transaction':_0x5a7f67});})[_0x7e91('0x3e')](function(){return db['TeamVoicePrefix'][_0x7e91('0x45')]({'where':{'TeamId':_0x5ca39d}});})[_0x7e91('0x3e')](function(_0xb8a1b7){if(_0xb8a1b7===null){return;}return db[_0x7e91('0x69')]['destroy']({'where':{'UserId':{'$in':_0x51c179},'VoicePrefixId':_0xb8a1b7['VoicePrefixId']},'transaction':_0x5a7f67});})['then'](function(){return db[_0x7e91('0x29')]['destroy']({'where':{'id':_0x5ca39d},'cascade':!![],'transaction':_0x5a7f67});})[_0x7e91('0x3e')](function(_0x2336b0){if(_0x2336b0===0x0){_0x248113[_0x7e91('0x1d')](0x194);}else{return db[_0x7e91('0x6a')][_0x7e91('0x5a')]({'where':{'type':_0x7e91('0x4a'),'resourceId':_0x5ca39d},'cascade':!![],'transaction':_0x5a7f67})[_0x7e91('0x3e')](function(){_0x248113['status'](0xcc)['end']();});}})[_0x7e91('0x44')](function(_0x23ec08){_0x248113[_0x7e91('0x1e')](0x1f4)[_0x7e91('0x6b')](_0x23ec08);});});};exports[_0x7e91('0x6c')]=function(_0x31a4d5,_0x57bb22,_0x21d658){return db[_0x7e91('0x29')][_0x7e91('0x6d')]({'where':{'id':_0x31a4d5['params']['id']}})[_0x7e91('0x3e')](handleEntityNotFound(_0x57bb22,null))[_0x7e91('0x3e')](function(_0x286e99){if(!_0x31a4d5[_0x7e91('0x2f')][_0x7e91('0x6e')]||!utils[_0x7e91('0x6f')](_0x31a4d5[_0x7e91('0x2f')]['channel'])){throw new db['Sequelize'][(_0x7e91('0x70'))]('Unknown\x20channel');}var _0x5a665b={};var _0x53ed5f={};_0x53ed5f[_0x7e91('0x2d')]=_[_0x7e91('0x2e')](db[_[_0x7e91('0x71')](_0x31a4d5[_0x7e91('0x2f')]['channel'][_0x7e91('0x72')]())+_0x7e91('0x73')][_0x7e91('0x2a')]);_0x53ed5f[_0x7e91('0x2f')]=_['keys'](_0x31a4d5['query']);_0x53ed5f['filters']=_['intersection'](_0x53ed5f['model'],_0x53ed5f['query']);_0x5a665b[_0x7e91('0x31')]=_['intersection'](_0x53ed5f[_0x7e91('0x2d')],qs['fields'](_0x31a4d5['query'][_0x7e91('0x33')]));_0x5a665b[_0x7e91('0x31')]=_0x5a665b[_0x7e91('0x31')][_0x7e91('0x34')]?_0x5a665b[_0x7e91('0x31')]:_0x53ed5f[_0x7e91('0x2d')];_0x5a665b[_0x7e91('0x37')]=qs[_0x7e91('0x37')](_0x31a4d5[_0x7e91('0x2f')][_0x7e91('0x37')]);_0x5a665b[_0x7e91('0x20')]=qs['offset'](_0x31a4d5[_0x7e91('0x2f')][_0x7e91('0x20')]);_0x5a665b[_0x7e91('0x38')]=qs[_0x7e91('0x39')](_0x31a4d5[_0x7e91('0x2f')][_0x7e91('0x39')]);_0x5a665b[_0x7e91('0x3c')]=qs[_0x7e91('0x30')](_[_0x7e91('0x3a')](_0x31a4d5[_0x7e91('0x2f')],_0x53ed5f[_0x7e91('0x30')]));_0x5a665b=_['merge']({},_0x5a665b,_0x31a4d5['options']);return _0x286e99[_0x7e91('0x48')+_[_0x7e91('0x71')](_0x31a4d5['query'][_0x7e91('0x6e')][_0x7e91('0x72')]())+'Queues'](_0x5a665b);})[_0x7e91('0x3e')](respondWithResult(_0x57bb22,null))['catch'](handleError(_0x57bb22,null));};exports[_0x7e91('0x74')]=function(_0x2b46ee,_0x15ee9c,_0x287fc7){return db[_0x7e91('0x29')][_0x7e91('0x6d')]({'where':{'id':_0x2b46ee['params']['id']}})['then'](function(_0x2bdc2e){if(_0x2bdc2e){if(!_0x2b46ee['body'][_0x7e91('0x6e')]||!utils[_0x7e91('0x6f')](_0x2b46ee['body']['channel'])){throw new db[(_0x7e91('0x55'))][(_0x7e91('0x70'))](_0x7e91('0x75'));}return _0x2bdc2e[_0x7e91('0x76')+_[_0x7e91('0x71')](_0x2b46ee[_0x7e91('0x50')]['channel'][_0x7e91('0x72')]())+_0x7e91('0x77')](_0x2b46ee[_0x7e91('0x50')][_0x7e91('0x78')]);}return null;})['then'](handleEntityNotFound(_0x15ee9c,null))[_0x7e91('0x3e')](respondWithStatusCode(_0x15ee9c,null))[_0x7e91('0x44')](handleError(_0x15ee9c,null));};exports[_0x7e91('0x79')]=function(_0x47c15b,_0x4f5708,_0x5cb3dc){return db[_0x7e91('0x29')]['findOne']({'where':{'id':_0x47c15b['params']['id']}})[_0x7e91('0x3e')](function(_0xf32486){if(_0xf32486){if(!_0x47c15b[_0x7e91('0x2f')][_0x7e91('0x6e')]||!utils['isValidChannel'](_0x47c15b[_0x7e91('0x2f')][_0x7e91('0x6e')])){throw new db[(_0x7e91('0x55'))][(_0x7e91('0x70'))](_0x7e91('0x75'));}return _0xf32486[_0x7e91('0x7a')+_[_0x7e91('0x71')](_0x47c15b[_0x7e91('0x2f')][_0x7e91('0x6e')][_0x7e91('0x72')]())+_0x7e91('0x77')](_0x47c15b[_0x7e91('0x2f')][_0x7e91('0x78')]);}return null;})['then'](handleEntityNotFound(_0x4f5708,null))['then'](respondWithStatusCode(_0x4f5708,null))[_0x7e91('0x44')](handleError(_0x4f5708,null));};exports['addAgents']=function(_0x474884,_0x949982){var _0x3cb763=_['isArray'](_0x474884[_0x7e91('0x50')][_0x7e91('0x78')])?_0x474884['body'][_0x7e91('0x78')]:[_0x474884['body'][_0x7e91('0x78')]];var _0x3a955c=_0x474884[_0x7e91('0x51')]['id'];return db[_0x7e91('0x29')][_0x7e91('0x45')]({'where':{'id':_0x3a955c}})[_0x7e91('0x3e')](handleEntityNotFound(_0x949982,null))[_0x7e91('0x3e')](function(_0x2ee3d2){if(_0x2ee3d2){var _0x29c5e9=['Voice',_0x7e91('0x7b'),_0x7e91('0x7c'),_0x7e91('0x7d'),_0x7e91('0x7e'),_0x7e91('0x7f'),'Whatsapp'];return db[_0x7e91('0x54')]['transaction'](function(_0x39a5b5){var _0x487abf=_[_0x7e91('0x28')](_0x29c5e9,function(_0x8048a9){var _0x4298ed={'attributes':['id',_0x7e91('0x26')]};if(_0x8048a9===_0x7e91('0x80')){_0x4298ed[_0x7e91('0x81')]={'attributes':[_0x7e91('0x82')]};}return _0x2ee3d2[_0x7e91('0x48')+_0x8048a9+'Queues'](_0x4298ed)['then'](function(_0x1b578b){var _0x3f4607=_[_0x7e91('0x28')](_0x1b578b,function(_0xa45e75){var _0x4e810c=_[_0x7e91('0x28')](_0x3cb763,function(_0xe2d30e){var _0x20edcf={'where':{'UserId':_0xe2d30e,[_0x8048a9+'QueueId']:_0xa45e75['id']},'transaction':_0x39a5b5};if(_0x8048a9===_0x7e91('0x80')){_0x20edcf[_0x7e91('0x83')]={'penalty':_0xa45e75[_0x7e91('0x84')]['penalty']};}return db['User'+_0x8048a9+_0x7e91('0x73')]['findOrCreate'](_0x20edcf)[_0x7e91('0x3e')](function(){socket[_0x7e91('0x85')](_0x7e91('0x47')+_0x8048a9+_0x7e91('0x86'),{'UserId':_0xe2d30e,[_0x8048a9+'QueueId']:_0xa45e75['id']});if(_0x8048a9!=='Voice'){return;}return db[_0x7e91('0x87')][_0x7e91('0x42')]({'where':{'id':_0x3cb763,'online':0x1},'attributes':['id',_0x7e91('0x26'),_0x7e91('0x88'),_0x7e91('0x89'),_0x7e91('0x8a')],'raw':!![]})['then'](function(_0x94669b){var _0x2375c6=_[_0x7e91('0x28')](_0x94669b,function(_0x49377a){return db['UserVoiceQueueRt'][_0x7e91('0x8b')]({'membername':_0x49377a['name'],'UserId':_0x49377a['id'],'queue_name':_0xa45e75[_0x7e91('0x26')],'VoiceQueueId':_0xa45e75['id'],'interface':_['isNil'](_0x49377a['interface'])?util[_0x7e91('0x8c')](_0x7e91('0x8d'),_0x49377a[_0x7e91('0x26')]):_0x49377a[_0x7e91('0x8a')],'paused':_0x49377a[_0x7e91('0x89')]||![],'penalty':_0xa45e75['TeamVoiceQueue'][_0x7e91('0x82')]},{'transaction':_0x39a5b5});});return Promise[_0x7e91('0x8e')](_0x2375c6);});});});return Promise['all'](_0x4e810c);});return Promise[_0x7e91('0x8e')](_0x3f4607);})['then'](function(){return db[_0x7e91('0x8f')]['findOne']({'where':{'teamId':_0x3a955c}})[_0x7e91('0x3e')](function(_0x246474){if(_0x246474){var _0x413f00=_[_0x7e91('0x28')](_0x3cb763,function(_0x1ea51d){db[_0x7e91('0x69')][_0x7e91('0x8b')]({'UserId':_0x1ea51d,'VoicePrefixId':_0x246474[_0x7e91('0x90')]});});return Promise[_0x7e91('0x8e')](_0x413f00);}});});});return Promise[_0x7e91('0x8e')](_0x487abf)[_0x7e91('0x3e')](function(){return _0x2ee3d2[_0x7e91('0x91')](_0x3cb763,{'transaction':_0x39a5b5})[_0x7e91('0x92')](function(_0x2e80a8){return _0x2e80a8;});});});}})['then'](respondWithResult(_0x949982,null))['catch'](handleError(_0x949982,null));};exports[_0x7e91('0x93')]=function(_0x5c02bb,_0x5efca9){var _0x22228e=_['isArray'](_0x5c02bb['query'][_0x7e91('0x78')])?_0x5c02bb[_0x7e91('0x2f')]['ids']:[_0x5c02bb['query'][_0x7e91('0x78')]];var _0x518c3a=_0x5c02bb[_0x7e91('0x51')]['id'];return db['Team'][_0x7e91('0x45')]({'where':{'id':_0x518c3a}})['then'](handleEntityNotFound(_0x5efca9,null))[_0x7e91('0x3e')](function(_0x27dd23){if(_0x27dd23){var _0x3c8cf0=['Voice',_0x7e91('0x7b'),_0x7e91('0x7c'),'Sms','Fax',_0x7e91('0x7f'),_0x7e91('0x94')];return db[_0x7e91('0x54')]['transaction'](function(_0x4fe81d){var _0x541e10=_[_0x7e91('0x28')](_0x3c8cf0,function(_0x326697){var _0x771269={'attributes':['id','name']};return _0x27dd23[_0x7e91('0x48')+_0x326697+_0x7e91('0x77')](_0x771269)['then'](function(_0x16aac8){var _0x595ffb=_[_0x7e91('0x28')](_0x16aac8,function(_0x1bd5a8){return _0x1bd5a8[_0x7e91('0x93')](_0x22228e,{'transaction':_0x4fe81d})[_0x7e91('0x3e')](function(){var _0x4c6707=_['map'](_0x22228e,function(_0x42d359){socket[_0x7e91('0x85')]('user'+_0x326697+_0x7e91('0x95'),{'UserId':Number(_0x42d359),[_0x326697+_0x7e91('0x96')]:_0x1bd5a8['id']});if(_0x326697!==_0x7e91('0x80')){return;}return db[_0x7e91('0x97')][_0x7e91('0x5a')]({'where':{'VoiceQueueId':_0x1bd5a8['id'],'UserId':_0x42d359},'transaction':_0x4fe81d});});return Promise['all'](_0x4c6707);});});return Promise[_0x7e91('0x8e')](_0x595ffb);});});return Promise[_0x7e91('0x8e')](_0x541e10)['then'](function(){return _0x27dd23[_0x7e91('0x93')](_0x22228e,{'transaction':_0x4fe81d});})[_0x7e91('0x3e')](function(){return db[_0x7e91('0x8f')][_0x7e91('0x6d')]({'where':{'teamId':_0x518c3a}})['then'](function(_0x303728){if(_0x303728){var _0xb96fe4=_['map'](_0x22228e,function(_0x4ae16b){db['UserVoicePrefix']['destroy']({'where':{'UserId':_0x4ae16b,'VoicePrefixId':_0x303728[_0x7e91('0x90')]}});});return Promise[_0x7e91('0x8e')](_0xb96fe4);}});});});}})[_0x7e91('0x3e')](respondWithStatusCode(_0x5efca9,null))[_0x7e91('0x44')](handleError(_0x5efca9,null));};exports['getAgents']=function(_0xfd65e9,_0x1dfe15,_0x372455){var _0x46f2aa={};var _0xeb24d3={};var _0x43e855;var _0x497dbe;return db[_0x7e91('0x29')][_0x7e91('0x6d')]({'where':{'id':_0xfd65e9['params']['id']}})[_0x7e91('0x3e')](handleEntityNotFound(_0x1dfe15,null))[_0x7e91('0x3e')](function(_0x4ad3cb){if(_0x4ad3cb){_0x43e855=_0x4ad3cb;_0xeb24d3[_0x7e91('0x2d')]=_[_0x7e91('0x2e')](db[_0x7e91('0x87')][_0x7e91('0x2a')]);_0xeb24d3[_0x7e91('0x2f')]=_['keys'](_0xfd65e9[_0x7e91('0x2f')]);_0xeb24d3[_0x7e91('0x30')]=_[_0x7e91('0x32')](_0xeb24d3['model'],_0xeb24d3[_0x7e91('0x2f')]);_0x46f2aa[_0x7e91('0x31')]=_['intersection'](_0xeb24d3[_0x7e91('0x2d')],qs[_0x7e91('0x33')](_0xfd65e9['query']['fields']));_0x46f2aa[_0x7e91('0x31')]=_0x46f2aa[_0x7e91('0x31')][_0x7e91('0x34')]?_0x46f2aa[_0x7e91('0x31')]:_0xeb24d3[_0x7e91('0x2d')];_0x46f2aa[_0x7e91('0x38')]=qs['sort'](_0xfd65e9[_0x7e91('0x2f')]['sort']);_0x46f2aa['where']=qs['filters'](_[_0x7e91('0x3a')](_0xfd65e9['query'],_0xeb24d3[_0x7e91('0x30')]));if(_0xfd65e9['query'][_0x7e91('0x3b')]){_0x46f2aa[_0x7e91('0x3c')]=_['merge'](_0x46f2aa[_0x7e91('0x3c')],{'$or':_[_0x7e91('0x28')](_0x46f2aa['attributes'],function(_0x5bff19){var _0x3a59ca={};_0x3a59ca[_0x5bff19]={'$like':'%'+_0xfd65e9[_0x7e91('0x2f')][_0x7e91('0x3b')]+'%'};return _0x3a59ca;})});}_0x46f2aa=_['merge']({},_0x46f2aa,_0xfd65e9[_0x7e91('0x98')]);return _0x43e855[_0x7e91('0x99')](_0x46f2aa);}})[_0x7e91('0x3e')](function(_0xacb007){if(_0xacb007){_0x497dbe=_0xacb007[_0x7e91('0x34')];if(!_0xfd65e9[_0x7e91('0x2f')][_0x7e91('0x35')](_0x7e91('0x36'))){_0x46f2aa['limit']=qs[_0x7e91('0x37')](_0xfd65e9['query'][_0x7e91('0x37')]);_0x46f2aa[_0x7e91('0x20')]=qs[_0x7e91('0x20')](_0xfd65e9[_0x7e91('0x2f')]['offset']);}return _0x43e855[_0x7e91('0x99')](_0x46f2aa);}})['then'](function(_0x55a9c9){if(_0x55a9c9){return _0x55a9c9?{'count':_0x497dbe,'rows':_0x55a9c9}:null;}})[_0x7e91('0x3e')](respondWithResult(_0x1dfe15,null))[_0x7e91('0x44')](handleError(_0x1dfe15,null));};