5422ba84563dffa65852a26f209bf055ca73a610
[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 _0x419d=['length','hasOwnProperty','nolimit','limit','order','sort','where','filters','pick','merge','type','VIRTUAL','filter','options','includeAll','include','findAll','catch','show','params','keys','find','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Teams','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','destroy','sequelize','SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20','Sequelize','QueryTypes','SELECT','SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20','VoiceQueueId','UserVoiceQueue','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','UserChatQueue','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','UserOpenchannelQueue','SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20','WhatsappQueueId','TeamVoicePrefix','UserVoicePrefix','VoicePrefixId','sendStatus','getQueues','findOne','channel','ValidationError','Unknown\x20channel','toLowerCase','Queue','Queues','add','ids','removeQueues','isValidChannel','remove','capitalize','addAgents','Mail','Sms','Fax','Openchannel','Whatsapp','transaction','Voice','through','penalty','QueueId','TeamVoiceQueue','User','emit','Queue:save','online','voicePause','UserVoiceQueueRt','isNil','SIP/%s','interface','all','spread','removeAgents','isArray','Chat','Queue:remove','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./team.socket','register','status','end','json','offset','undefined','count','Content-Range','apply','reject','save','then','error','stack','name','send','index','map','Team','rawAttributes','fieldName','key','model','query','intersection','attributes','fields'];(function(_0x5b02db,_0x1f371a){var _0x18ff8c=function(_0x470b9c){while(--_0x470b9c){_0x5b02db['push'](_0x5b02db['shift']());}};_0x18ff8c(++_0x1f371a);}(_0x419d,0x105));var _0xd419=function(_0x12c0b1,_0x1b5fb8){_0x12c0b1=_0x12c0b1-0x0;var _0x10b2ec=_0x419d[_0x12c0b1];return _0x10b2ec;};'use strict';var emlformat=require(_0xd419('0x0'));var rimraf=require(_0xd419('0x1'));var zipdir=require(_0xd419('0x2'));var jsonpatch=require(_0xd419('0x3'));var rp=require(_0xd419('0x4'));var moment=require(_0xd419('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xd419('0x6'));var util=require('util');var path=require(_0xd419('0x7'));var sox=require('sox');var csv=require(_0xd419('0x8'));var ejs=require(_0xd419('0x9'));var fs=require('fs');var fs_extra=require(_0xd419('0xa'));var _=require(_0xd419('0xb'));var squel=require('squel');var crypto=require(_0xd419('0xc'));var jsforce=require(_0xd419('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xd419('0x8'));var querystring=require('querystring');var Papa=require(_0xd419('0xe'));var Redis=require(_0xd419('0xf'));var authService=require(_0xd419('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xd419('0x11'));var hardwareService=require(_0xd419('0x12'));var logger=require(_0xd419('0x13'))(_0xd419('0x14'));var utils=require('../../config/utils');var config=require(_0xd419('0x15'));var licenseUtil=require(_0xd419('0x16'));var db=require(_0xd419('0x17'))['db'];config[_0xd419('0x18')]=_[_0xd419('0x19')](config[_0xd419('0x18')],{'host':'localhost','port':0x18eb});var socket=require(_0xd419('0x1a'))(new Redis(config[_0xd419('0x18')]));require(_0xd419('0x1b'))[_0xd419('0x1c')](socket);function respondWithStatusCode(_0x256267,_0x3853b0){_0x3853b0=_0x3853b0||0xcc;return function(_0x242d25){if(_0x242d25){return _0x256267['sendStatus'](_0x3853b0);}return _0x256267[_0xd419('0x1d')](_0x3853b0)[_0xd419('0x1e')]();};}function respondWithResult(_0x2d1ba5,_0x482c88){_0x482c88=_0x482c88||0xc8;return function(_0x141dbe){if(_0x141dbe){return _0x2d1ba5[_0xd419('0x1d')](_0x482c88)[_0xd419('0x1f')](_0x141dbe);}};}function respondWithFilteredResult(_0x5addfa,_0x4a1343){return function(_0x159a27){if(_0x159a27){var _0x3dd64b=typeof _0x4a1343[_0xd419('0x20')]===_0xd419('0x21')&&typeof _0x4a1343['limit']==='undefined';var _0x3bd7c5=_0x159a27[_0xd419('0x22')];var _0x54992c=_0x3dd64b?0x0:_0x4a1343[_0xd419('0x20')];var _0x5f164e=_0x3dd64b?_0x159a27[_0xd419('0x22')]:_0x4a1343[_0xd419('0x20')]+_0x4a1343['limit'];var _0x4a5bea;if(_0x5f164e>=_0x3bd7c5){_0x5f164e=_0x3bd7c5;_0x4a5bea=0xc8;}else{_0x4a5bea=0xce;}_0x5addfa[_0xd419('0x1d')](_0x4a5bea);return _0x5addfa['set'](_0xd419('0x23'),_0x54992c+'-'+_0x5f164e+'/'+_0x3bd7c5)[_0xd419('0x1f')](_0x159a27);}return null;};}function patchUpdates(_0x148afc){return function(_0x2aaaeb){try{jsonpatch[_0xd419('0x24')](_0x2aaaeb,_0x148afc,!![]);}catch(_0x107421){return BPromise[_0xd419('0x25')](_0x107421);}return _0x2aaaeb[_0xd419('0x26')]();};}function saveUpdates(_0x375a96,_0x293339){return function(_0x1514da){if(_0x1514da){return _0x1514da['update'](_0x375a96)[_0xd419('0x27')](function(_0x24296c){return _0x24296c;});}return null;};}function handleEntityNotFound(_0xa49bf9,_0x5d8c4e){return function(_0xe92346){if(!_0xe92346){_0xa49bf9['sendStatus'](0x194);}return _0xe92346;};}function handleError(_0x2f957f,_0x10c193){_0x10c193=_0x10c193||0x1f4;return function(_0x2f9dbc){logger[_0xd419('0x28')](_0x2f9dbc[_0xd419('0x29')]);if(_0x2f9dbc[_0xd419('0x2a')]){delete _0x2f9dbc[_0xd419('0x2a')];}_0x2f957f['status'](_0x10c193)[_0xd419('0x2b')](_0x2f9dbc);};}exports[_0xd419('0x2c')]=function(_0x369f6e,_0x52d897){var _0x2af26e={},_0x1ae8c7={},_0x873cd5={'count':0x0,'rows':[]};var _0x3e0071=_[_0xd419('0x2d')](db[_0xd419('0x2e')][_0xd419('0x2f')],function(_0x2b3c72){return{'name':_0x2b3c72[_0xd419('0x30')],'type':_0x2b3c72['type'][_0xd419('0x31')]};});_0x1ae8c7[_0xd419('0x32')]=_[_0xd419('0x2d')](_0x3e0071,_0xd419('0x2a'));_0x1ae8c7['query']=_['keys'](_0x369f6e[_0xd419('0x33')]);_0x1ae8c7['filters']=_[_0xd419('0x34')](_0x1ae8c7[_0xd419('0x32')],_0x1ae8c7[_0xd419('0x33')]);_0x2af26e[_0xd419('0x35')]=_[_0xd419('0x34')](_0x1ae8c7['model'],qs[_0xd419('0x36')](_0x369f6e[_0xd419('0x33')][_0xd419('0x36')]));_0x2af26e[_0xd419('0x35')]=_0x2af26e[_0xd419('0x35')][_0xd419('0x37')]?_0x2af26e[_0xd419('0x35')]:_0x1ae8c7[_0xd419('0x32')];if(!_0x369f6e[_0xd419('0x33')][_0xd419('0x38')](_0xd419('0x39'))){_0x2af26e[_0xd419('0x3a')]=qs['limit'](_0x369f6e[_0xd419('0x33')][_0xd419('0x3a')]);_0x2af26e[_0xd419('0x20')]=qs[_0xd419('0x20')](_0x369f6e[_0xd419('0x33')][_0xd419('0x20')]);}_0x2af26e[_0xd419('0x3b')]=qs[_0xd419('0x3c')](_0x369f6e['query'][_0xd419('0x3c')]);_0x2af26e[_0xd419('0x3d')]=qs[_0xd419('0x3e')](_[_0xd419('0x3f')](_0x369f6e[_0xd419('0x33')],_0x1ae8c7[_0xd419('0x3e')]),_0x3e0071);if(_0x369f6e[_0xd419('0x33')]['filter']){_0x2af26e[_0xd419('0x3d')]=_[_0xd419('0x40')](_0x2af26e[_0xd419('0x3d')],{'$or':_[_0xd419('0x2d')](_0x3e0071,function(_0x3fdaa5){if(_0x3fdaa5[_0xd419('0x41')]!==_0xd419('0x42')){var _0x3286ff={};_0x3286ff[_0x3fdaa5[_0xd419('0x2a')]]={'$like':'%'+_0x369f6e['query'][_0xd419('0x43')]+'%'};return _0x3286ff;}})});}_0x2af26e=_[_0xd419('0x40')]({},_0x2af26e,_0x369f6e[_0xd419('0x44')]);var _0x5d9801={'where':_0x2af26e[_0xd419('0x3d')]};return db['Team'][_0xd419('0x22')](_0x5d9801)['then'](function(_0x2d7d41){_0x873cd5['count']=_0x2d7d41;if(_0x369f6e[_0xd419('0x33')][_0xd419('0x45')]){_0x2af26e[_0xd419('0x46')]=[{'all':!![]}];}return db['Team'][_0xd419('0x47')](_0x2af26e);})['then'](function(_0x3e6603){_0x873cd5['rows']=_0x3e6603;return _0x873cd5;})[_0xd419('0x27')](respondWithFilteredResult(_0x52d897,_0x2af26e))[_0xd419('0x48')](handleError(_0x52d897,null));};exports[_0xd419('0x49')]=function(_0x3893c7,_0xfdb7b0){var _0x44fc5e={'raw':![],'where':{'id':_0x3893c7[_0xd419('0x4a')]['id']}},_0x5495bc={};_0x5495bc[_0xd419('0x32')]=_[_0xd419('0x4b')](db[_0xd419('0x2e')][_0xd419('0x2f')]);_0x5495bc[_0xd419('0x33')]=_[_0xd419('0x4b')](_0x3893c7[_0xd419('0x33')]);_0x5495bc['filters']=_[_0xd419('0x34')](_0x5495bc['model'],_0x5495bc[_0xd419('0x33')]);_0x44fc5e[_0xd419('0x35')]=_[_0xd419('0x34')](_0x5495bc[_0xd419('0x32')],qs[_0xd419('0x36')](_0x3893c7['query'][_0xd419('0x36')]));_0x44fc5e[_0xd419('0x35')]=_0x44fc5e[_0xd419('0x35')][_0xd419('0x37')]?_0x44fc5e[_0xd419('0x35')]:_0x5495bc[_0xd419('0x32')];if(_0x3893c7['query'][_0xd419('0x45')]){_0x44fc5e[_0xd419('0x46')]=[{'all':!![]}];}_0x44fc5e=_[_0xd419('0x40')]({},_0x44fc5e,_0x3893c7['options']);return db['Team'][_0xd419('0x4c')](_0x44fc5e)[_0xd419('0x27')](handleEntityNotFound(_0xfdb7b0,null))[_0xd419('0x27')](respondWithResult(_0xfdb7b0,null))[_0xd419('0x48')](handleError(_0xfdb7b0,null));};exports[_0xd419('0x4d')]=function(_0x33a529,_0x6b1ec0){return db[_0xd419('0x2e')][_0xd419('0x4d')](_0x33a529['body'],{})[_0xd419('0x27')](function(_0x5c3b8d){var _0x358128=_0x33a529[_0xd419('0x4e')][_0xd419('0x4f')]({'plain':!![]});if(!_0x358128)throw new Error(_0xd419('0x50'));if(_0x358128[_0xd419('0x51')]===_0xd419('0x4e')){var _0xb3f6a2=_0x5c3b8d[_0xd419('0x4f')]({'plain':!![]});var _0x5b0150=_0xd419('0x52');return db[_0xd419('0x53')][_0xd419('0x4c')]({'where':{'name':_0x5b0150,'userProfileId':_0x358128[_0xd419('0x54')]},'raw':!![]})[_0xd419('0x27')](function(_0x214e55){if(_0x214e55&&_0x214e55[_0xd419('0x55')]===0x0){return db[_0xd419('0x56')][_0xd419('0x4d')]({'name':_0xb3f6a2['name'],'resourceId':_0xb3f6a2['id'],'type':_0x214e55[_0xd419('0x2a')],'sectionId':_0x214e55['id']},{})[_0xd419('0x27')](function(){return _0x5c3b8d;});}else{return _0x5c3b8d;}})[_0xd419('0x48')](function(_0x454361){logger[_0xd419('0x28')](_0xd419('0x57'),_0x454361);throw _0x454361;});}return _0x5c3b8d;})['then'](respondWithResult(_0x6b1ec0,0xc9))[_0xd419('0x48')](handleError(_0x6b1ec0,null));};exports['update']=function(_0x26aada,_0x283b84){if(_0x26aada[_0xd419('0x58')]['id']){delete _0x26aada[_0xd419('0x58')]['id'];}return db[_0xd419('0x2e')]['find']({'where':{'id':_0x26aada[_0xd419('0x4a')]['id']}})['then'](handleEntityNotFound(_0x283b84,null))[_0xd419('0x27')](saveUpdates(_0x26aada['body'],null))[_0xd419('0x27')](respondWithResult(_0x283b84,null))[_0xd419('0x48')](handleError(_0x283b84,null));};exports[_0xd419('0x59')]=function(_0x545b02,_0x1db79d){var _0x453edd=_0x545b02['params']['id'];var _0x1f0b5a=[];return db[_0xd419('0x5a')]['transaction'](function(_0x33ed8b){var _0x27bf61=_0xd419('0x5b')+_0x453edd;return db[_0xd419('0x5a')][_0xd419('0x33')](_0x27bf61,{'type':db[_0xd419('0x5c')][_0xd419('0x5d')][_0xd419('0x5e')],'raw':!![],'transaction':_0x33ed8b})['then'](function(_0x129ae8){_0x1f0b5a=_[_0xd419('0x2d')](_0x129ae8,function(_0x5e1ffa){return Number(_0x5e1ffa['UserId']);});})[_0xd419('0x27')](function(){var _0x58bc4a=_0xd419('0x5f')+_0x453edd;return db['sequelize'][_0xd419('0x33')](_0x58bc4a,{'type':db[_0xd419('0x5c')][_0xd419('0x5d')][_0xd419('0x5e')],'raw':!![],'transaction':_0x33ed8b});})[_0xd419('0x27')](function(_0x46d091){var _0x1400c2=_['map'](_0x46d091,function(_0x1ec6c9){return Number(_0x1ec6c9[_0xd419('0x60')]);});return db[_0xd419('0x61')][_0xd419('0x59')]({'where':{'UserId':{'$in':_0x1f0b5a},'VoiceQueueId':{'$in':_0x1400c2}},'transaction':_0x33ed8b});})[_0xd419('0x27')](function(){var _0x5efedc=_0xd419('0x62')+_0x453edd;return db[_0xd419('0x5a')][_0xd419('0x33')](_0x5efedc,{'type':db[_0xd419('0x5c')][_0xd419('0x5d')][_0xd419('0x5e')],'raw':!![],'transaction':_0x33ed8b});})[_0xd419('0x27')](function(_0x2cc5d5){var _0x1e25f7=_[_0xd419('0x2d')](_0x2cc5d5,function(_0x225df6){return Number(_0x225df6[_0xd419('0x63')]);});return db[_0xd419('0x64')]['destroy']({'where':{'UserId':{'$in':_0x1f0b5a},'MailQueueId':{'$in':_0x1e25f7}},'transaction':_0x33ed8b});})[_0xd419('0x27')](function(){var _0x34033b=_0xd419('0x65')+_0x453edd;return db[_0xd419('0x5a')][_0xd419('0x33')](_0x34033b,{'type':db[_0xd419('0x5c')][_0xd419('0x5d')]['SELECT'],'raw':!![],'transaction':_0x33ed8b});})['then'](function(_0x12bb7c){var _0x29a260=_[_0xd419('0x2d')](_0x12bb7c,function(_0x21bfa5){return Number(_0x21bfa5['SmsQueueId']);});return db[_0xd419('0x66')][_0xd419('0x59')]({'where':{'UserId':{'$in':_0x1f0b5a},'SmsQueueId':{'$in':_0x29a260}},'transaction':_0x33ed8b});})[_0xd419('0x27')](function(){var _0x2c55ff='SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20'+_0x453edd;return db[_0xd419('0x5a')][_0xd419('0x33')](_0x2c55ff,{'type':db['Sequelize'][_0xd419('0x5d')][_0xd419('0x5e')],'raw':!![],'transaction':_0x33ed8b});})[_0xd419('0x27')](function(_0x49fd71){var _0x4d0ca1=_[_0xd419('0x2d')](_0x49fd71,function(_0x3b0f52){return Number(_0x3b0f52['ChatQueueId']);});return db[_0xd419('0x67')][_0xd419('0x59')]({'where':{'UserId':{'$in':_0x1f0b5a},'ChatQueueId':{'$in':_0x4d0ca1}},'transaction':_0x33ed8b});})[_0xd419('0x27')](function(){var _0x4f09da=_0xd419('0x68')+_0x453edd;return db['sequelize']['query'](_0x4f09da,{'type':db[_0xd419('0x5c')][_0xd419('0x5d')][_0xd419('0x5e')],'raw':!![],'transaction':_0x33ed8b});})[_0xd419('0x27')](function(_0xb790db){var _0x7a4619=_[_0xd419('0x2d')](_0xb790db,function(_0x4ee775){return Number(_0x4ee775[_0xd419('0x69')]);});return db[_0xd419('0x6a')][_0xd419('0x59')]({'where':{'UserId':{'$in':_0x1f0b5a},'FaxQueueId':{'$in':_0x7a4619}},'transaction':_0x33ed8b});})['then'](function(){var _0x3a7303=_0xd419('0x6b')+_0x453edd;return db[_0xd419('0x5a')][_0xd419('0x33')](_0x3a7303,{'type':db[_0xd419('0x5c')][_0xd419('0x5d')][_0xd419('0x5e')],'raw':!![],'transaction':_0x33ed8b});})['then'](function(_0x4caabc){var _0x558a40=_[_0xd419('0x2d')](_0x4caabc,function(_0x934a7d){return Number(_0x934a7d[_0xd419('0x6c')]);});return db[_0xd419('0x6d')][_0xd419('0x59')]({'where':{'UserId':{'$in':_0x1f0b5a},'OpenchannelQueueId':{'$in':_0x558a40}},'transaction':_0x33ed8b});})[_0xd419('0x27')](function(){var _0x5ef70e=_0xd419('0x6e')+_0x453edd;return db['sequelize'][_0xd419('0x33')](_0x5ef70e,{'type':db[_0xd419('0x5c')][_0xd419('0x5d')][_0xd419('0x5e')],'raw':!![],'transaction':_0x33ed8b});})['then'](function(_0x4e8320){var _0xa99d3d=_[_0xd419('0x2d')](_0x4e8320,function(_0x2aa67b){return Number(_0x2aa67b[_0xd419('0x6f')]);});return db['UserWhatsappQueue'][_0xd419('0x59')]({'where':{'UserId':{'$in':_0x1f0b5a},'WhatsappQueueId':{'$in':_0xa99d3d}},'transaction':_0x33ed8b});})['then'](function(){return db[_0xd419('0x70')][_0xd419('0x4c')]({'where':{'TeamId':_0x453edd}});})[_0xd419('0x27')](function(_0x513c96){if(_0x513c96===null){return;}return db[_0xd419('0x71')]['destroy']({'where':{'UserId':{'$in':_0x1f0b5a},'VoicePrefixId':_0x513c96[_0xd419('0x72')]},'transaction':_0x33ed8b});})['then'](function(){return db[_0xd419('0x2e')]['destroy']({'where':{'id':_0x453edd},'cascade':!![],'transaction':_0x33ed8b});})[_0xd419('0x27')](function(_0x1f6cb8){if(_0x1f6cb8===0x0){_0x1db79d[_0xd419('0x73')](0x194);}else{return db[_0xd419('0x56')][_0xd419('0x59')]({'where':{'type':_0xd419('0x52'),'resourceId':_0x453edd},'cascade':!![],'transaction':_0x33ed8b})[_0xd419('0x27')](function(){_0x1db79d[_0xd419('0x1d')](0xcc)['end']();});}})[_0xd419('0x48')](function(_0x39514f){_0x1db79d['status'](0x1f4)[_0xd419('0x2b')](_0x39514f);});});};exports[_0xd419('0x74')]=function(_0x52a9c2,_0x3b3b80,_0x314688){return db['Team'][_0xd419('0x75')]({'where':{'id':_0x52a9c2['params']['id']}})[_0xd419('0x27')](handleEntityNotFound(_0x3b3b80,null))[_0xd419('0x27')](function(_0x1f94c4){if(!_0x52a9c2['query'][_0xd419('0x76')]||!utils['isValidChannel'](_0x52a9c2['query'][_0xd419('0x76')])){throw new db[(_0xd419('0x5c'))][(_0xd419('0x77'))](_0xd419('0x78'));}var _0x39c22b={};var _0x4b095d={};_0x4b095d[_0xd419('0x32')]=_['keys'](db[_['capitalize'](_0x52a9c2['query'][_0xd419('0x76')][_0xd419('0x79')]())+_0xd419('0x7a')][_0xd419('0x2f')]);_0x4b095d[_0xd419('0x33')]=_['keys'](_0x52a9c2[_0xd419('0x33')]);_0x4b095d['filters']=_['intersection'](_0x4b095d[_0xd419('0x32')],_0x4b095d[_0xd419('0x33')]);_0x39c22b[_0xd419('0x35')]=_['intersection'](_0x4b095d[_0xd419('0x32')],qs['fields'](_0x52a9c2['query'][_0xd419('0x36')]));_0x39c22b[_0xd419('0x35')]=_0x39c22b[_0xd419('0x35')][_0xd419('0x37')]?_0x39c22b[_0xd419('0x35')]:_0x4b095d[_0xd419('0x32')];_0x39c22b['limit']=qs[_0xd419('0x3a')](_0x52a9c2[_0xd419('0x33')][_0xd419('0x3a')]);_0x39c22b['offset']=qs[_0xd419('0x20')](_0x52a9c2[_0xd419('0x33')][_0xd419('0x20')]);_0x39c22b[_0xd419('0x3b')]=qs[_0xd419('0x3c')](_0x52a9c2[_0xd419('0x33')][_0xd419('0x3c')]);_0x39c22b[_0xd419('0x3d')]=qs[_0xd419('0x3e')](_[_0xd419('0x3f')](_0x52a9c2['query'],_0x4b095d[_0xd419('0x3e')]));_0x39c22b=_[_0xd419('0x40')]({},_0x39c22b,_0x52a9c2[_0xd419('0x44')]);return _0x1f94c4[_0xd419('0x4f')+_['capitalize'](_0x52a9c2['query'][_0xd419('0x76')][_0xd419('0x79')]())+_0xd419('0x7b')](_0x39c22b);})[_0xd419('0x27')](respondWithResult(_0x3b3b80,null))[_0xd419('0x48')](handleError(_0x3b3b80,null));};exports['addQueues']=function(_0x5b3420,_0x4f7a7b,_0x441852){return db[_0xd419('0x2e')][_0xd419('0x75')]({'where':{'id':_0x5b3420['params']['id']}})[_0xd419('0x27')](function(_0x2733ca){if(_0x2733ca){if(!_0x5b3420[_0xd419('0x58')]['channel']||!utils['isValidChannel'](_0x5b3420[_0xd419('0x58')][_0xd419('0x76')])){throw new db[(_0xd419('0x5c'))][(_0xd419('0x77'))](_0xd419('0x78'));}return _0x2733ca[_0xd419('0x7c')+_['capitalize'](_0x5b3420['body'][_0xd419('0x76')]['toLowerCase']())+_0xd419('0x7b')](_0x5b3420['body'][_0xd419('0x7d')]);}return null;})['then'](handleEntityNotFound(_0x4f7a7b,null))[_0xd419('0x27')](respondWithStatusCode(_0x4f7a7b,null))[_0xd419('0x48')](handleError(_0x4f7a7b,null));};exports[_0xd419('0x7e')]=function(_0x10a4ef,_0x21b82c,_0xac28e1){return db[_0xd419('0x2e')]['findOne']({'where':{'id':_0x10a4ef['params']['id']}})['then'](function(_0x26e7af){if(_0x26e7af){if(!_0x10a4ef[_0xd419('0x33')][_0xd419('0x76')]||!utils[_0xd419('0x7f')](_0x10a4ef[_0xd419('0x33')]['channel'])){throw new db[(_0xd419('0x5c'))]['ValidationError'](_0xd419('0x78'));}return _0x26e7af[_0xd419('0x80')+_[_0xd419('0x81')](_0x10a4ef[_0xd419('0x33')][_0xd419('0x76')][_0xd419('0x79')]())+_0xd419('0x7b')](_0x10a4ef[_0xd419('0x33')][_0xd419('0x7d')]);}return null;})['then'](handleEntityNotFound(_0x21b82c,null))[_0xd419('0x27')](respondWithStatusCode(_0x21b82c,null))[_0xd419('0x48')](handleError(_0x21b82c,null));};exports[_0xd419('0x82')]=function(_0x5094d4,_0x533dfb){var _0x29e2dc=_['isArray'](_0x5094d4[_0xd419('0x58')][_0xd419('0x7d')])?_0x5094d4[_0xd419('0x58')][_0xd419('0x7d')]:[_0x5094d4['body'][_0xd419('0x7d')]];var _0x429dbd=_0x5094d4[_0xd419('0x4a')]['id'];return db[_0xd419('0x2e')][_0xd419('0x4c')]({'where':{'id':_0x429dbd}})[_0xd419('0x27')](handleEntityNotFound(_0x533dfb,null))['then'](function(_0xc0ef62){if(_0xc0ef62){var _0x2090fd=['Voice','Chat',_0xd419('0x83'),_0xd419('0x84'),_0xd419('0x85'),_0xd419('0x86'),_0xd419('0x87')];return db[_0xd419('0x5a')][_0xd419('0x88')](function(_0x5c67e2){var _0x2bf1c7=_['map'](_0x2090fd,function(_0x2fdaaf){var _0x1747ff={'attributes':['id',_0xd419('0x2a')]};if(_0x2fdaaf===_0xd419('0x89')){_0x1747ff[_0xd419('0x8a')]={'attributes':[_0xd419('0x8b')]};}return _0xc0ef62[_0xd419('0x4f')+_0x2fdaaf+_0xd419('0x7b')](_0x1747ff)[_0xd419('0x27')](function(_0x43e616){var _0x13d113=_[_0xd419('0x2d')](_0x43e616,function(_0x10aef0){var _0x5e4696=_[_0xd419('0x2d')](_0x29e2dc,function(_0xbac421){var _0x291ee5={'where':{'UserId':_0xbac421,[_0x2fdaaf+_0xd419('0x8c')]:_0x10aef0['id']},'transaction':_0x5c67e2};if(_0x2fdaaf===_0xd419('0x89')){_0x291ee5[_0xd419('0x19')]={'penalty':_0x10aef0[_0xd419('0x8d')]['penalty']};}return db[_0xd419('0x8e')+_0x2fdaaf+'Queue']['findOrCreate'](_0x291ee5)[_0xd419('0x27')](function(){socket[_0xd419('0x8f')]('user'+_0x2fdaaf+_0xd419('0x90'),{'UserId':_0xbac421,[_0x2fdaaf+_0xd419('0x8c')]:_0x10aef0['id']});if(_0x2fdaaf!=='Voice'){return;}return db[_0xd419('0x8e')][_0xd419('0x47')]({'where':{'id':_0x29e2dc,'online':0x1},'attributes':['id',_0xd419('0x2a'),_0xd419('0x91'),_0xd419('0x92'),'interface'],'raw':!![]})[_0xd419('0x27')](function(_0x106767){var _0x1d182c=_['map'](_0x106767,function(_0x414dd4){return db[_0xd419('0x93')]['upsert']({'membername':_0x414dd4['name'],'UserId':_0x414dd4['id'],'queue_name':_0x10aef0['name'],'VoiceQueueId':_0x10aef0['id'],'interface':_[_0xd419('0x94')](_0x414dd4['interface'])?util['format'](_0xd419('0x95'),_0x414dd4['name']):_0x414dd4[_0xd419('0x96')],'paused':_0x414dd4['voicePause']||![],'penalty':_0x10aef0[_0xd419('0x8d')][_0xd419('0x8b')]},{'transaction':_0x5c67e2});});return Promise[_0xd419('0x97')](_0x1d182c);});});});return Promise[_0xd419('0x97')](_0x5e4696);});return Promise[_0xd419('0x97')](_0x13d113);})[_0xd419('0x27')](function(){return db[_0xd419('0x70')][_0xd419('0x75')]({'where':{'teamId':_0x429dbd}})[_0xd419('0x27')](function(_0x38abba){if(_0x38abba){var _0x4a0bc1=_[_0xd419('0x2d')](_0x29e2dc,function(_0x5468a1){db[_0xd419('0x71')]['upsert']({'UserId':_0x5468a1,'VoicePrefixId':_0x38abba[_0xd419('0x72')]});});return Promise[_0xd419('0x97')](_0x4a0bc1);}});});});return Promise[_0xd419('0x97')](_0x2bf1c7)[_0xd419('0x27')](function(){return _0xc0ef62[_0xd419('0x82')](_0x29e2dc,{'transaction':_0x5c67e2})[_0xd419('0x98')](function(_0xa83a1c){return _0xa83a1c;});});});}})['then'](respondWithResult(_0x533dfb,null))['catch'](handleError(_0x533dfb,null));};exports[_0xd419('0x99')]=function(_0x23054e,_0x23ac92){var _0xf3f16d=_[_0xd419('0x9a')](_0x23054e['query'][_0xd419('0x7d')])?_0x23054e['query']['ids']:[_0x23054e[_0xd419('0x33')]['ids']];var _0x7d8bbd=_0x23054e[_0xd419('0x4a')]['id'];return db['Team']['find']({'where':{'id':_0x7d8bbd}})[_0xd419('0x27')](handleEntityNotFound(_0x23ac92,null))[_0xd419('0x27')](function(_0x427213){if(_0x427213){var _0x13d5b8=[_0xd419('0x89'),_0xd419('0x9b'),_0xd419('0x83'),_0xd419('0x84'),_0xd419('0x85'),_0xd419('0x86'),_0xd419('0x87')];return db[_0xd419('0x5a')]['transaction'](function(_0x510b86){var _0x28c1eb=_[_0xd419('0x2d')](_0x13d5b8,function(_0x4c21e9){var _0xb9888d={'attributes':['id',_0xd419('0x2a')]};return _0x427213[_0xd419('0x4f')+_0x4c21e9+'Queues'](_0xb9888d)[_0xd419('0x27')](function(_0x567597){var _0x27cb59=_[_0xd419('0x2d')](_0x567597,function(_0x25ca15){return _0x25ca15[_0xd419('0x99')](_0xf3f16d,{'transaction':_0x510b86})['then'](function(){var _0x169d2b=_[_0xd419('0x2d')](_0xf3f16d,function(_0x5f0145){socket['emit'](_0xd419('0x4e')+_0x4c21e9+_0xd419('0x9c'),{'UserId':Number(_0x5f0145),[_0x4c21e9+'QueueId']:_0x25ca15['id']});if(_0x4c21e9!==_0xd419('0x89')){return;}return db[_0xd419('0x93')][_0xd419('0x59')]({'where':{'VoiceQueueId':_0x25ca15['id'],'UserId':_0x5f0145},'transaction':_0x510b86});});return Promise[_0xd419('0x97')](_0x169d2b);});});return Promise[_0xd419('0x97')](_0x27cb59);});});return Promise[_0xd419('0x97')](_0x28c1eb)['then'](function(){return _0x427213[_0xd419('0x99')](_0xf3f16d,{'transaction':_0x510b86});})[_0xd419('0x27')](function(){return db['TeamVoicePrefix'][_0xd419('0x75')]({'where':{'teamId':_0x7d8bbd}})[_0xd419('0x27')](function(_0x3c264d){if(_0x3c264d){var _0xabbeab=_[_0xd419('0x2d')](_0xf3f16d,function(_0x4cb58f){db['UserVoicePrefix'][_0xd419('0x59')]({'where':{'UserId':_0x4cb58f,'VoicePrefixId':_0x3c264d[_0xd419('0x72')]}});});return Promise[_0xd419('0x97')](_0xabbeab);}});});});}})['then'](respondWithStatusCode(_0x23ac92,null))[_0xd419('0x48')](handleError(_0x23ac92,null));};exports['getAgents']=function(_0xe312ac,_0x52bc2b,_0x5d27cd){var _0x4d01f0={};var _0x305822={};var _0x74ce36;var _0x231290;return db[_0xd419('0x2e')][_0xd419('0x75')]({'where':{'id':_0xe312ac['params']['id']}})[_0xd419('0x27')](handleEntityNotFound(_0x52bc2b,null))['then'](function(_0x59c089){if(_0x59c089){_0x74ce36=_0x59c089;_0x305822[_0xd419('0x32')]=_['keys'](db['User'][_0xd419('0x2f')]);_0x305822['query']=_['keys'](_0xe312ac[_0xd419('0x33')]);_0x305822[_0xd419('0x3e')]=_[_0xd419('0x34')](_0x305822['model'],_0x305822[_0xd419('0x33')]);_0x4d01f0['attributes']=_[_0xd419('0x34')](_0x305822['model'],qs['fields'](_0xe312ac[_0xd419('0x33')][_0xd419('0x36')]));_0x4d01f0[_0xd419('0x35')]=_0x4d01f0[_0xd419('0x35')][_0xd419('0x37')]?_0x4d01f0[_0xd419('0x35')]:_0x305822[_0xd419('0x32')];_0x4d01f0['order']=qs[_0xd419('0x3c')](_0xe312ac[_0xd419('0x33')]['sort']);_0x4d01f0['where']=qs[_0xd419('0x3e')](_[_0xd419('0x3f')](_0xe312ac[_0xd419('0x33')],_0x305822[_0xd419('0x3e')]));if(_0xe312ac[_0xd419('0x33')][_0xd419('0x43')]){_0x4d01f0[_0xd419('0x3d')]=_[_0xd419('0x40')](_0x4d01f0['where'],{'$or':_[_0xd419('0x2d')](_0x4d01f0[_0xd419('0x35')],function(_0x53f5b9){var _0x44835b={};_0x44835b[_0x53f5b9]={'$like':'%'+_0xe312ac[_0xd419('0x33')][_0xd419('0x43')]+'%'};return _0x44835b;})});}_0x4d01f0=_[_0xd419('0x40')]({},_0x4d01f0,_0xe312ac[_0xd419('0x44')]);return _0x74ce36[_0xd419('0x9d')](_0x4d01f0);}})[_0xd419('0x27')](function(_0x3e3c9a){if(_0x3e3c9a){_0x231290=_0x3e3c9a['length'];if(!_0xe312ac[_0xd419('0x33')]['hasOwnProperty'](_0xd419('0x39'))){_0x4d01f0[_0xd419('0x3a')]=qs[_0xd419('0x3a')](_0xe312ac[_0xd419('0x33')][_0xd419('0x3a')]);_0x4d01f0[_0xd419('0x20')]=qs[_0xd419('0x20')](_0xe312ac['query'][_0xd419('0x20')]);}return _0x74ce36['getAgents'](_0x4d01f0);}})[_0xd419('0x27')](function(_0xa3ee53){if(_0xa3ee53){return _0xa3ee53?{'count':_0x231290,'rows':_0xa3ee53}:null;}})[_0xd419('0x27')](respondWithResult(_0x52bc2b,null))['catch'](handleError(_0x52bc2b,null));};