b85e45907a0522887f7c2589c8b3ee9758dda151
[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 _0xd64e=['transaction','SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20','Sequelize','SELECT','UserId','QueryTypes','VoiceQueueId','UserVoiceQueue','destroy','MailQueueId','UserMailQueue','SELECT\x20SmsQueueId\x20FROM\x20team_has_sms_queues\x20WHERE\x20TeamId\x20=\x20','SmsQueueId','UserSmsQueue','ChatQueueId','SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20','FaxQueueId','UserFaxQueue','SELECT\x20OpenchannelQueueId\x20FROM\x20team_has_openchannel_queues\x20WHERE\x20TeamId\x20=\x20','OpenchannelQueueId','WhatsappQueueId','UserWhatsappQueue','TeamVoicePrefix','VoicePrefixId','Teams','getQueues','findOne','isValidChannel','ValidationError','Unknown\x20channel','capitalize','channel','toLowerCase','order','Queues','add','ids','removeQueues','remove','addAgents','Fax','Openchannel','Whatsapp','Voice','TeamVoiceQueue','penalty','User','Queue','findOrCreate','emit','Queue:save','QueueId','online','voicePause','interface','UserVoiceQueueRt','upsert','isNil','format','all','spread','Chat','Mail','Sms','removeAgents','getAgents','eml-format','request-promise','moment','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./team.socket','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','error','stack','name','send','index','Team','type','key','model','map','filters','intersection','query','attributes','fields','length','hasOwnProperty','nolimit','sort','pick','filter','where','merge','options','include','findAll','rows','show','params','keys','rawAttributes','includeAll','find','catch','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','sequelize'];(function(_0x121b29,_0x5bd9c3){var _0x3609a7=function(_0x240dbd){while(--_0x240dbd){_0x121b29['push'](_0x121b29['shift']());}};_0x3609a7(++_0x5bd9c3);}(_0xd64e,0xda));var _0xed64=function(_0x34b49a,_0x22e35f){_0x34b49a=_0x34b49a-0x0;var _0x328ecc=_0xd64e[_0x34b49a];return _0x328ecc;};'use strict';var emlformat=require(_0xed64('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xed64('0x1'));var moment=require(_0xed64('0x2'));var BPromise=require('bluebird');var Mustache=require(_0xed64('0x3'));var util=require(_0xed64('0x4'));var path=require('path');var sox=require(_0xed64('0x5'));var csv=require(_0xed64('0x6'));var ejs=require(_0xed64('0x7'));var fs=require('fs');var fs_extra=require(_0xed64('0x8'));var _=require(_0xed64('0x9'));var squel=require(_0xed64('0xa'));var crypto=require(_0xed64('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xed64('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xed64('0xd'));var Redis=require('ioredis');var authService=require(_0xed64('0xe'));var qs=require(_0xed64('0xf'));var as=require(_0xed64('0x10'));var hardwareService=require(_0xed64('0x11'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0xed64('0x12'));var licenseUtil=require(_0xed64('0x13'));var db=require(_0xed64('0x14'))['db'];config[_0xed64('0x15')]=_[_0xed64('0x16')](config[_0xed64('0x15')],{'host':'localhost','port':0x18eb});var socket=require(_0xed64('0x17'))(new Redis(config[_0xed64('0x15')]));require(_0xed64('0x18'))['register'](socket);function respondWithStatusCode(_0x3585ab,_0x3e921b){_0x3e921b=_0x3e921b||0xcc;return function(_0x16c685){if(_0x16c685){return _0x3585ab[_0xed64('0x19')](_0x3e921b);}return _0x3585ab[_0xed64('0x1a')](_0x3e921b)[_0xed64('0x1b')]();};}function respondWithResult(_0x437a49,_0x4c825a){_0x4c825a=_0x4c825a||0xc8;return function(_0x53606f){if(_0x53606f){return _0x437a49[_0xed64('0x1a')](_0x4c825a)[_0xed64('0x1c')](_0x53606f);}};}function respondWithFilteredResult(_0x5d3722,_0x48b8f5){return function(_0x3db75f){if(_0x3db75f){var _0x32f7f3=typeof _0x48b8f5[_0xed64('0x1d')]===_0xed64('0x1e')&&typeof _0x48b8f5['limit']===_0xed64('0x1e');var _0x2c25eb=_0x3db75f[_0xed64('0x1f')];var _0x78ca07=_0x32f7f3?0x0:_0x48b8f5[_0xed64('0x1d')];var _0x78f89d=_0x32f7f3?_0x3db75f['count']:_0x48b8f5[_0xed64('0x1d')]+_0x48b8f5[_0xed64('0x20')];var _0x511871;if(_0x78f89d>=_0x2c25eb){_0x78f89d=_0x2c25eb;_0x511871=0xc8;}else{_0x511871=0xce;}_0x5d3722['status'](_0x511871);return _0x5d3722[_0xed64('0x21')](_0xed64('0x22'),_0x78ca07+'-'+_0x78f89d+'/'+_0x2c25eb)[_0xed64('0x1c')](_0x3db75f);}return null;};}function patchUpdates(_0x16e633){return function(_0x52f0fa){try{jsonpatch[_0xed64('0x23')](_0x52f0fa,_0x16e633,!![]);}catch(_0x25edff){return BPromise[_0xed64('0x24')](_0x25edff);}return _0x52f0fa[_0xed64('0x25')]();};}function saveUpdates(_0x54e722,_0x52ab8d){return function(_0x1ae2bb){if(_0x1ae2bb){return _0x1ae2bb[_0xed64('0x26')](_0x54e722)[_0xed64('0x27')](function(_0x57b53a){return _0x57b53a;});}return null;};}function handleEntityNotFound(_0x5c71d4,_0x521933){return function(_0x39cc7d){if(!_0x39cc7d){_0x5c71d4[_0xed64('0x19')](0x194);}return _0x39cc7d;};}function handleError(_0x20cd24,_0x1718de){_0x1718de=_0x1718de||0x1f4;return function(_0x3f47bb){logger[_0xed64('0x28')](_0x3f47bb[_0xed64('0x29')]);if(_0x3f47bb['name']){delete _0x3f47bb[_0xed64('0x2a')];}_0x20cd24[_0xed64('0x1a')](_0x1718de)[_0xed64('0x2b')](_0x3f47bb);};}exports[_0xed64('0x2c')]=function(_0x50abaf,_0x82364){var _0x247c8d={},_0x1a238c={},_0x1bc7e5={'count':0x0,'rows':[]};var _0x378ce3=_['map'](db[_0xed64('0x2d')]['rawAttributes'],function(_0x2c9626){return{'name':_0x2c9626['fieldName'],'type':_0x2c9626[_0xed64('0x2e')][_0xed64('0x2f')]};});_0x1a238c[_0xed64('0x30')]=_[_0xed64('0x31')](_0x378ce3,_0xed64('0x2a'));_0x1a238c['query']=_['keys'](_0x50abaf['query']);_0x1a238c[_0xed64('0x32')]=_[_0xed64('0x33')](_0x1a238c[_0xed64('0x30')],_0x1a238c[_0xed64('0x34')]);_0x247c8d[_0xed64('0x35')]=_[_0xed64('0x33')](_0x1a238c['model'],qs['fields'](_0x50abaf[_0xed64('0x34')][_0xed64('0x36')]));_0x247c8d[_0xed64('0x35')]=_0x247c8d[_0xed64('0x35')][_0xed64('0x37')]?_0x247c8d[_0xed64('0x35')]:_0x1a238c['model'];if(!_0x50abaf[_0xed64('0x34')][_0xed64('0x38')](_0xed64('0x39'))){_0x247c8d[_0xed64('0x20')]=qs['limit'](_0x50abaf[_0xed64('0x34')]['limit']);_0x247c8d[_0xed64('0x1d')]=qs[_0xed64('0x1d')](_0x50abaf[_0xed64('0x34')][_0xed64('0x1d')]);}_0x247c8d['order']=qs[_0xed64('0x3a')](_0x50abaf['query'][_0xed64('0x3a')]);_0x247c8d['where']=qs[_0xed64('0x32')](_[_0xed64('0x3b')](_0x50abaf[_0xed64('0x34')],_0x1a238c[_0xed64('0x32')]),_0x378ce3);if(_0x50abaf[_0xed64('0x34')][_0xed64('0x3c')]){_0x247c8d[_0xed64('0x3d')]=_[_0xed64('0x3e')](_0x247c8d[_0xed64('0x3d')],{'$or':_[_0xed64('0x31')](_0x378ce3,function(_0x56a28e){if(_0x56a28e[_0xed64('0x2e')]!=='VIRTUAL'){var _0x52ca9e={};_0x52ca9e[_0x56a28e[_0xed64('0x2a')]]={'$like':'%'+_0x50abaf['query'][_0xed64('0x3c')]+'%'};return _0x52ca9e;}})});}_0x247c8d=_[_0xed64('0x3e')]({},_0x247c8d,_0x50abaf[_0xed64('0x3f')]);var _0x2bd271={'where':_0x247c8d[_0xed64('0x3d')]};return db[_0xed64('0x2d')][_0xed64('0x1f')](_0x2bd271)[_0xed64('0x27')](function(_0x480a49){_0x1bc7e5[_0xed64('0x1f')]=_0x480a49;if(_0x50abaf[_0xed64('0x34')]['includeAll']){_0x247c8d[_0xed64('0x40')]=[{'all':!![]}];}return db['Team'][_0xed64('0x41')](_0x247c8d);})[_0xed64('0x27')](function(_0x48c9ca){_0x1bc7e5[_0xed64('0x42')]=_0x48c9ca;return _0x1bc7e5;})['then'](respondWithFilteredResult(_0x82364,_0x247c8d))['catch'](handleError(_0x82364,null));};exports[_0xed64('0x43')]=function(_0x2f3dc9,_0x32554a){var _0x46229a={'raw':![],'where':{'id':_0x2f3dc9[_0xed64('0x44')]['id']}},_0x3b1c5d={};_0x3b1c5d[_0xed64('0x30')]=_[_0xed64('0x45')](db[_0xed64('0x2d')][_0xed64('0x46')]);_0x3b1c5d[_0xed64('0x34')]=_[_0xed64('0x45')](_0x2f3dc9[_0xed64('0x34')]);_0x3b1c5d[_0xed64('0x32')]=_['intersection'](_0x3b1c5d[_0xed64('0x30')],_0x3b1c5d[_0xed64('0x34')]);_0x46229a[_0xed64('0x35')]=_[_0xed64('0x33')](_0x3b1c5d['model'],qs[_0xed64('0x36')](_0x2f3dc9['query'][_0xed64('0x36')]));_0x46229a[_0xed64('0x35')]=_0x46229a['attributes'][_0xed64('0x37')]?_0x46229a[_0xed64('0x35')]:_0x3b1c5d[_0xed64('0x30')];if(_0x2f3dc9[_0xed64('0x34')][_0xed64('0x47')]){_0x46229a[_0xed64('0x40')]=[{'all':!![]}];}_0x46229a=_['merge']({},_0x46229a,_0x2f3dc9['options']);return db[_0xed64('0x2d')][_0xed64('0x48')](_0x46229a)[_0xed64('0x27')](handleEntityNotFound(_0x32554a,null))[_0xed64('0x27')](respondWithResult(_0x32554a,null))[_0xed64('0x49')](handleError(_0x32554a,null));};exports[_0xed64('0x4a')]=function(_0x1efefc,_0x76607b){return db[_0xed64('0x2d')][_0xed64('0x4a')](_0x1efefc[_0xed64('0x4b')],{})[_0xed64('0x27')](function(_0x12e366){var _0x46d7e9=_0x1efefc[_0xed64('0x4c')][_0xed64('0x4d')]({'plain':!![]});if(!_0x46d7e9)throw new Error(_0xed64('0x4e'));if(_0x46d7e9[_0xed64('0x4f')]===_0xed64('0x4c')){var _0x3ebdc2=_0x12e366['get']({'plain':!![]});var _0xe6e123='Teams';return db[_0xed64('0x50')][_0xed64('0x48')]({'where':{'name':_0xe6e123,'userProfileId':_0x46d7e9[_0xed64('0x51')]},'raw':!![]})[_0xed64('0x27')](function(_0x3ce1c5){if(_0x3ce1c5&&_0x3ce1c5[_0xed64('0x52')]===0x0){return db[_0xed64('0x53')]['create']({'name':_0x3ebdc2[_0xed64('0x2a')],'resourceId':_0x3ebdc2['id'],'type':_0x3ce1c5[_0xed64('0x2a')],'sectionId':_0x3ce1c5['id']},{})[_0xed64('0x27')](function(){return _0x12e366;});}else{return _0x12e366;}})[_0xed64('0x49')](function(_0x15705f){logger[_0xed64('0x28')](_0xed64('0x54'),_0x15705f);throw _0x15705f;});}return _0x12e366;})['then'](respondWithResult(_0x76607b,0xc9))['catch'](handleError(_0x76607b,null));};exports[_0xed64('0x26')]=function(_0x53625d,_0x20c669){if(_0x53625d[_0xed64('0x4b')]['id']){delete _0x53625d['body']['id'];}return db[_0xed64('0x2d')][_0xed64('0x48')]({'where':{'id':_0x53625d[_0xed64('0x44')]['id']}})[_0xed64('0x27')](handleEntityNotFound(_0x20c669,null))['then'](saveUpdates(_0x53625d[_0xed64('0x4b')],null))[_0xed64('0x27')](respondWithResult(_0x20c669,null))[_0xed64('0x49')](handleError(_0x20c669,null));};exports['destroy']=function(_0x542f80,_0x21f558){var _0x1d1e29=_0x542f80['params']['id'];var _0x1f858a=[];return db[_0xed64('0x55')][_0xed64('0x56')](function(_0x2a3fb0){var _0xb4a88b=_0xed64('0x57')+_0x1d1e29;return db[_0xed64('0x55')][_0xed64('0x34')](_0xb4a88b,{'type':db[_0xed64('0x58')]['QueryTypes'][_0xed64('0x59')],'raw':!![],'transaction':_0x2a3fb0})['then'](function(_0x388f9e){_0x1f858a=_['map'](_0x388f9e,function(_0x31d428){return Number(_0x31d428[_0xed64('0x5a')]);});})[_0xed64('0x27')](function(){var _0x34ddc6='SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20'+_0x1d1e29;return db[_0xed64('0x55')]['query'](_0x34ddc6,{'type':db[_0xed64('0x58')][_0xed64('0x5b')][_0xed64('0x59')],'raw':!![],'transaction':_0x2a3fb0});})[_0xed64('0x27')](function(_0x7e8c76){var _0x4672a7=_[_0xed64('0x31')](_0x7e8c76,function(_0x4a6b48){return Number(_0x4a6b48[_0xed64('0x5c')]);});return db[_0xed64('0x5d')][_0xed64('0x5e')]({'where':{'UserId':{'$in':_0x1f858a},'VoiceQueueId':{'$in':_0x4672a7}},'transaction':_0x2a3fb0});})[_0xed64('0x27')](function(){var _0xc7b025='SELECT\x20MailQueueId\x20FROM\x20team_has_mail_queues\x20WHERE\x20TeamId\x20=\x20'+_0x1d1e29;return db[_0xed64('0x55')][_0xed64('0x34')](_0xc7b025,{'type':db[_0xed64('0x58')][_0xed64('0x5b')][_0xed64('0x59')],'raw':!![],'transaction':_0x2a3fb0});})[_0xed64('0x27')](function(_0x2c79d7){var _0x1a465e=_[_0xed64('0x31')](_0x2c79d7,function(_0x21dae5){return Number(_0x21dae5[_0xed64('0x5f')]);});return db[_0xed64('0x60')][_0xed64('0x5e')]({'where':{'UserId':{'$in':_0x1f858a},'MailQueueId':{'$in':_0x1a465e}},'transaction':_0x2a3fb0});})[_0xed64('0x27')](function(){var _0x1b198a=_0xed64('0x61')+_0x1d1e29;return db[_0xed64('0x55')][_0xed64('0x34')](_0x1b198a,{'type':db[_0xed64('0x58')][_0xed64('0x5b')][_0xed64('0x59')],'raw':!![],'transaction':_0x2a3fb0});})[_0xed64('0x27')](function(_0x1e47a7){var _0x15fd29=_['map'](_0x1e47a7,function(_0x225972){return Number(_0x225972[_0xed64('0x62')]);});return db[_0xed64('0x63')][_0xed64('0x5e')]({'where':{'UserId':{'$in':_0x1f858a},'SmsQueueId':{'$in':_0x15fd29}},'transaction':_0x2a3fb0});})[_0xed64('0x27')](function(){var _0x22a4bc='SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20'+_0x1d1e29;return db['sequelize'][_0xed64('0x34')](_0x22a4bc,{'type':db[_0xed64('0x58')][_0xed64('0x5b')]['SELECT'],'raw':!![],'transaction':_0x2a3fb0});})[_0xed64('0x27')](function(_0x339b57){var _0x18275b=_[_0xed64('0x31')](_0x339b57,function(_0x310408){return Number(_0x310408[_0xed64('0x64')]);});return db['UserChatQueue']['destroy']({'where':{'UserId':{'$in':_0x1f858a},'ChatQueueId':{'$in':_0x18275b}},'transaction':_0x2a3fb0});})['then'](function(){var _0x5466e6=_0xed64('0x65')+_0x1d1e29;return db[_0xed64('0x55')][_0xed64('0x34')](_0x5466e6,{'type':db[_0xed64('0x58')][_0xed64('0x5b')][_0xed64('0x59')],'raw':!![],'transaction':_0x2a3fb0});})[_0xed64('0x27')](function(_0x4e823f){var _0x29a8ad=_[_0xed64('0x31')](_0x4e823f,function(_0x2cc842){return Number(_0x2cc842[_0xed64('0x66')]);});return db[_0xed64('0x67')][_0xed64('0x5e')]({'where':{'UserId':{'$in':_0x1f858a},'FaxQueueId':{'$in':_0x29a8ad}},'transaction':_0x2a3fb0});})[_0xed64('0x27')](function(){var _0x5a8f39=_0xed64('0x68')+_0x1d1e29;return db[_0xed64('0x55')][_0xed64('0x34')](_0x5a8f39,{'type':db[_0xed64('0x58')][_0xed64('0x5b')][_0xed64('0x59')],'raw':!![],'transaction':_0x2a3fb0});})[_0xed64('0x27')](function(_0x2e9bba){var _0x3137f1=_[_0xed64('0x31')](_0x2e9bba,function(_0x3df6cf){return Number(_0x3df6cf[_0xed64('0x69')]);});return db['UserOpenchannelQueue'][_0xed64('0x5e')]({'where':{'UserId':{'$in':_0x1f858a},'OpenchannelQueueId':{'$in':_0x3137f1}},'transaction':_0x2a3fb0});})[_0xed64('0x27')](function(){var _0x3f078c='SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20'+_0x1d1e29;return db[_0xed64('0x55')][_0xed64('0x34')](_0x3f078c,{'type':db['Sequelize']['QueryTypes'][_0xed64('0x59')],'raw':!![],'transaction':_0x2a3fb0});})['then'](function(_0x55633d){var _0x279635=_['map'](_0x55633d,function(_0x5484b8){return Number(_0x5484b8[_0xed64('0x6a')]);});return db[_0xed64('0x6b')][_0xed64('0x5e')]({'where':{'UserId':{'$in':_0x1f858a},'WhatsappQueueId':{'$in':_0x279635}},'transaction':_0x2a3fb0});})[_0xed64('0x27')](function(){return db[_0xed64('0x6c')]['find']({'where':{'TeamId':_0x1d1e29}});})[_0xed64('0x27')](function(_0xc83ab){if(_0xc83ab===null){return;}return db['UserVoicePrefix'][_0xed64('0x5e')]({'where':{'UserId':{'$in':_0x1f858a},'VoicePrefixId':_0xc83ab[_0xed64('0x6d')]},'transaction':_0x2a3fb0});})[_0xed64('0x27')](function(){return db['Team'][_0xed64('0x5e')]({'where':{'id':_0x1d1e29},'cascade':!![],'transaction':_0x2a3fb0});})[_0xed64('0x27')](function(_0x27d0ef){if(_0x27d0ef===0x0){_0x21f558[_0xed64('0x19')](0x194);}else{return db['UserProfileResource']['destroy']({'where':{'type':_0xed64('0x6e'),'resourceId':_0x1d1e29},'cascade':!![],'transaction':_0x2a3fb0})['then'](function(){_0x21f558[_0xed64('0x1a')](0xcc)['end']();});}})[_0xed64('0x49')](function(_0x51ebf7){_0x21f558['status'](0x1f4)['send'](_0x51ebf7);});});};exports[_0xed64('0x6f')]=function(_0xc1a403,_0x2f393f,_0x25c970){return db[_0xed64('0x2d')][_0xed64('0x70')]({'where':{'id':_0xc1a403[_0xed64('0x44')]['id']}})[_0xed64('0x27')](handleEntityNotFound(_0x2f393f,null))[_0xed64('0x27')](function(_0x59a244){if(!_0xc1a403['query']['channel']||!utils[_0xed64('0x71')](_0xc1a403[_0xed64('0x34')]['channel'])){throw new db[(_0xed64('0x58'))][(_0xed64('0x72'))](_0xed64('0x73'));}var _0x5cf12c={};var _0x3f2a78={};_0x3f2a78['model']=_[_0xed64('0x45')](db[_[_0xed64('0x74')](_0xc1a403['query'][_0xed64('0x75')][_0xed64('0x76')]())+'Queue']['rawAttributes']);_0x3f2a78[_0xed64('0x34')]=_[_0xed64('0x45')](_0xc1a403[_0xed64('0x34')]);_0x3f2a78['filters']=_[_0xed64('0x33')](_0x3f2a78[_0xed64('0x30')],_0x3f2a78[_0xed64('0x34')]);_0x5cf12c['attributes']=_[_0xed64('0x33')](_0x3f2a78[_0xed64('0x30')],qs[_0xed64('0x36')](_0xc1a403[_0xed64('0x34')][_0xed64('0x36')]));_0x5cf12c['attributes']=_0x5cf12c[_0xed64('0x35')][_0xed64('0x37')]?_0x5cf12c['attributes']:_0x3f2a78[_0xed64('0x30')];_0x5cf12c[_0xed64('0x20')]=qs[_0xed64('0x20')](_0xc1a403['query'][_0xed64('0x20')]);_0x5cf12c['offset']=qs[_0xed64('0x1d')](_0xc1a403[_0xed64('0x34')][_0xed64('0x1d')]);_0x5cf12c[_0xed64('0x77')]=qs[_0xed64('0x3a')](_0xc1a403['query']['sort']);_0x5cf12c[_0xed64('0x3d')]=qs[_0xed64('0x32')](_[_0xed64('0x3b')](_0xc1a403[_0xed64('0x34')],_0x3f2a78['filters']));_0x5cf12c=_[_0xed64('0x3e')]({},_0x5cf12c,_0xc1a403['options']);return _0x59a244[_0xed64('0x4d')+_['capitalize'](_0xc1a403[_0xed64('0x34')][_0xed64('0x75')][_0xed64('0x76')]())+_0xed64('0x78')](_0x5cf12c);})[_0xed64('0x27')](respondWithResult(_0x2f393f,null))[_0xed64('0x49')](handleError(_0x2f393f,null));};exports['addQueues']=function(_0x389890,_0xbb98ec,_0x5debf1){return db[_0xed64('0x2d')]['findOne']({'where':{'id':_0x389890[_0xed64('0x44')]['id']}})[_0xed64('0x27')](function(_0x25f85d){if(_0x25f85d){if(!_0x389890[_0xed64('0x4b')][_0xed64('0x75')]||!utils['isValidChannel'](_0x389890[_0xed64('0x4b')][_0xed64('0x75')])){throw new db[(_0xed64('0x58'))][(_0xed64('0x72'))](_0xed64('0x73'));}return _0x25f85d[_0xed64('0x79')+_[_0xed64('0x74')](_0x389890[_0xed64('0x4b')][_0xed64('0x75')][_0xed64('0x76')]())+_0xed64('0x78')](_0x389890[_0xed64('0x4b')][_0xed64('0x7a')]);}return null;})[_0xed64('0x27')](handleEntityNotFound(_0xbb98ec,null))[_0xed64('0x27')](respondWithStatusCode(_0xbb98ec,null))[_0xed64('0x49')](handleError(_0xbb98ec,null));};exports[_0xed64('0x7b')]=function(_0x138521,_0x538f5a,_0x6db4c){return db[_0xed64('0x2d')][_0xed64('0x70')]({'where':{'id':_0x138521[_0xed64('0x44')]['id']}})[_0xed64('0x27')](function(_0x3a3c90){if(_0x3a3c90){if(!_0x138521['query'][_0xed64('0x75')]||!utils[_0xed64('0x71')](_0x138521[_0xed64('0x34')][_0xed64('0x75')])){throw new db[(_0xed64('0x58'))][(_0xed64('0x72'))](_0xed64('0x73'));}return _0x3a3c90[_0xed64('0x7c')+_[_0xed64('0x74')](_0x138521['query'][_0xed64('0x75')]['toLowerCase']())+'Queues'](_0x138521[_0xed64('0x34')][_0xed64('0x7a')]);}return null;})[_0xed64('0x27')](handleEntityNotFound(_0x538f5a,null))[_0xed64('0x27')](respondWithStatusCode(_0x538f5a,null))['catch'](handleError(_0x538f5a,null));};exports[_0xed64('0x7d')]=function(_0x3e04a0,_0x204d03){var _0x4e9992=_['isArray'](_0x3e04a0[_0xed64('0x4b')][_0xed64('0x7a')])?_0x3e04a0[_0xed64('0x4b')][_0xed64('0x7a')]:[_0x3e04a0[_0xed64('0x4b')][_0xed64('0x7a')]];var _0x55e10d=_0x3e04a0[_0xed64('0x44')]['id'];return db['Team']['find']({'where':{'id':_0x55e10d}})['then'](handleEntityNotFound(_0x204d03,null))[_0xed64('0x27')](function(_0x5c184f){if(_0x5c184f){var _0x5bebfe=['Voice','Chat','Mail','Sms',_0xed64('0x7e'),_0xed64('0x7f'),_0xed64('0x80')];return db[_0xed64('0x55')][_0xed64('0x56')](function(_0x59a24c){var _0x24de56=_[_0xed64('0x31')](_0x5bebfe,function(_0x12f10a){var _0x1cbace={'attributes':['id',_0xed64('0x2a')]};if(_0x12f10a===_0xed64('0x81')){_0x1cbace['through']={'attributes':['penalty']};}return _0x5c184f['get'+_0x12f10a+_0xed64('0x78')](_0x1cbace)[_0xed64('0x27')](function(_0x43cd03){var _0x9261a6=_[_0xed64('0x31')](_0x43cd03,function(_0x52d045){var _0x1f867b=_[_0xed64('0x31')](_0x4e9992,function(_0x2b60af){var _0x34235d={'where':{'UserId':_0x2b60af,[_0x12f10a+'QueueId']:_0x52d045['id']},'transaction':_0x59a24c};if(_0x12f10a===_0xed64('0x81')){_0x34235d['defaults']={'penalty':_0x52d045[_0xed64('0x82')][_0xed64('0x83')]};}return db[_0xed64('0x84')+_0x12f10a+_0xed64('0x85')][_0xed64('0x86')](_0x34235d)[_0xed64('0x27')](function(){socket[_0xed64('0x87')](_0xed64('0x4c')+_0x12f10a+_0xed64('0x88'),{'UserId':_0x2b60af,[_0x12f10a+_0xed64('0x89')]:_0x52d045['id']});if(_0x12f10a!==_0xed64('0x81')){return;}return db[_0xed64('0x84')][_0xed64('0x41')]({'where':{'id':_0x4e9992,'online':0x1},'attributes':['id','name',_0xed64('0x8a'),_0xed64('0x8b'),_0xed64('0x8c')],'raw':!![]})[_0xed64('0x27')](function(_0x563bbf){var _0x85da3e=_[_0xed64('0x31')](_0x563bbf,function(_0x50f46e){return db[_0xed64('0x8d')][_0xed64('0x8e')]({'membername':_0x50f46e['name'],'UserId':_0x50f46e['id'],'queue_name':_0x52d045[_0xed64('0x2a')],'VoiceQueueId':_0x52d045['id'],'interface':_[_0xed64('0x8f')](_0x50f46e[_0xed64('0x8c')])?util[_0xed64('0x90')]('SIP/%s',_0x50f46e[_0xed64('0x2a')]):_0x50f46e[_0xed64('0x8c')],'paused':_0x50f46e['voicePause']||![],'penalty':_0x52d045[_0xed64('0x82')][_0xed64('0x83')]},{'transaction':_0x59a24c});});return Promise[_0xed64('0x91')](_0x85da3e);});});});return Promise['all'](_0x1f867b);});return Promise['all'](_0x9261a6);})['then'](function(){return db[_0xed64('0x6c')][_0xed64('0x70')]({'where':{'teamId':_0x55e10d}})['then'](function(_0xef71df){if(_0xef71df){var _0x237515=_[_0xed64('0x31')](_0x4e9992,function(_0x2fa187){db['UserVoicePrefix']['upsert']({'UserId':_0x2fa187,'VoicePrefixId':_0xef71df[_0xed64('0x6d')]});});return Promise[_0xed64('0x91')](_0x237515);}});});});return Promise[_0xed64('0x91')](_0x24de56)['then'](function(){return _0x5c184f[_0xed64('0x7d')](_0x4e9992,{'transaction':_0x59a24c})[_0xed64('0x92')](function(_0x55c659){return _0x55c659;});});});}})[_0xed64('0x27')](respondWithResult(_0x204d03,null))['catch'](handleError(_0x204d03,null));};exports['removeAgents']=function(_0x2ee97,_0x25b89e){var _0x4013a2=_['isArray'](_0x2ee97[_0xed64('0x34')][_0xed64('0x7a')])?_0x2ee97[_0xed64('0x34')][_0xed64('0x7a')]:[_0x2ee97[_0xed64('0x34')][_0xed64('0x7a')]];var _0x4d1a43=_0x2ee97['params']['id'];return db[_0xed64('0x2d')][_0xed64('0x48')]({'where':{'id':_0x4d1a43}})[_0xed64('0x27')](handleEntityNotFound(_0x25b89e,null))[_0xed64('0x27')](function(_0x334215){if(_0x334215){var _0x11a8d0=['Voice',_0xed64('0x93'),_0xed64('0x94'),_0xed64('0x95'),_0xed64('0x7e'),'Openchannel',_0xed64('0x80')];return db['sequelize'][_0xed64('0x56')](function(_0x4f033e){var _0x299a25=_[_0xed64('0x31')](_0x11a8d0,function(_0x52dd66){var _0x20c7e0={'attributes':['id',_0xed64('0x2a')]};return _0x334215['get'+_0x52dd66+'Queues'](_0x20c7e0)[_0xed64('0x27')](function(_0x1fe45f){var _0x1f0e3e=_[_0xed64('0x31')](_0x1fe45f,function(_0x2559bc){return _0x2559bc[_0xed64('0x96')](_0x4013a2,{'transaction':_0x4f033e})['then'](function(){var _0x1cfa26=_[_0xed64('0x31')](_0x4013a2,function(_0x1b3b94){socket[_0xed64('0x87')](_0xed64('0x4c')+_0x52dd66+'Queue:remove',{'UserId':Number(_0x1b3b94),[_0x52dd66+'QueueId']:_0x2559bc['id']});if(_0x52dd66!==_0xed64('0x81')){return;}return db[_0xed64('0x8d')][_0xed64('0x5e')]({'where':{'VoiceQueueId':_0x2559bc['id'],'UserId':_0x1b3b94},'transaction':_0x4f033e});});return Promise[_0xed64('0x91')](_0x1cfa26);});});return Promise[_0xed64('0x91')](_0x1f0e3e);});});return Promise[_0xed64('0x91')](_0x299a25)[_0xed64('0x27')](function(){return _0x334215[_0xed64('0x96')](_0x4013a2,{'transaction':_0x4f033e});})[_0xed64('0x27')](function(){return db[_0xed64('0x6c')]['findOne']({'where':{'teamId':_0x4d1a43}})[_0xed64('0x27')](function(_0xe332a5){if(_0xe332a5){var _0x3015b4=_[_0xed64('0x31')](_0x4013a2,function(_0x2160c0){db['UserVoicePrefix'][_0xed64('0x5e')]({'where':{'UserId':_0x2160c0,'VoicePrefixId':_0xe332a5[_0xed64('0x6d')]}});});return Promise[_0xed64('0x91')](_0x3015b4);}});});});}})[_0xed64('0x27')](respondWithStatusCode(_0x25b89e,null))[_0xed64('0x49')](handleError(_0x25b89e,null));};exports[_0xed64('0x97')]=function(_0x3a5b64,_0x1de7fc,_0x435d17){var _0x2b0a2b={};var _0x366178={};var _0x59ca9e;var _0x4b44f0;return db[_0xed64('0x2d')]['findOne']({'where':{'id':_0x3a5b64['params']['id']}})['then'](handleEntityNotFound(_0x1de7fc,null))[_0xed64('0x27')](function(_0x33a745){if(_0x33a745){_0x59ca9e=_0x33a745;_0x366178[_0xed64('0x30')]=_[_0xed64('0x45')](db[_0xed64('0x84')]['rawAttributes']);_0x366178[_0xed64('0x34')]=_['keys'](_0x3a5b64[_0xed64('0x34')]);_0x366178[_0xed64('0x32')]=_[_0xed64('0x33')](_0x366178[_0xed64('0x30')],_0x366178['query']);_0x2b0a2b['attributes']=_[_0xed64('0x33')](_0x366178[_0xed64('0x30')],qs[_0xed64('0x36')](_0x3a5b64[_0xed64('0x34')][_0xed64('0x36')]));_0x2b0a2b['attributes']=_0x2b0a2b[_0xed64('0x35')][_0xed64('0x37')]?_0x2b0a2b['attributes']:_0x366178[_0xed64('0x30')];_0x2b0a2b['order']=qs[_0xed64('0x3a')](_0x3a5b64[_0xed64('0x34')][_0xed64('0x3a')]);_0x2b0a2b['where']=qs[_0xed64('0x32')](_[_0xed64('0x3b')](_0x3a5b64['query'],_0x366178[_0xed64('0x32')]));if(_0x3a5b64[_0xed64('0x34')][_0xed64('0x3c')]){_0x2b0a2b[_0xed64('0x3d')]=_[_0xed64('0x3e')](_0x2b0a2b[_0xed64('0x3d')],{'$or':_['map'](_0x2b0a2b['attributes'],function(_0x27ea91){var _0x43af0b={};_0x43af0b[_0x27ea91]={'$like':'%'+_0x3a5b64[_0xed64('0x34')][_0xed64('0x3c')]+'%'};return _0x43af0b;})});}_0x2b0a2b=_['merge']({},_0x2b0a2b,_0x3a5b64[_0xed64('0x3f')]);return _0x59ca9e[_0xed64('0x97')](_0x2b0a2b);}})[_0xed64('0x27')](function(_0x36ff0e){if(_0x36ff0e){_0x4b44f0=_0x36ff0e[_0xed64('0x37')];if(!_0x3a5b64[_0xed64('0x34')][_0xed64('0x38')]('nolimit')){_0x2b0a2b['limit']=qs[_0xed64('0x20')](_0x3a5b64[_0xed64('0x34')][_0xed64('0x20')]);_0x2b0a2b['offset']=qs['offset'](_0x3a5b64[_0xed64('0x34')][_0xed64('0x1d')]);}return _0x59ca9e[_0xed64('0x97')](_0x2b0a2b);}})[_0xed64('0x27')](function(_0x3d728e){if(_0x3d728e){return _0x3d728e?{'count':_0x4b44f0,'rows':_0x3d728e}:null;}})['then'](respondWithResult(_0x1de7fc,null))[_0xed64('0x49')](handleError(_0x1de7fc,null));};