75cb7ba954c48fa4ea3ed63626618cbceab7e887
[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 _0x87d5=['ValidationError','Unknown\x20channel','capitalize','toLowerCase','Queues','addQueues','add','ids','findOne','Voice','Chat','Sms','Fax','Openchannel','Whatsapp','through','penalty','QueueId','TeamVoiceQueue','User','Queue','findOrCreate','emit','Queue:save','voicePause','UserVoiceQueueRt','interface','SIP/%s','all','upsert','addAgents','spread','Mail','removeAgents','Queue:remove','VoicePrefixId','getAgents','rimraf','zip-dir','moment','bluebird','mustache','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','then','error','stack','name','send','index','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','Team','includeAll','include','show','find','catch','create','body','user','get','Teams','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','update','params','sequelize','transaction','SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20','Sequelize','QueryTypes','SELECT','UserId','SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20','VoiceQueueId','UserVoiceQueue','destroy','SELECT\x20MailQueueId\x20FROM\x20team_has_mail_queues\x20WHERE\x20TeamId\x20=\x20','SELECT\x20SmsQueueId\x20FROM\x20team_has_sms_queues\x20WHERE\x20TeamId\x20=\x20','SmsQueueId','UserSmsQueue','ChatQueueId','UserChatQueue','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','WhatsappQueueId','TeamVoicePrefix','UserVoicePrefix','getQueues','isValidChannel','channel'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x87d5,0xb9));var _0x587d=function(_0x321e57,_0x150b05){_0x321e57=_0x321e57-0x0;var _0x21dabc=_0x87d5[_0x321e57];return _0x21dabc;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x587d('0x0'));var zipdir=require(_0x587d('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x587d('0x2'));var BPromise=require(_0x587d('0x3'));var Mustache=require(_0x587d('0x4'));var util=require('util');var path=require('path');var sox=require(_0x587d('0x5'));var csv=require(_0x587d('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x587d('0x7'));var _=require(_0x587d('0x8'));var squel=require(_0x587d('0x9'));var crypto=require(_0x587d('0xa'));var jsforce=require(_0x587d('0xb'));var deskjs=require(_0x587d('0xc'));var toCsv=require(_0x587d('0x6'));var querystring=require('querystring');var Papa=require(_0x587d('0xd'));var Redis=require(_0x587d('0xe'));var authService=require(_0x587d('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x587d('0x10'));var logger=require('../../config/logger')('api');var utils=require(_0x587d('0x11'));var config=require(_0x587d('0x12'));var licenseUtil=require(_0x587d('0x13'));var db=require(_0x587d('0x14'))['db'];config[_0x587d('0x15')]=_[_0x587d('0x16')](config[_0x587d('0x15')],{'host':_0x587d('0x17'),'port':0x18eb});var socket=require(_0x587d('0x18'))(new Redis(config[_0x587d('0x15')]));require('./team.socket')[_0x587d('0x19')](socket);function respondWithStatusCode(_0x545acf,_0x5d7fcd){_0x5d7fcd=_0x5d7fcd||0xcc;return function(_0x748288){if(_0x748288){return _0x545acf[_0x587d('0x1a')](_0x5d7fcd);}return _0x545acf[_0x587d('0x1b')](_0x5d7fcd)['end']();};}function respondWithResult(_0x195607,_0x438388){_0x438388=_0x438388||0xc8;return function(_0x2e0568){if(_0x2e0568){return _0x195607['status'](_0x438388)[_0x587d('0x1c')](_0x2e0568);}};}function respondWithFilteredResult(_0x4ee837,_0x52a783){return function(_0x2ada3a){if(_0x2ada3a){var _0x23dd9a=typeof _0x52a783[_0x587d('0x1d')]===_0x587d('0x1e')&&typeof _0x52a783[_0x587d('0x1f')]===_0x587d('0x1e');var _0x333f36=_0x2ada3a[_0x587d('0x20')];var _0x7fa8aa=_0x23dd9a?0x0:_0x52a783['offset'];var _0x128085=_0x23dd9a?_0x2ada3a['count']:_0x52a783[_0x587d('0x1d')]+_0x52a783[_0x587d('0x1f')];var _0x499e3d;if(_0x128085>=_0x333f36){_0x128085=_0x333f36;_0x499e3d=0xc8;}else{_0x499e3d=0xce;}_0x4ee837['status'](_0x499e3d);return _0x4ee837[_0x587d('0x21')](_0x587d('0x22'),_0x7fa8aa+'-'+_0x128085+'/'+_0x333f36)[_0x587d('0x1c')](_0x2ada3a);}return null;};}function patchUpdates(_0x2edf9f){return function(_0x1f296a){try{jsonpatch[_0x587d('0x23')](_0x1f296a,_0x2edf9f,!![]);}catch(_0x59aa90){return BPromise[_0x587d('0x24')](_0x59aa90);}return _0x1f296a['save']();};}function saveUpdates(_0x433d36,_0x399909){return function(_0x97f6ea){if(_0x97f6ea){return _0x97f6ea['update'](_0x433d36)[_0x587d('0x25')](function(_0x23060a){return _0x23060a;});}return null;};}function handleEntityNotFound(_0x4b0239,_0x26c26d){return function(_0x1d2ba7){if(!_0x1d2ba7){_0x4b0239[_0x587d('0x1a')](0x194);}return _0x1d2ba7;};}function handleError(_0x4af386,_0xccaf7c){_0xccaf7c=_0xccaf7c||0x1f4;return function(_0x1476f9){logger[_0x587d('0x26')](_0x1476f9[_0x587d('0x27')]);if(_0x1476f9[_0x587d('0x28')]){delete _0x1476f9[_0x587d('0x28')];}_0x4af386[_0x587d('0x1b')](_0xccaf7c)[_0x587d('0x29')](_0x1476f9);};}exports[_0x587d('0x2a')]=function(_0x3a6bac,_0x2e409e){var _0x32ec4c={},_0x1c1aff={},_0x50cb90={'count':0x0,'rows':[]};var _0x4edd9f=_['map'](db['Team'][_0x587d('0x2b')],function(_0x3879ca){return{'name':_0x3879ca[_0x587d('0x2c')],'type':_0x3879ca[_0x587d('0x2d')][_0x587d('0x2e')]};});_0x1c1aff[_0x587d('0x2f')]=_[_0x587d('0x30')](_0x4edd9f,_0x587d('0x28'));_0x1c1aff[_0x587d('0x31')]=_[_0x587d('0x32')](_0x3a6bac[_0x587d('0x31')]);_0x1c1aff[_0x587d('0x33')]=_[_0x587d('0x34')](_0x1c1aff[_0x587d('0x2f')],_0x1c1aff['query']);_0x32ec4c['attributes']=_[_0x587d('0x34')](_0x1c1aff['model'],qs[_0x587d('0x35')](_0x3a6bac[_0x587d('0x31')][_0x587d('0x35')]));_0x32ec4c[_0x587d('0x36')]=_0x32ec4c[_0x587d('0x36')][_0x587d('0x37')]?_0x32ec4c[_0x587d('0x36')]:_0x1c1aff[_0x587d('0x2f')];if(!_0x3a6bac[_0x587d('0x31')][_0x587d('0x38')](_0x587d('0x39'))){_0x32ec4c[_0x587d('0x1f')]=qs[_0x587d('0x1f')](_0x3a6bac[_0x587d('0x31')][_0x587d('0x1f')]);_0x32ec4c[_0x587d('0x1d')]=qs[_0x587d('0x1d')](_0x3a6bac[_0x587d('0x31')][_0x587d('0x1d')]);}_0x32ec4c[_0x587d('0x3a')]=qs[_0x587d('0x3b')](_0x3a6bac[_0x587d('0x31')]['sort']);_0x32ec4c[_0x587d('0x3c')]=qs['filters'](_[_0x587d('0x3d')](_0x3a6bac[_0x587d('0x31')],_0x1c1aff['filters']),_0x4edd9f);if(_0x3a6bac[_0x587d('0x31')][_0x587d('0x3e')]){_0x32ec4c[_0x587d('0x3c')]=_[_0x587d('0x3f')](_0x32ec4c['where'],{'$or':_[_0x587d('0x30')](_0x4edd9f,function(_0x4c6ca6){if(_0x4c6ca6[_0x587d('0x2d')]!==_0x587d('0x40')){var _0x13322e={};_0x13322e[_0x4c6ca6['name']]={'$like':'%'+_0x3a6bac[_0x587d('0x31')][_0x587d('0x3e')]+'%'};return _0x13322e;}})});}_0x32ec4c=_[_0x587d('0x3f')]({},_0x32ec4c,_0x3a6bac[_0x587d('0x41')]);var _0x1c1f42={'where':_0x32ec4c['where']};return db[_0x587d('0x42')]['count'](_0x1c1f42)[_0x587d('0x25')](function(_0x2c950b){_0x50cb90[_0x587d('0x20')]=_0x2c950b;if(_0x3a6bac[_0x587d('0x31')][_0x587d('0x43')]){_0x32ec4c[_0x587d('0x44')]=[{'all':!![]}];}return db[_0x587d('0x42')]['findAll'](_0x32ec4c);})[_0x587d('0x25')](function(_0x187a31){_0x50cb90['rows']=_0x187a31;return _0x50cb90;})['then'](respondWithFilteredResult(_0x2e409e,_0x32ec4c))['catch'](handleError(_0x2e409e,null));};exports[_0x587d('0x45')]=function(_0x5df355,_0x309dd8){var _0x564149={'raw':![],'where':{'id':_0x5df355['params']['id']}},_0xedad73={};_0xedad73[_0x587d('0x2f')]=_['keys'](db[_0x587d('0x42')][_0x587d('0x2b')]);_0xedad73[_0x587d('0x31')]=_['keys'](_0x5df355[_0x587d('0x31')]);_0xedad73[_0x587d('0x33')]=_['intersection'](_0xedad73['model'],_0xedad73[_0x587d('0x31')]);_0x564149[_0x587d('0x36')]=_[_0x587d('0x34')](_0xedad73[_0x587d('0x2f')],qs['fields'](_0x5df355[_0x587d('0x31')]['fields']));_0x564149[_0x587d('0x36')]=_0x564149[_0x587d('0x36')][_0x587d('0x37')]?_0x564149[_0x587d('0x36')]:_0xedad73[_0x587d('0x2f')];if(_0x5df355[_0x587d('0x31')][_0x587d('0x43')]){_0x564149['include']=[{'all':!![]}];}_0x564149=_[_0x587d('0x3f')]({},_0x564149,_0x5df355[_0x587d('0x41')]);return db[_0x587d('0x42')][_0x587d('0x46')](_0x564149)[_0x587d('0x25')](handleEntityNotFound(_0x309dd8,null))[_0x587d('0x25')](respondWithResult(_0x309dd8,null))[_0x587d('0x47')](handleError(_0x309dd8,null));};exports[_0x587d('0x48')]=function(_0x378aa5,_0x11373c){return db['Team'][_0x587d('0x48')](_0x378aa5[_0x587d('0x49')],{})[_0x587d('0x25')](function(_0x41fecc){var _0x4ed7a6=_0x378aa5['user']['get']({'plain':!![]});if(!_0x4ed7a6)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4ed7a6['role']===_0x587d('0x4a')){var _0x1d44a2=_0x41fecc[_0x587d('0x4b')]({'plain':!![]});var _0x8b1ff9=_0x587d('0x4c');return db[_0x587d('0x4d')][_0x587d('0x46')]({'where':{'name':_0x8b1ff9,'userProfileId':_0x4ed7a6[_0x587d('0x4e')]},'raw':!![]})['then'](function(_0x4b1018){if(_0x4b1018&&_0x4b1018[_0x587d('0x4f')]===0x0){return db[_0x587d('0x50')][_0x587d('0x48')]({'name':_0x1d44a2[_0x587d('0x28')],'resourceId':_0x1d44a2['id'],'type':_0x4b1018['name'],'sectionId':_0x4b1018['id']},{})[_0x587d('0x25')](function(){return _0x41fecc;});}else{return _0x41fecc;}})['catch'](function(_0xe61abf){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xe61abf);throw _0xe61abf;});}return _0x41fecc;})[_0x587d('0x25')](respondWithResult(_0x11373c,0xc9))[_0x587d('0x47')](handleError(_0x11373c,null));};exports[_0x587d('0x51')]=function(_0xc845bc,_0x1c82db){if(_0xc845bc[_0x587d('0x49')]['id']){delete _0xc845bc['body']['id'];}return db[_0x587d('0x42')]['find']({'where':{'id':_0xc845bc[_0x587d('0x52')]['id']}})['then'](handleEntityNotFound(_0x1c82db,null))['then'](saveUpdates(_0xc845bc[_0x587d('0x49')],null))[_0x587d('0x25')](respondWithResult(_0x1c82db,null))['catch'](handleError(_0x1c82db,null));};exports['destroy']=function(_0x20736f,_0x24cf2b){var _0x6c87ee=_0x20736f[_0x587d('0x52')]['id'];var _0x30436=[];return db[_0x587d('0x53')][_0x587d('0x54')](function(_0x34ca41){var _0x324338=_0x587d('0x55')+_0x6c87ee;return db[_0x587d('0x53')][_0x587d('0x31')](_0x324338,{'type':db[_0x587d('0x56')][_0x587d('0x57')][_0x587d('0x58')],'raw':!![],'transaction':_0x34ca41})[_0x587d('0x25')](function(_0x28225a){_0x30436=_[_0x587d('0x30')](_0x28225a,function(_0x5ae29f){return Number(_0x5ae29f[_0x587d('0x59')]);});})['then'](function(){var _0x2392bf=_0x587d('0x5a')+_0x6c87ee;return db[_0x587d('0x53')][_0x587d('0x31')](_0x2392bf,{'type':db['Sequelize'][_0x587d('0x57')][_0x587d('0x58')],'raw':!![],'transaction':_0x34ca41});})[_0x587d('0x25')](function(_0x1464e1){var _0x4ac605=_['map'](_0x1464e1,function(_0x290b29){return Number(_0x290b29[_0x587d('0x5b')]);});return db[_0x587d('0x5c')][_0x587d('0x5d')]({'where':{'UserId':{'$in':_0x30436},'VoiceQueueId':{'$in':_0x4ac605}},'transaction':_0x34ca41});})[_0x587d('0x25')](function(){var _0x4de109=_0x587d('0x5e')+_0x6c87ee;return db[_0x587d('0x53')][_0x587d('0x31')](_0x4de109,{'type':db[_0x587d('0x56')]['QueryTypes'][_0x587d('0x58')],'raw':!![],'transaction':_0x34ca41});})['then'](function(_0x3b7d95){var _0x58bde9=_[_0x587d('0x30')](_0x3b7d95,function(_0x2913f1){return Number(_0x2913f1['MailQueueId']);});return db['UserMailQueue'][_0x587d('0x5d')]({'where':{'UserId':{'$in':_0x30436},'MailQueueId':{'$in':_0x58bde9}},'transaction':_0x34ca41});})[_0x587d('0x25')](function(){var _0x5b1686=_0x587d('0x5f')+_0x6c87ee;return db[_0x587d('0x53')][_0x587d('0x31')](_0x5b1686,{'type':db['Sequelize'][_0x587d('0x57')][_0x587d('0x58')],'raw':!![],'transaction':_0x34ca41});})[_0x587d('0x25')](function(_0x5a5530){var _0x251d53=_[_0x587d('0x30')](_0x5a5530,function(_0x47f700){return Number(_0x47f700[_0x587d('0x60')]);});return db[_0x587d('0x61')]['destroy']({'where':{'UserId':{'$in':_0x30436},'SmsQueueId':{'$in':_0x251d53}},'transaction':_0x34ca41});})[_0x587d('0x25')](function(){var _0x56d704='SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20'+_0x6c87ee;return db[_0x587d('0x53')][_0x587d('0x31')](_0x56d704,{'type':db[_0x587d('0x56')]['QueryTypes'][_0x587d('0x58')],'raw':!![],'transaction':_0x34ca41});})['then'](function(_0xaa4931){var _0x3a868c=_[_0x587d('0x30')](_0xaa4931,function(_0x5ad668){return Number(_0x5ad668[_0x587d('0x62')]);});return db[_0x587d('0x63')][_0x587d('0x5d')]({'where':{'UserId':{'$in':_0x30436},'ChatQueueId':{'$in':_0x3a868c}},'transaction':_0x34ca41});})[_0x587d('0x25')](function(){var _0x1a5061=_0x587d('0x64')+_0x6c87ee;return db[_0x587d('0x53')][_0x587d('0x31')](_0x1a5061,{'type':db[_0x587d('0x56')]['QueryTypes'][_0x587d('0x58')],'raw':!![],'transaction':_0x34ca41});})[_0x587d('0x25')](function(_0x3e60aa){var _0x1618bf=_[_0x587d('0x30')](_0x3e60aa,function(_0x1c4473){return Number(_0x1c4473['FaxQueueId']);});return db[_0x587d('0x65')]['destroy']({'where':{'UserId':{'$in':_0x30436},'FaxQueueId':{'$in':_0x1618bf}},'transaction':_0x34ca41});})[_0x587d('0x25')](function(){var _0x1a70e2=_0x587d('0x66')+_0x6c87ee;return db[_0x587d('0x53')][_0x587d('0x31')](_0x1a70e2,{'type':db[_0x587d('0x56')][_0x587d('0x57')][_0x587d('0x58')],'raw':!![],'transaction':_0x34ca41});})['then'](function(_0x502a36){var _0x2d126a=_[_0x587d('0x30')](_0x502a36,function(_0x8bdacf){return Number(_0x8bdacf[_0x587d('0x67')]);});return db[_0x587d('0x68')]['destroy']({'where':{'UserId':{'$in':_0x30436},'OpenchannelQueueId':{'$in':_0x2d126a}},'transaction':_0x34ca41});})[_0x587d('0x25')](function(){var _0x2ba101='SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20'+_0x6c87ee;return db['sequelize'][_0x587d('0x31')](_0x2ba101,{'type':db[_0x587d('0x56')][_0x587d('0x57')][_0x587d('0x58')],'raw':!![],'transaction':_0x34ca41});})[_0x587d('0x25')](function(_0x3b96a2){var _0x26d68c=_['map'](_0x3b96a2,function(_0x1ff6fb){return Number(_0x1ff6fb[_0x587d('0x69')]);});return db['UserWhatsappQueue'][_0x587d('0x5d')]({'where':{'UserId':{'$in':_0x30436},'WhatsappQueueId':{'$in':_0x26d68c}},'transaction':_0x34ca41});})[_0x587d('0x25')](function(){return db[_0x587d('0x6a')][_0x587d('0x46')]({'where':{'TeamId':_0x6c87ee}});})['then'](function(_0x19395e){if(_0x19395e===null){return;}return db[_0x587d('0x6b')]['destroy']({'where':{'UserId':{'$in':_0x30436},'VoicePrefixId':_0x19395e['VoicePrefixId']},'transaction':_0x34ca41});})[_0x587d('0x25')](function(){return db['Team']['destroy']({'where':{'id':_0x6c87ee},'cascade':!![],'transaction':_0x34ca41});})['then'](function(_0x4c6bba){if(_0x4c6bba===0x0){_0x24cf2b[_0x587d('0x1a')](0x194);}else{return db[_0x587d('0x50')][_0x587d('0x5d')]({'where':{'type':_0x587d('0x4c'),'resourceId':_0x6c87ee},'cascade':!![],'transaction':_0x34ca41})[_0x587d('0x25')](function(){_0x24cf2b[_0x587d('0x1b')](0xcc)['end']();});}})[_0x587d('0x47')](function(_0x360779){_0x24cf2b[_0x587d('0x1b')](0x1f4)['send'](_0x360779);});});};exports[_0x587d('0x6c')]=function(_0x52d896,_0x1909e2,_0x64d5af){return db[_0x587d('0x42')]['findOne']({'where':{'id':_0x52d896[_0x587d('0x52')]['id']}})[_0x587d('0x25')](handleEntityNotFound(_0x1909e2,null))[_0x587d('0x25')](function(_0x3da29d){if(!_0x52d896[_0x587d('0x31')]['channel']||!utils[_0x587d('0x6d')](_0x52d896['query'][_0x587d('0x6e')])){throw new db[(_0x587d('0x56'))][(_0x587d('0x6f'))](_0x587d('0x70'));}var _0x10823c={};var _0x56886c={};_0x56886c[_0x587d('0x2f')]=_[_0x587d('0x32')](db[_[_0x587d('0x71')](_0x52d896[_0x587d('0x31')][_0x587d('0x6e')][_0x587d('0x72')]())+'Queue']['rawAttributes']);_0x56886c[_0x587d('0x31')]=_[_0x587d('0x32')](_0x52d896[_0x587d('0x31')]);_0x56886c[_0x587d('0x33')]=_[_0x587d('0x34')](_0x56886c['model'],_0x56886c[_0x587d('0x31')]);_0x10823c[_0x587d('0x36')]=_[_0x587d('0x34')](_0x56886c[_0x587d('0x2f')],qs[_0x587d('0x35')](_0x52d896[_0x587d('0x31')][_0x587d('0x35')]));_0x10823c[_0x587d('0x36')]=_0x10823c[_0x587d('0x36')]['length']?_0x10823c[_0x587d('0x36')]:_0x56886c[_0x587d('0x2f')];_0x10823c['limit']=qs[_0x587d('0x1f')](_0x52d896[_0x587d('0x31')][_0x587d('0x1f')]);_0x10823c[_0x587d('0x1d')]=qs[_0x587d('0x1d')](_0x52d896[_0x587d('0x31')][_0x587d('0x1d')]);_0x10823c[_0x587d('0x3a')]=qs[_0x587d('0x3b')](_0x52d896['query'][_0x587d('0x3b')]);_0x10823c[_0x587d('0x3c')]=qs[_0x587d('0x33')](_[_0x587d('0x3d')](_0x52d896[_0x587d('0x31')],_0x56886c[_0x587d('0x33')]));_0x10823c=_['merge']({},_0x10823c,_0x52d896[_0x587d('0x41')]);return _0x3da29d[_0x587d('0x4b')+_[_0x587d('0x71')](_0x52d896[_0x587d('0x31')][_0x587d('0x6e')][_0x587d('0x72')]())+_0x587d('0x73')](_0x10823c);})[_0x587d('0x25')](respondWithResult(_0x1909e2,null))[_0x587d('0x47')](handleError(_0x1909e2,null));};exports[_0x587d('0x74')]=function(_0x4cd7a1,_0x584b1e,_0x82c601){return db[_0x587d('0x42')]['findOne']({'where':{'id':_0x4cd7a1[_0x587d('0x52')]['id']}})['then'](function(_0x3d8ec0){if(_0x3d8ec0){if(!_0x4cd7a1['body'][_0x587d('0x6e')]||!utils[_0x587d('0x6d')](_0x4cd7a1[_0x587d('0x49')][_0x587d('0x6e')])){throw new db[(_0x587d('0x56'))]['ValidationError']('Unknown\x20channel');}return _0x3d8ec0[_0x587d('0x75')+_[_0x587d('0x71')](_0x4cd7a1[_0x587d('0x49')]['channel']['toLowerCase']())+_0x587d('0x73')](_0x4cd7a1[_0x587d('0x49')][_0x587d('0x76')]);}return null;})[_0x587d('0x25')](handleEntityNotFound(_0x584b1e,null))[_0x587d('0x25')](respondWithStatusCode(_0x584b1e,null))[_0x587d('0x47')](handleError(_0x584b1e,null));};exports['removeQueues']=function(_0x2ef848,_0x5a760d,_0xbfb172){return db['Team'][_0x587d('0x77')]({'where':{'id':_0x2ef848[_0x587d('0x52')]['id']}})[_0x587d('0x25')](function(_0x5aa21c){if(_0x5aa21c){if(!_0x2ef848[_0x587d('0x31')][_0x587d('0x6e')]||!utils[_0x587d('0x6d')](_0x2ef848['query'][_0x587d('0x6e')])){throw new db['Sequelize'][(_0x587d('0x6f'))](_0x587d('0x70'));}return _0x5aa21c['remove'+_['capitalize'](_0x2ef848[_0x587d('0x31')][_0x587d('0x6e')][_0x587d('0x72')]())+'Queues'](_0x2ef848['query'][_0x587d('0x76')]);}return null;})[_0x587d('0x25')](handleEntityNotFound(_0x5a760d,null))[_0x587d('0x25')](respondWithStatusCode(_0x5a760d,null))[_0x587d('0x47')](handleError(_0x5a760d,null));};exports['addAgents']=function(_0x5623ec,_0xf3c342){var _0x16d1f4=_['isArray'](_0x5623ec[_0x587d('0x49')][_0x587d('0x76')])?_0x5623ec[_0x587d('0x49')][_0x587d('0x76')]:[_0x5623ec[_0x587d('0x49')][_0x587d('0x76')]];var _0x440f6f=_0x5623ec[_0x587d('0x52')]['id'];return db['Team'][_0x587d('0x46')]({'where':{'id':_0x440f6f}})['then'](handleEntityNotFound(_0xf3c342,null))[_0x587d('0x25')](function(_0x2e57a6){if(_0x2e57a6){var _0x51adce=[_0x587d('0x78'),_0x587d('0x79'),'Mail',_0x587d('0x7a'),_0x587d('0x7b'),_0x587d('0x7c'),_0x587d('0x7d')];return db['sequelize'][_0x587d('0x54')](function(_0x34729a){var _0x5488e4=_[_0x587d('0x30')](_0x51adce,function(_0x312dcb){var _0x53be05={'attributes':['id','name']};if(_0x312dcb===_0x587d('0x78')){_0x53be05[_0x587d('0x7e')]={'attributes':[_0x587d('0x7f')]};}return _0x2e57a6['get'+_0x312dcb+_0x587d('0x73')](_0x53be05)[_0x587d('0x25')](function(_0x2873bf){var _0x5f335d=_[_0x587d('0x30')](_0x2873bf,function(_0x3d389c){var _0x26dae1=_[_0x587d('0x30')](_0x16d1f4,function(_0x15346f){var _0x6ce330={'where':{'UserId':_0x15346f,[_0x312dcb+_0x587d('0x80')]:_0x3d389c['id']},'transaction':_0x34729a};if(_0x312dcb==='Voice'){_0x6ce330[_0x587d('0x16')]={'penalty':_0x3d389c[_0x587d('0x81')][_0x587d('0x7f')]};}return db[_0x587d('0x82')+_0x312dcb+_0x587d('0x83')][_0x587d('0x84')](_0x6ce330)[_0x587d('0x25')](function(){socket[_0x587d('0x85')](_0x587d('0x4a')+_0x312dcb+_0x587d('0x86'),{'UserId':_0x15346f,[_0x312dcb+_0x587d('0x80')]:_0x3d389c['id']});if(_0x312dcb!==_0x587d('0x78')){return;}return db[_0x587d('0x82')]['findAll']({'where':{'id':_0x16d1f4,'online':0x1},'attributes':['id','name','online',_0x587d('0x87'),'interface'],'raw':!![]})[_0x587d('0x25')](function(_0x47ef74){var _0x1ea40e=_['map'](_0x47ef74,function(_0x4b6d44){return db[_0x587d('0x88')]['upsert']({'membername':_0x4b6d44[_0x587d('0x28')],'UserId':_0x4b6d44['id'],'queue_name':_0x3d389c[_0x587d('0x28')],'VoiceQueueId':_0x3d389c['id'],'interface':_['isNil'](_0x4b6d44[_0x587d('0x89')])?util['format'](_0x587d('0x8a'),_0x4b6d44[_0x587d('0x28')]):_0x4b6d44[_0x587d('0x89')],'paused':_0x4b6d44[_0x587d('0x87')]||![],'penalty':_0x3d389c['TeamVoiceQueue'][_0x587d('0x7f')]},{'transaction':_0x34729a});});return Promise[_0x587d('0x8b')](_0x1ea40e);});});});return Promise[_0x587d('0x8b')](_0x26dae1);});return Promise[_0x587d('0x8b')](_0x5f335d);})[_0x587d('0x25')](function(){return db[_0x587d('0x6a')][_0x587d('0x77')]({'where':{'teamId':_0x440f6f}})['then'](function(_0x578795){if(_0x578795){var _0x476b9f=_[_0x587d('0x30')](_0x16d1f4,function(_0x74dc55){db['UserVoicePrefix'][_0x587d('0x8c')]({'UserId':_0x74dc55,'VoicePrefixId':_0x578795['VoicePrefixId']});});return Promise[_0x587d('0x8b')](_0x476b9f);}});});});return Promise['all'](_0x5488e4)[_0x587d('0x25')](function(){return _0x2e57a6[_0x587d('0x8d')](_0x16d1f4,{'transaction':_0x34729a})[_0x587d('0x8e')](function(_0xc1ccc6){return _0xc1ccc6;});});});}})[_0x587d('0x25')](respondWithResult(_0xf3c342,null))[_0x587d('0x47')](handleError(_0xf3c342,null));};exports['removeAgents']=function(_0x4601b4,_0x401dea){var _0x121ce8=_['isArray'](_0x4601b4[_0x587d('0x31')][_0x587d('0x76')])?_0x4601b4['query'][_0x587d('0x76')]:[_0x4601b4[_0x587d('0x31')]['ids']];var _0x4372ef=_0x4601b4[_0x587d('0x52')]['id'];return db[_0x587d('0x42')][_0x587d('0x46')]({'where':{'id':_0x4372ef}})[_0x587d('0x25')](handleEntityNotFound(_0x401dea,null))[_0x587d('0x25')](function(_0x18a866){if(_0x18a866){var _0x1d6f6a=[_0x587d('0x78'),_0x587d('0x79'),_0x587d('0x8f'),_0x587d('0x7a'),'Fax',_0x587d('0x7c'),_0x587d('0x7d')];return db[_0x587d('0x53')][_0x587d('0x54')](function(_0x5f32e9){var _0x5ce7e4=_['map'](_0x1d6f6a,function(_0x41e7ec){var _0x5cb73b={'attributes':['id',_0x587d('0x28')]};return _0x18a866[_0x587d('0x4b')+_0x41e7ec+_0x587d('0x73')](_0x5cb73b)[_0x587d('0x25')](function(_0x115fdd){var _0x4c84da=_['map'](_0x115fdd,function(_0x2db117){return _0x2db117[_0x587d('0x90')](_0x121ce8,{'transaction':_0x5f32e9})[_0x587d('0x25')](function(){var _0x3c331e=_[_0x587d('0x30')](_0x121ce8,function(_0x1dedeb){socket['emit'](_0x587d('0x4a')+_0x41e7ec+_0x587d('0x91'),{'UserId':Number(_0x1dedeb),[_0x41e7ec+'QueueId']:_0x2db117['id']});if(_0x41e7ec!=='Voice'){return;}return db['UserVoiceQueueRt']['destroy']({'where':{'VoiceQueueId':_0x2db117['id'],'UserId':_0x1dedeb},'transaction':_0x5f32e9});});return Promise[_0x587d('0x8b')](_0x3c331e);});});return Promise['all'](_0x4c84da);});});return Promise[_0x587d('0x8b')](_0x5ce7e4)[_0x587d('0x25')](function(){return _0x18a866[_0x587d('0x90')](_0x121ce8,{'transaction':_0x5f32e9});})[_0x587d('0x25')](function(){return db[_0x587d('0x6a')]['findOne']({'where':{'teamId':_0x4372ef}})['then'](function(_0x275261){if(_0x275261){var _0x57e150=_['map'](_0x121ce8,function(_0xf26e67){db[_0x587d('0x6b')][_0x587d('0x5d')]({'where':{'UserId':_0xf26e67,'VoicePrefixId':_0x275261[_0x587d('0x92')]}});});return Promise[_0x587d('0x8b')](_0x57e150);}});});});}})[_0x587d('0x25')](respondWithStatusCode(_0x401dea,null))[_0x587d('0x47')](handleError(_0x401dea,null));};exports[_0x587d('0x93')]=function(_0x3c286e,_0xd4c917,_0x487885){var _0x5a4fce={};var _0xaa08a6={};var _0xca974a;var _0x340024;return db[_0x587d('0x42')][_0x587d('0x77')]({'where':{'id':_0x3c286e[_0x587d('0x52')]['id']}})[_0x587d('0x25')](handleEntityNotFound(_0xd4c917,null))[_0x587d('0x25')](function(_0x412511){if(_0x412511){_0xca974a=_0x412511;_0xaa08a6['model']=_[_0x587d('0x32')](db['User']['rawAttributes']);_0xaa08a6['query']=_['keys'](_0x3c286e[_0x587d('0x31')]);_0xaa08a6[_0x587d('0x33')]=_[_0x587d('0x34')](_0xaa08a6[_0x587d('0x2f')],_0xaa08a6[_0x587d('0x31')]);_0x5a4fce[_0x587d('0x36')]=_[_0x587d('0x34')](_0xaa08a6[_0x587d('0x2f')],qs[_0x587d('0x35')](_0x3c286e[_0x587d('0x31')]['fields']));_0x5a4fce[_0x587d('0x36')]=_0x5a4fce[_0x587d('0x36')][_0x587d('0x37')]?_0x5a4fce['attributes']:_0xaa08a6[_0x587d('0x2f')];_0x5a4fce[_0x587d('0x3a')]=qs[_0x587d('0x3b')](_0x3c286e[_0x587d('0x31')][_0x587d('0x3b')]);_0x5a4fce[_0x587d('0x3c')]=qs[_0x587d('0x33')](_[_0x587d('0x3d')](_0x3c286e[_0x587d('0x31')],_0xaa08a6[_0x587d('0x33')]));if(_0x3c286e[_0x587d('0x31')][_0x587d('0x3e')]){_0x5a4fce[_0x587d('0x3c')]=_[_0x587d('0x3f')](_0x5a4fce['where'],{'$or':_[_0x587d('0x30')](_0x5a4fce[_0x587d('0x36')],function(_0x19064b){var _0xee2d38={};_0xee2d38[_0x19064b]={'$like':'%'+_0x3c286e[_0x587d('0x31')][_0x587d('0x3e')]+'%'};return _0xee2d38;})});}_0x5a4fce=_[_0x587d('0x3f')]({},_0x5a4fce,_0x3c286e['options']);return _0xca974a['getAgents'](_0x5a4fce);}})['then'](function(_0x3d6688){if(_0x3d6688){_0x340024=_0x3d6688[_0x587d('0x37')];if(!_0x3c286e[_0x587d('0x31')][_0x587d('0x38')](_0x587d('0x39'))){_0x5a4fce['limit']=qs[_0x587d('0x1f')](_0x3c286e[_0x587d('0x31')][_0x587d('0x1f')]);_0x5a4fce[_0x587d('0x1d')]=qs[_0x587d('0x1d')](_0x3c286e['query']['offset']);}return _0xca974a[_0x587d('0x93')](_0x5a4fce);}})[_0x587d('0x25')](function(_0x13c2c6){if(_0x13c2c6){return _0x13c2c6?{'count':_0x340024,'rows':_0x13c2c6}:null;}})[_0x587d('0x25')](respondWithResult(_0xd4c917,null))['catch'](handleError(_0xd4c917,null));};