e3175e6738444e77104dc09daae2c1791eb074f7
[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 _0xd761=['attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','VIRTUAL','filter','merge','include','rows','catch','params','keys','rawAttributes','intersection','includeAll','options','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Teams','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','update','transaction','sequelize','Sequelize','QueryTypes','UserId','SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20','SELECT','UserVoiceQueue','destroy','UserMailQueue','SmsQueueId','UserSmsQueue','SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20','UserChatQueue','SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20','FaxQueueId','SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20','WhatsappQueueId','UserWhatsappQueue','UserVoicePrefix','VoicePrefixId','getQueues','findOne','isValidChannel','channel','Unknown\x20channel','capitalize','toLowerCase','Queue','addQueues','ValidationError','add','Queues','ids','removeQueues','remove','addAgents','isArray','Chat','Mail','Sms','Fax','Whatsapp','Voice','penalty','defaults','TeamVoiceQueue','User','findOrCreate','emit','Queue:save','QueueId','findAll','voicePause','interface','upsert','isNil','format','SIP/%s','all','TeamVoicePrefix','spread','removeAgents','Queue:remove','UserVoiceQueueRt','getAgents','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','localhost','./team.socket','register','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','then','error','stack','name','send','Team','fieldName','type','key','model','map','query','fields'];(function(_0x57cf37,_0x149b89){var _0x2df46f=function(_0x70283c){while(--_0x70283c){_0x57cf37['push'](_0x57cf37['shift']());}};_0x2df46f(++_0x149b89);}(_0xd761,0x64));var _0x1d76=function(_0x43776a,_0x4eb74c){_0x43776a=_0x43776a-0x0;var _0x18eb8f=_0xd761[_0x43776a];return _0x18eb8f;};'use strict';var emlformat=require(_0x1d76('0x0'));var rimraf=require(_0x1d76('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x1d76('0x2'));var moment=require(_0x1d76('0x3'));var BPromise=require(_0x1d76('0x4'));var Mustache=require(_0x1d76('0x5'));var util=require(_0x1d76('0x6'));var path=require(_0x1d76('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x1d76('0x8'));var fs=require('fs');var fs_extra=require(_0x1d76('0x9'));var _=require(_0x1d76('0xa'));var squel=require(_0x1d76('0xb'));var crypto=require(_0x1d76('0xc'));var jsforce=require(_0x1d76('0xd'));var deskjs=require(_0x1d76('0xe'));var toCsv=require('to-csv');var querystring=require(_0x1d76('0xf'));var Papa=require(_0x1d76('0x10'));var Redis=require(_0x1d76('0x11'));var authService=require(_0x1d76('0x12'));var qs=require(_0x1d76('0x13'));var as=require(_0x1d76('0x14'));var hardwareService=require(_0x1d76('0x15'));var logger=require(_0x1d76('0x16'))(_0x1d76('0x17'));var utils=require(_0x1d76('0x18'));var config=require(_0x1d76('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0x1d76('0x1a'))['db'];config[_0x1d76('0x1b')]=_['defaults'](config[_0x1d76('0x1b')],{'host':_0x1d76('0x1c'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x1d76('0x1b')]));require(_0x1d76('0x1d'))[_0x1d76('0x1e')](socket);function respondWithStatusCode(_0x2a27d4,_0x8e6633){_0x8e6633=_0x8e6633||0xcc;return function(_0x22bbb2){if(_0x22bbb2){return _0x2a27d4[_0x1d76('0x1f')](_0x8e6633);}return _0x2a27d4[_0x1d76('0x20')](_0x8e6633)['end']();};}function respondWithResult(_0x5c3dd9,_0xba50c3){_0xba50c3=_0xba50c3||0xc8;return function(_0x1d0f2a){if(_0x1d0f2a){return _0x5c3dd9[_0x1d76('0x20')](_0xba50c3)[_0x1d76('0x21')](_0x1d0f2a);}};}function respondWithFilteredResult(_0x47bc60,_0x49fea8){return function(_0x524d4f){if(_0x524d4f){var _0x2f5111=typeof _0x49fea8[_0x1d76('0x22')]==='undefined'&&typeof _0x49fea8['limit']===_0x1d76('0x23');var _0x5e34b2=_0x524d4f[_0x1d76('0x24')];var _0x4b0c09=_0x2f5111?0x0:_0x49fea8[_0x1d76('0x22')];var _0x32dc44=_0x2f5111?_0x524d4f['count']:_0x49fea8[_0x1d76('0x22')]+_0x49fea8[_0x1d76('0x25')];var _0x174f6d;if(_0x32dc44>=_0x5e34b2){_0x32dc44=_0x5e34b2;_0x174f6d=0xc8;}else{_0x174f6d=0xce;}_0x47bc60['status'](_0x174f6d);return _0x47bc60[_0x1d76('0x26')](_0x1d76('0x27'),_0x4b0c09+'-'+_0x32dc44+'/'+_0x5e34b2)[_0x1d76('0x21')](_0x524d4f);}return null;};}function patchUpdates(_0x1b165d){return function(_0x38c0ff){try{jsonpatch[_0x1d76('0x28')](_0x38c0ff,_0x1b165d,!![]);}catch(_0x3c9016){return BPromise[_0x1d76('0x29')](_0x3c9016);}return _0x38c0ff['save']();};}function saveUpdates(_0x28c954,_0x4ce249){return function(_0x37c965){if(_0x37c965){return _0x37c965['update'](_0x28c954)[_0x1d76('0x2a')](function(_0x47d273){return _0x47d273;});}return null;};}function handleEntityNotFound(_0x1a8c1c,_0x25f1fe){return function(_0x3b45c2){if(!_0x3b45c2){_0x1a8c1c[_0x1d76('0x1f')](0x194);}return _0x3b45c2;};}function handleError(_0x13acba,_0x62e5c7){_0x62e5c7=_0x62e5c7||0x1f4;return function(_0x439277){logger[_0x1d76('0x2b')](_0x439277[_0x1d76('0x2c')]);if(_0x439277[_0x1d76('0x2d')]){delete _0x439277['name'];}_0x13acba[_0x1d76('0x20')](_0x62e5c7)[_0x1d76('0x2e')](_0x439277);};}exports['index']=function(_0x4eb0d5,_0x467340){var _0xa22cde={},_0xa9052f={},_0x5101c6={'count':0x0,'rows':[]};var _0x92de05=_['map'](db[_0x1d76('0x2f')]['rawAttributes'],function(_0x481166){return{'name':_0x481166[_0x1d76('0x30')],'type':_0x481166[_0x1d76('0x31')][_0x1d76('0x32')]};});_0xa9052f[_0x1d76('0x33')]=_[_0x1d76('0x34')](_0x92de05,_0x1d76('0x2d'));_0xa9052f[_0x1d76('0x35')]=_['keys'](_0x4eb0d5['query']);_0xa9052f['filters']=_['intersection'](_0xa9052f['model'],_0xa9052f[_0x1d76('0x35')]);_0xa22cde['attributes']=_['intersection'](_0xa9052f['model'],qs[_0x1d76('0x36')](_0x4eb0d5['query']['fields']));_0xa22cde['attributes']=_0xa22cde[_0x1d76('0x37')][_0x1d76('0x38')]?_0xa22cde[_0x1d76('0x37')]:_0xa9052f['model'];if(!_0x4eb0d5[_0x1d76('0x35')][_0x1d76('0x39')](_0x1d76('0x3a'))){_0xa22cde[_0x1d76('0x25')]=qs[_0x1d76('0x25')](_0x4eb0d5[_0x1d76('0x35')][_0x1d76('0x25')]);_0xa22cde[_0x1d76('0x22')]=qs[_0x1d76('0x22')](_0x4eb0d5['query'][_0x1d76('0x22')]);}_0xa22cde[_0x1d76('0x3b')]=qs[_0x1d76('0x3c')](_0x4eb0d5['query'][_0x1d76('0x3c')]);_0xa22cde[_0x1d76('0x3d')]=qs[_0x1d76('0x3e')](_[_0x1d76('0x3f')](_0x4eb0d5[_0x1d76('0x35')],_0xa9052f[_0x1d76('0x3e')]),_0x92de05);if(_0x4eb0d5[_0x1d76('0x35')]['filter']){_0xa22cde[_0x1d76('0x3d')]=_['merge'](_0xa22cde[_0x1d76('0x3d')],{'$or':_[_0x1d76('0x34')](_0x92de05,function(_0x3b69a7){if(_0x3b69a7['type']!==_0x1d76('0x40')){var _0x2ade6c={};_0x2ade6c[_0x3b69a7[_0x1d76('0x2d')]]={'$like':'%'+_0x4eb0d5[_0x1d76('0x35')][_0x1d76('0x41')]+'%'};return _0x2ade6c;}})});}_0xa22cde=_[_0x1d76('0x42')]({},_0xa22cde,_0x4eb0d5['options']);var _0x4da297={'where':_0xa22cde['where']};return db[_0x1d76('0x2f')][_0x1d76('0x24')](_0x4da297)[_0x1d76('0x2a')](function(_0x502082){_0x5101c6[_0x1d76('0x24')]=_0x502082;if(_0x4eb0d5['query']['includeAll']){_0xa22cde[_0x1d76('0x43')]=[{'all':!![]}];}return db[_0x1d76('0x2f')]['findAll'](_0xa22cde);})[_0x1d76('0x2a')](function(_0x53f8de){_0x5101c6[_0x1d76('0x44')]=_0x53f8de;return _0x5101c6;})['then'](respondWithFilteredResult(_0x467340,_0xa22cde))[_0x1d76('0x45')](handleError(_0x467340,null));};exports['show']=function(_0x29e08d,_0x456f2e){var _0x1722d1={'raw':![],'where':{'id':_0x29e08d[_0x1d76('0x46')]['id']}},_0xf6a8b2={};_0xf6a8b2[_0x1d76('0x33')]=_[_0x1d76('0x47')](db['Team'][_0x1d76('0x48')]);_0xf6a8b2[_0x1d76('0x35')]=_[_0x1d76('0x47')](_0x29e08d[_0x1d76('0x35')]);_0xf6a8b2[_0x1d76('0x3e')]=_[_0x1d76('0x49')](_0xf6a8b2[_0x1d76('0x33')],_0xf6a8b2[_0x1d76('0x35')]);_0x1722d1['attributes']=_[_0x1d76('0x49')](_0xf6a8b2[_0x1d76('0x33')],qs[_0x1d76('0x36')](_0x29e08d[_0x1d76('0x35')]['fields']));_0x1722d1['attributes']=_0x1722d1['attributes'][_0x1d76('0x38')]?_0x1722d1[_0x1d76('0x37')]:_0xf6a8b2[_0x1d76('0x33')];if(_0x29e08d[_0x1d76('0x35')][_0x1d76('0x4a')]){_0x1722d1[_0x1d76('0x43')]=[{'all':!![]}];}_0x1722d1=_[_0x1d76('0x42')]({},_0x1722d1,_0x29e08d[_0x1d76('0x4b')]);return db[_0x1d76('0x2f')][_0x1d76('0x4c')](_0x1722d1)['then'](handleEntityNotFound(_0x456f2e,null))[_0x1d76('0x2a')](respondWithResult(_0x456f2e,null))['catch'](handleError(_0x456f2e,null));};exports[_0x1d76('0x4d')]=function(_0x3d3fe4,_0x3d27d4){return db['Team'][_0x1d76('0x4d')](_0x3d3fe4[_0x1d76('0x4e')],{})[_0x1d76('0x2a')](function(_0xf91789){var _0x3f0079=_0x3d3fe4[_0x1d76('0x4f')][_0x1d76('0x50')]({'plain':!![]});if(!_0x3f0079)throw new Error(_0x1d76('0x51'));if(_0x3f0079[_0x1d76('0x52')]===_0x1d76('0x4f')){var _0x33b597=_0xf91789['get']({'plain':!![]});var _0x3d68cd=_0x1d76('0x53');return db[_0x1d76('0x54')]['find']({'where':{'name':_0x3d68cd,'userProfileId':_0x3f0079[_0x1d76('0x55')]},'raw':!![]})['then'](function(_0x3ce263){if(_0x3ce263&&_0x3ce263[_0x1d76('0x56')]===0x0){return db[_0x1d76('0x57')]['create']({'name':_0x33b597['name'],'resourceId':_0x33b597['id'],'type':_0x3ce263[_0x1d76('0x2d')],'sectionId':_0x3ce263['id']},{})[_0x1d76('0x2a')](function(){return _0xf91789;});}else{return _0xf91789;}})[_0x1d76('0x45')](function(_0x2b6408){logger[_0x1d76('0x2b')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2b6408);throw _0x2b6408;});}return _0xf91789;})[_0x1d76('0x2a')](respondWithResult(_0x3d27d4,0xc9))['catch'](handleError(_0x3d27d4,null));};exports[_0x1d76('0x58')]=function(_0xa6167e,_0x2e09e2){if(_0xa6167e['body']['id']){delete _0xa6167e['body']['id'];}return db[_0x1d76('0x2f')][_0x1d76('0x4c')]({'where':{'id':_0xa6167e['params']['id']}})[_0x1d76('0x2a')](handleEntityNotFound(_0x2e09e2,null))[_0x1d76('0x2a')](saveUpdates(_0xa6167e['body'],null))[_0x1d76('0x2a')](respondWithResult(_0x2e09e2,null))[_0x1d76('0x45')](handleError(_0x2e09e2,null));};exports['destroy']=function(_0x4951a4,_0x407b6c){var _0x4557e3=_0x4951a4[_0x1d76('0x46')]['id'];var _0x431d60=[];return db['sequelize'][_0x1d76('0x59')](function(_0x1e2543){var _0x51d890='SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20'+_0x4557e3;return db[_0x1d76('0x5a')][_0x1d76('0x35')](_0x51d890,{'type':db[_0x1d76('0x5b')][_0x1d76('0x5c')]['SELECT'],'raw':!![],'transaction':_0x1e2543})[_0x1d76('0x2a')](function(_0x173822){_0x431d60=_[_0x1d76('0x34')](_0x173822,function(_0x2bafdd){return Number(_0x2bafdd[_0x1d76('0x5d')]);});})[_0x1d76('0x2a')](function(){var _0x5d47a9=_0x1d76('0x5e')+_0x4557e3;return db[_0x1d76('0x5a')][_0x1d76('0x35')](_0x5d47a9,{'type':db[_0x1d76('0x5b')][_0x1d76('0x5c')][_0x1d76('0x5f')],'raw':!![],'transaction':_0x1e2543});})[_0x1d76('0x2a')](function(_0x3dc8ad){var _0x497ced=_['map'](_0x3dc8ad,function(_0x163cde){return Number(_0x163cde['VoiceQueueId']);});return db[_0x1d76('0x60')][_0x1d76('0x61')]({'where':{'UserId':{'$in':_0x431d60},'VoiceQueueId':{'$in':_0x497ced}},'transaction':_0x1e2543});})[_0x1d76('0x2a')](function(){var _0x40b60c='SELECT\x20MailQueueId\x20FROM\x20team_has_mail_queues\x20WHERE\x20TeamId\x20=\x20'+_0x4557e3;return db['sequelize'][_0x1d76('0x35')](_0x40b60c,{'type':db['Sequelize'][_0x1d76('0x5c')][_0x1d76('0x5f')],'raw':!![],'transaction':_0x1e2543});})[_0x1d76('0x2a')](function(_0x26a681){var _0x4b93d6=_[_0x1d76('0x34')](_0x26a681,function(_0x40a687){return Number(_0x40a687['MailQueueId']);});return db[_0x1d76('0x62')][_0x1d76('0x61')]({'where':{'UserId':{'$in':_0x431d60},'MailQueueId':{'$in':_0x4b93d6}},'transaction':_0x1e2543});})[_0x1d76('0x2a')](function(){var _0x11ac9c='SELECT\x20SmsQueueId\x20FROM\x20team_has_sms_queues\x20WHERE\x20TeamId\x20=\x20'+_0x4557e3;return db[_0x1d76('0x5a')][_0x1d76('0x35')](_0x11ac9c,{'type':db[_0x1d76('0x5b')][_0x1d76('0x5c')][_0x1d76('0x5f')],'raw':!![],'transaction':_0x1e2543});})['then'](function(_0x8137d1){var _0x3883e8=_[_0x1d76('0x34')](_0x8137d1,function(_0x7f4d20){return Number(_0x7f4d20[_0x1d76('0x63')]);});return db[_0x1d76('0x64')]['destroy']({'where':{'UserId':{'$in':_0x431d60},'SmsQueueId':{'$in':_0x3883e8}},'transaction':_0x1e2543});})[_0x1d76('0x2a')](function(){var _0x530d8e=_0x1d76('0x65')+_0x4557e3;return db[_0x1d76('0x5a')]['query'](_0x530d8e,{'type':db[_0x1d76('0x5b')][_0x1d76('0x5c')]['SELECT'],'raw':!![],'transaction':_0x1e2543});})['then'](function(_0xe0d2c5){var _0x1f5e74=_[_0x1d76('0x34')](_0xe0d2c5,function(_0x17a99f){return Number(_0x17a99f['ChatQueueId']);});return db[_0x1d76('0x66')][_0x1d76('0x61')]({'where':{'UserId':{'$in':_0x431d60},'ChatQueueId':{'$in':_0x1f5e74}},'transaction':_0x1e2543});})['then'](function(){var _0x28c241=_0x1d76('0x67')+_0x4557e3;return db[_0x1d76('0x5a')][_0x1d76('0x35')](_0x28c241,{'type':db[_0x1d76('0x5b')][_0x1d76('0x5c')][_0x1d76('0x5f')],'raw':!![],'transaction':_0x1e2543});})[_0x1d76('0x2a')](function(_0x158e4b){var _0x62284d=_[_0x1d76('0x34')](_0x158e4b,function(_0x369c1a){return Number(_0x369c1a[_0x1d76('0x68')]);});return db['UserFaxQueue'][_0x1d76('0x61')]({'where':{'UserId':{'$in':_0x431d60},'FaxQueueId':{'$in':_0x62284d}},'transaction':_0x1e2543});})[_0x1d76('0x2a')](function(){var _0x25bd5f='SELECT\x20OpenchannelQueueId\x20FROM\x20team_has_openchannel_queues\x20WHERE\x20TeamId\x20=\x20'+_0x4557e3;return db[_0x1d76('0x5a')][_0x1d76('0x35')](_0x25bd5f,{'type':db[_0x1d76('0x5b')]['QueryTypes']['SELECT'],'raw':!![],'transaction':_0x1e2543});})[_0x1d76('0x2a')](function(_0x3b283c){var _0x4b33b4=_[_0x1d76('0x34')](_0x3b283c,function(_0xa35baa){return Number(_0xa35baa['OpenchannelQueueId']);});return db['UserOpenchannelQueue'][_0x1d76('0x61')]({'where':{'UserId':{'$in':_0x431d60},'OpenchannelQueueId':{'$in':_0x4b33b4}},'transaction':_0x1e2543});})[_0x1d76('0x2a')](function(){var _0x4f4542=_0x1d76('0x69')+_0x4557e3;return db[_0x1d76('0x5a')][_0x1d76('0x35')](_0x4f4542,{'type':db['Sequelize'][_0x1d76('0x5c')][_0x1d76('0x5f')],'raw':!![],'transaction':_0x1e2543});})[_0x1d76('0x2a')](function(_0x2096be){var _0x2c7a9e=_['map'](_0x2096be,function(_0x517fcc){return Number(_0x517fcc[_0x1d76('0x6a')]);});return db[_0x1d76('0x6b')]['destroy']({'where':{'UserId':{'$in':_0x431d60},'WhatsappQueueId':{'$in':_0x2c7a9e}},'transaction':_0x1e2543});})[_0x1d76('0x2a')](function(){return db['TeamVoicePrefix']['find']({'where':{'TeamId':_0x4557e3}});})[_0x1d76('0x2a')](function(_0x44a7a8){if(_0x44a7a8===null){return;}return db[_0x1d76('0x6c')]['destroy']({'where':{'UserId':{'$in':_0x431d60},'VoicePrefixId':_0x44a7a8[_0x1d76('0x6d')]},'transaction':_0x1e2543});})[_0x1d76('0x2a')](function(){return db[_0x1d76('0x2f')]['destroy']({'where':{'id':_0x4557e3},'cascade':!![],'transaction':_0x1e2543});})[_0x1d76('0x2a')](function(_0x4dc5aa){if(_0x4dc5aa===0x0){_0x407b6c[_0x1d76('0x1f')](0x194);}else{return db[_0x1d76('0x57')][_0x1d76('0x61')]({'where':{'type':'Teams','resourceId':_0x4557e3},'cascade':!![],'transaction':_0x1e2543})[_0x1d76('0x2a')](function(){_0x407b6c['status'](0xcc)['end']();});}})[_0x1d76('0x45')](function(_0x4950b8){_0x407b6c[_0x1d76('0x20')](0x1f4)[_0x1d76('0x2e')](_0x4950b8);});});};exports[_0x1d76('0x6e')]=function(_0x118a47,_0x2352f2,_0x571a0a){return db[_0x1d76('0x2f')][_0x1d76('0x6f')]({'where':{'id':_0x118a47['params']['id']}})['then'](handleEntityNotFound(_0x2352f2,null))[_0x1d76('0x2a')](function(_0x5cd637){if(!_0x118a47[_0x1d76('0x35')]['channel']||!utils[_0x1d76('0x70')](_0x118a47[_0x1d76('0x35')][_0x1d76('0x71')])){throw new db['Sequelize']['ValidationError'](_0x1d76('0x72'));}var _0x6dccc3={};var _0x1a073b={};_0x1a073b[_0x1d76('0x33')]=_[_0x1d76('0x47')](db[_[_0x1d76('0x73')](_0x118a47['query'][_0x1d76('0x71')][_0x1d76('0x74')]())+_0x1d76('0x75')]['rawAttributes']);_0x1a073b['query']=_[_0x1d76('0x47')](_0x118a47[_0x1d76('0x35')]);_0x1a073b['filters']=_[_0x1d76('0x49')](_0x1a073b['model'],_0x1a073b['query']);_0x6dccc3['attributes']=_[_0x1d76('0x49')](_0x1a073b[_0x1d76('0x33')],qs['fields'](_0x118a47[_0x1d76('0x35')][_0x1d76('0x36')]));_0x6dccc3[_0x1d76('0x37')]=_0x6dccc3[_0x1d76('0x37')][_0x1d76('0x38')]?_0x6dccc3[_0x1d76('0x37')]:_0x1a073b['model'];_0x6dccc3['limit']=qs[_0x1d76('0x25')](_0x118a47[_0x1d76('0x35')][_0x1d76('0x25')]);_0x6dccc3[_0x1d76('0x22')]=qs[_0x1d76('0x22')](_0x118a47[_0x1d76('0x35')][_0x1d76('0x22')]);_0x6dccc3[_0x1d76('0x3b')]=qs['sort'](_0x118a47[_0x1d76('0x35')]['sort']);_0x6dccc3['where']=qs[_0x1d76('0x3e')](_[_0x1d76('0x3f')](_0x118a47[_0x1d76('0x35')],_0x1a073b[_0x1d76('0x3e')]));_0x6dccc3=_[_0x1d76('0x42')]({},_0x6dccc3,_0x118a47[_0x1d76('0x4b')]);return _0x5cd637[_0x1d76('0x50')+_[_0x1d76('0x73')](_0x118a47[_0x1d76('0x35')]['channel'][_0x1d76('0x74')]())+'Queues'](_0x6dccc3);})[_0x1d76('0x2a')](respondWithResult(_0x2352f2,null))[_0x1d76('0x45')](handleError(_0x2352f2,null));};exports[_0x1d76('0x76')]=function(_0x2313e1,_0xeb2e5,_0x1c8e90){return db[_0x1d76('0x2f')]['findOne']({'where':{'id':_0x2313e1[_0x1d76('0x46')]['id']}})['then'](function(_0x4e33fe){if(_0x4e33fe){if(!_0x2313e1['body']['channel']||!utils[_0x1d76('0x70')](_0x2313e1[_0x1d76('0x4e')][_0x1d76('0x71')])){throw new db[(_0x1d76('0x5b'))][(_0x1d76('0x77'))](_0x1d76('0x72'));}return _0x4e33fe[_0x1d76('0x78')+_[_0x1d76('0x73')](_0x2313e1['body'][_0x1d76('0x71')][_0x1d76('0x74')]())+_0x1d76('0x79')](_0x2313e1[_0x1d76('0x4e')][_0x1d76('0x7a')]);}return null;})[_0x1d76('0x2a')](handleEntityNotFound(_0xeb2e5,null))[_0x1d76('0x2a')](respondWithStatusCode(_0xeb2e5,null))['catch'](handleError(_0xeb2e5,null));};exports[_0x1d76('0x7b')]=function(_0x305544,_0x90e232,_0xc818da){return db[_0x1d76('0x2f')]['findOne']({'where':{'id':_0x305544[_0x1d76('0x46')]['id']}})[_0x1d76('0x2a')](function(_0x5c7648){if(_0x5c7648){if(!_0x305544[_0x1d76('0x35')][_0x1d76('0x71')]||!utils[_0x1d76('0x70')](_0x305544[_0x1d76('0x35')][_0x1d76('0x71')])){throw new db[(_0x1d76('0x5b'))][(_0x1d76('0x77'))](_0x1d76('0x72'));}return _0x5c7648[_0x1d76('0x7c')+_['capitalize'](_0x305544[_0x1d76('0x35')][_0x1d76('0x71')][_0x1d76('0x74')]())+'Queues'](_0x305544[_0x1d76('0x35')]['ids']);}return null;})['then'](handleEntityNotFound(_0x90e232,null))[_0x1d76('0x2a')](respondWithStatusCode(_0x90e232,null))['catch'](handleError(_0x90e232,null));};exports[_0x1d76('0x7d')]=function(_0x498400,_0x260329){var _0x3564b3=_[_0x1d76('0x7e')](_0x498400['body'][_0x1d76('0x7a')])?_0x498400[_0x1d76('0x4e')]['ids']:[_0x498400[_0x1d76('0x4e')][_0x1d76('0x7a')]];var _0x509ccb=_0x498400[_0x1d76('0x46')]['id'];return db['Team']['find']({'where':{'id':_0x509ccb}})[_0x1d76('0x2a')](handleEntityNotFound(_0x260329,null))[_0x1d76('0x2a')](function(_0xcec24e){if(_0xcec24e){var _0x2dc629=['Voice',_0x1d76('0x7f'),_0x1d76('0x80'),_0x1d76('0x81'),_0x1d76('0x82'),'Openchannel',_0x1d76('0x83')];return db[_0x1d76('0x5a')][_0x1d76('0x59')](function(_0x34c4fa){var _0xea152d=_['map'](_0x2dc629,function(_0x47df07){var _0x1c91d3={'attributes':['id',_0x1d76('0x2d')]};if(_0x47df07===_0x1d76('0x84')){_0x1c91d3['through']={'attributes':[_0x1d76('0x85')]};}return _0xcec24e['get'+_0x47df07+_0x1d76('0x79')](_0x1c91d3)[_0x1d76('0x2a')](function(_0x47957f){var _0x3ad7dd=_[_0x1d76('0x34')](_0x47957f,function(_0x4d0cd0){var _0x55075e=_[_0x1d76('0x34')](_0x3564b3,function(_0x4fe57a){var _0x5e4abc={'where':{'UserId':_0x4fe57a,[_0x47df07+'QueueId']:_0x4d0cd0['id']},'transaction':_0x34c4fa};if(_0x47df07==='Voice'){_0x5e4abc[_0x1d76('0x86')]={'penalty':_0x4d0cd0[_0x1d76('0x87')][_0x1d76('0x85')]};}return db[_0x1d76('0x88')+_0x47df07+_0x1d76('0x75')][_0x1d76('0x89')](_0x5e4abc)[_0x1d76('0x2a')](function(){socket[_0x1d76('0x8a')](_0x1d76('0x4f')+_0x47df07+_0x1d76('0x8b'),{'UserId':_0x4fe57a,[_0x47df07+_0x1d76('0x8c')]:_0x4d0cd0['id']});if(_0x47df07!==_0x1d76('0x84')){return;}return db[_0x1d76('0x88')][_0x1d76('0x8d')]({'where':{'id':_0x3564b3,'online':0x1},'attributes':['id','name','online',_0x1d76('0x8e'),_0x1d76('0x8f')],'raw':!![]})['then'](function(_0x3f8b9e){var _0x4762bb=_['map'](_0x3f8b9e,function(_0x4f3b48){return db['UserVoiceQueueRt'][_0x1d76('0x90')]({'membername':_0x4f3b48[_0x1d76('0x2d')],'UserId':_0x4f3b48['id'],'queue_name':_0x4d0cd0['name'],'VoiceQueueId':_0x4d0cd0['id'],'interface':_[_0x1d76('0x91')](_0x4f3b48[_0x1d76('0x8f')])?util[_0x1d76('0x92')](_0x1d76('0x93'),_0x4f3b48['name']):_0x4f3b48['interface'],'paused':_0x4f3b48[_0x1d76('0x8e')]||![],'penalty':_0x4d0cd0[_0x1d76('0x87')][_0x1d76('0x85')]},{'transaction':_0x34c4fa});});return Promise[_0x1d76('0x94')](_0x4762bb);});});});return Promise['all'](_0x55075e);});return Promise[_0x1d76('0x94')](_0x3ad7dd);})[_0x1d76('0x2a')](function(){return db[_0x1d76('0x95')]['findOne']({'where':{'teamId':_0x509ccb}})['then'](function(_0xfe3ab6){if(_0xfe3ab6){var _0x23747e=_[_0x1d76('0x34')](_0x3564b3,function(_0x3c60f9){db[_0x1d76('0x6c')]['upsert']({'UserId':_0x3c60f9,'VoicePrefixId':_0xfe3ab6['VoicePrefixId']});});return Promise['all'](_0x23747e);}});});});return Promise[_0x1d76('0x94')](_0xea152d)[_0x1d76('0x2a')](function(){return _0xcec24e[_0x1d76('0x7d')](_0x3564b3,{'transaction':_0x34c4fa})[_0x1d76('0x96')](function(_0x10e61c){return _0x10e61c;});});});}})[_0x1d76('0x2a')](respondWithResult(_0x260329,null))[_0x1d76('0x45')](handleError(_0x260329,null));};exports[_0x1d76('0x97')]=function(_0x24581f,_0x431473){var _0x1653ff=_[_0x1d76('0x7e')](_0x24581f[_0x1d76('0x35')]['ids'])?_0x24581f[_0x1d76('0x35')]['ids']:[_0x24581f['query'][_0x1d76('0x7a')]];var _0x24d2e3=_0x24581f[_0x1d76('0x46')]['id'];return db[_0x1d76('0x2f')][_0x1d76('0x4c')]({'where':{'id':_0x24d2e3}})[_0x1d76('0x2a')](handleEntityNotFound(_0x431473,null))['then'](function(_0x30f5b9){if(_0x30f5b9){var _0x31b09e=['Voice',_0x1d76('0x7f'),'Mail','Sms','Fax','Openchannel',_0x1d76('0x83')];return db[_0x1d76('0x5a')][_0x1d76('0x59')](function(_0x14d2e2){var _0x507549=_[_0x1d76('0x34')](_0x31b09e,function(_0x2fc9a0){var _0x26857b={'attributes':['id','name']};return _0x30f5b9[_0x1d76('0x50')+_0x2fc9a0+_0x1d76('0x79')](_0x26857b)[_0x1d76('0x2a')](function(_0x3f8df6){var _0x594719=_['map'](_0x3f8df6,function(_0x1c1e4b){return _0x1c1e4b[_0x1d76('0x97')](_0x1653ff,{'transaction':_0x14d2e2})[_0x1d76('0x2a')](function(){var _0x2c6413=_[_0x1d76('0x34')](_0x1653ff,function(_0x4e2535){socket['emit']('user'+_0x2fc9a0+_0x1d76('0x98'),{'UserId':Number(_0x4e2535),[_0x2fc9a0+_0x1d76('0x8c')]:_0x1c1e4b['id']});if(_0x2fc9a0!==_0x1d76('0x84')){return;}return db[_0x1d76('0x99')][_0x1d76('0x61')]({'where':{'VoiceQueueId':_0x1c1e4b['id'],'UserId':_0x4e2535},'transaction':_0x14d2e2});});return Promise[_0x1d76('0x94')](_0x2c6413);});});return Promise['all'](_0x594719);});});return Promise['all'](_0x507549)[_0x1d76('0x2a')](function(){return _0x30f5b9['removeAgents'](_0x1653ff,{'transaction':_0x14d2e2});})[_0x1d76('0x2a')](function(){return db[_0x1d76('0x95')]['findOne']({'where':{'teamId':_0x24d2e3}})['then'](function(_0x44e45e){if(_0x44e45e){var _0x144072=_[_0x1d76('0x34')](_0x1653ff,function(_0x6c4831){db[_0x1d76('0x6c')][_0x1d76('0x61')]({'where':{'UserId':_0x6c4831,'VoicePrefixId':_0x44e45e[_0x1d76('0x6d')]}});});return Promise[_0x1d76('0x94')](_0x144072);}});});});}})[_0x1d76('0x2a')](respondWithStatusCode(_0x431473,null))[_0x1d76('0x45')](handleError(_0x431473,null));};exports[_0x1d76('0x9a')]=function(_0x2115b9,_0x2a67b6,_0x142527){var _0x1aac0e={};var _0x49a100={};var _0x1210c5;var _0x58177f;return db[_0x1d76('0x2f')]['findOne']({'where':{'id':_0x2115b9['params']['id']}})[_0x1d76('0x2a')](handleEntityNotFound(_0x2a67b6,null))[_0x1d76('0x2a')](function(_0x506202){if(_0x506202){_0x1210c5=_0x506202;_0x49a100[_0x1d76('0x33')]=_[_0x1d76('0x47')](db['User'][_0x1d76('0x48')]);_0x49a100[_0x1d76('0x35')]=_[_0x1d76('0x47')](_0x2115b9[_0x1d76('0x35')]);_0x49a100[_0x1d76('0x3e')]=_[_0x1d76('0x49')](_0x49a100[_0x1d76('0x33')],_0x49a100[_0x1d76('0x35')]);_0x1aac0e[_0x1d76('0x37')]=_['intersection'](_0x49a100[_0x1d76('0x33')],qs[_0x1d76('0x36')](_0x2115b9['query']['fields']));_0x1aac0e[_0x1d76('0x37')]=_0x1aac0e[_0x1d76('0x37')][_0x1d76('0x38')]?_0x1aac0e[_0x1d76('0x37')]:_0x49a100[_0x1d76('0x33')];_0x1aac0e[_0x1d76('0x3b')]=qs[_0x1d76('0x3c')](_0x2115b9[_0x1d76('0x35')]['sort']);_0x1aac0e['where']=qs[_0x1d76('0x3e')](_['pick'](_0x2115b9[_0x1d76('0x35')],_0x49a100[_0x1d76('0x3e')]));if(_0x2115b9['query'][_0x1d76('0x41')]){_0x1aac0e[_0x1d76('0x3d')]=_[_0x1d76('0x42')](_0x1aac0e[_0x1d76('0x3d')],{'$or':_[_0x1d76('0x34')](_0x1aac0e['attributes'],function(_0x136c4c){var _0x4500f5={};_0x4500f5[_0x136c4c]={'$like':'%'+_0x2115b9['query'][_0x1d76('0x41')]+'%'};return _0x4500f5;})});}_0x1aac0e=_[_0x1d76('0x42')]({},_0x1aac0e,_0x2115b9[_0x1d76('0x4b')]);return _0x1210c5[_0x1d76('0x9a')](_0x1aac0e);}})[_0x1d76('0x2a')](function(_0xc0d1f9){if(_0xc0d1f9){_0x58177f=_0xc0d1f9[_0x1d76('0x38')];if(!_0x2115b9['query'][_0x1d76('0x39')](_0x1d76('0x3a'))){_0x1aac0e['limit']=qs[_0x1d76('0x25')](_0x2115b9[_0x1d76('0x35')][_0x1d76('0x25')]);_0x1aac0e[_0x1d76('0x22')]=qs[_0x1d76('0x22')](_0x2115b9[_0x1d76('0x35')][_0x1d76('0x22')]);}return _0x1210c5[_0x1d76('0x9a')](_0x1aac0e);}})['then'](function(_0x419622){if(_0x419622){return _0x419622?{'count':_0x58177f,'rows':_0x419622}:null;}})[_0x1d76('0x2a')](respondWithResult(_0x2a67b6,null))[_0x1d76('0x45')](handleError(_0x2a67b6,null));};