Built motion from commit 9d1906d1.|2.5.40
[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 _0xadb2=['Team','findAll','catch','rawAttributes','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','Teams','userProfileId','UserProfileResource','find','destroy','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','SELECT\x20MailQueueId\x20FROM\x20team_has_mail_queues\x20WHERE\x20TeamId\x20=\x20','MailQueueId','UserMailQueue','SELECT\x20SmsQueueId\x20FROM\x20team_has_sms_queues\x20WHERE\x20TeamId\x20=\x20','SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20','ChatQueueId','UserChatQueue','SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20','FaxQueueId','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','getQueues','findOne','channel','isValidChannel','ValidationError','Unknown\x20channel','capitalize','toLowerCase','Queue','Queues','add','ids','removeQueues','remove','addAgents','Voice','Fax','Whatsapp','through','penalty','QueueId','TeamVoiceQueue','User','emit','Queue:save','voicePause','interface','UserVoiceQueueRt','upsert','format','SIP/%s','all','spread','removeAgents','Chat','Mail','Sms','Openchannel','Queue:remove','getAgents','hasOwnProperty','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','redis','localhost','./team.socket','register','sendStatus','end','json','offset','undefined','limit','count','set','save','update','error','stack','name','status','index','fieldName','type','model','query','keys','filters','intersection','fields','attributes','length','nolimit','order','sort','pick','where','map','filter','merge','options','then','includeAll','include'];(function(_0x406335,_0x113eb5){var _0x26b4ef=function(_0xbc50d1){while(--_0xbc50d1){_0x406335['push'](_0x406335['shift']());}};_0x26b4ef(++_0x113eb5);}(_0xadb2,0xe6));var _0x2adb=function(_0x129041,_0x3e5468){_0x129041=_0x129041-0x0;var _0x2a8b1d=_0xadb2[_0x129041];return _0x2a8b1d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2adb('0x0'));var zipdir=require(_0x2adb('0x1'));var jsonpatch=require(_0x2adb('0x2'));var rp=require('request-promise');var moment=require(_0x2adb('0x3'));var BPromise=require(_0x2adb('0x4'));var Mustache=require(_0x2adb('0x5'));var util=require('util');var path=require(_0x2adb('0x6'));var sox=require(_0x2adb('0x7'));var csv=require(_0x2adb('0x8'));var ejs=require(_0x2adb('0x9'));var fs=require('fs');var fs_extra=require(_0x2adb('0xa'));var _=require(_0x2adb('0xb'));var squel=require('squel');var crypto=require(_0x2adb('0xc'));var jsforce=require(_0x2adb('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x2adb('0x8'));var querystring=require(_0x2adb('0xe'));var Papa=require(_0x2adb('0xf'));var Redis=require(_0x2adb('0x10'));var authService=require(_0x2adb('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x2adb('0x12'));var logger=require(_0x2adb('0x13'))('api');var utils=require(_0x2adb('0x14'));var config=require(_0x2adb('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x2adb('0x16'))['db'];config[_0x2adb('0x17')]=_['defaults'](config[_0x2adb('0x17')],{'host':_0x2adb('0x18'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x2adb('0x17')]));require(_0x2adb('0x19'))[_0x2adb('0x1a')](socket);function respondWithStatusCode(_0x543018,_0x11b7e4){_0x11b7e4=_0x11b7e4||0xcc;return function(_0x7befd1){if(_0x7befd1){return _0x543018[_0x2adb('0x1b')](_0x11b7e4);}return _0x543018['status'](_0x11b7e4)[_0x2adb('0x1c')]();};}function respondWithResult(_0x2b7411,_0x257fe1){_0x257fe1=_0x257fe1||0xc8;return function(_0x1f0a33){if(_0x1f0a33){return _0x2b7411['status'](_0x257fe1)[_0x2adb('0x1d')](_0x1f0a33);}};}function respondWithFilteredResult(_0x403c58,_0x471140){return function(_0x5a2085){if(_0x5a2085){var _0x202a7c=typeof _0x471140[_0x2adb('0x1e')]===_0x2adb('0x1f')&&typeof _0x471140[_0x2adb('0x20')]==='undefined';var _0x1d43ca=_0x5a2085['count'];var _0x3e1a6c=_0x202a7c?0x0:_0x471140[_0x2adb('0x1e')];var _0x5d8d13=_0x202a7c?_0x5a2085[_0x2adb('0x21')]:_0x471140[_0x2adb('0x1e')]+_0x471140[_0x2adb('0x20')];var _0x50b50e;if(_0x5d8d13>=_0x1d43ca){_0x5d8d13=_0x1d43ca;_0x50b50e=0xc8;}else{_0x50b50e=0xce;}_0x403c58['status'](_0x50b50e);return _0x403c58[_0x2adb('0x22')]('Content-Range',_0x3e1a6c+'-'+_0x5d8d13+'/'+_0x1d43ca)[_0x2adb('0x1d')](_0x5a2085);}return null;};}function patchUpdates(_0x4f4184){return function(_0x42d0ea){try{jsonpatch['apply'](_0x42d0ea,_0x4f4184,!![]);}catch(_0x1e30ce){return BPromise['reject'](_0x1e30ce);}return _0x42d0ea[_0x2adb('0x23')]();};}function saveUpdates(_0xb74693,_0x45c5b1){return function(_0x2ce931){if(_0x2ce931){return _0x2ce931[_0x2adb('0x24')](_0xb74693)['then'](function(_0x27e847){return _0x27e847;});}return null;};}function handleEntityNotFound(_0x2c7deb,_0x5ea2fb){return function(_0x417155){if(!_0x417155){_0x2c7deb[_0x2adb('0x1b')](0x194);}return _0x417155;};}function handleError(_0x59024d,_0x4b59c5){_0x4b59c5=_0x4b59c5||0x1f4;return function(_0x3d091a){logger[_0x2adb('0x25')](_0x3d091a[_0x2adb('0x26')]);if(_0x3d091a['name']){delete _0x3d091a[_0x2adb('0x27')];}_0x59024d[_0x2adb('0x28')](_0x4b59c5)['send'](_0x3d091a);};}exports[_0x2adb('0x29')]=function(_0x3cd8ba,_0x583c06){var _0x3e78f4={},_0xd11b18={},_0x537349={'count':0x0,'rows':[]};var _0x39908=_['map'](db['Team']['rawAttributes'],function(_0x44fcd1){return{'name':_0x44fcd1[_0x2adb('0x2a')],'type':_0x44fcd1[_0x2adb('0x2b')]['key']};});_0xd11b18[_0x2adb('0x2c')]=_['map'](_0x39908,_0x2adb('0x27'));_0xd11b18[_0x2adb('0x2d')]=_[_0x2adb('0x2e')](_0x3cd8ba[_0x2adb('0x2d')]);_0xd11b18[_0x2adb('0x2f')]=_['intersection'](_0xd11b18[_0x2adb('0x2c')],_0xd11b18[_0x2adb('0x2d')]);_0x3e78f4['attributes']=_[_0x2adb('0x30')](_0xd11b18[_0x2adb('0x2c')],qs[_0x2adb('0x31')](_0x3cd8ba[_0x2adb('0x2d')][_0x2adb('0x31')]));_0x3e78f4[_0x2adb('0x32')]=_0x3e78f4[_0x2adb('0x32')][_0x2adb('0x33')]?_0x3e78f4[_0x2adb('0x32')]:_0xd11b18[_0x2adb('0x2c')];if(!_0x3cd8ba['query']['hasOwnProperty'](_0x2adb('0x34'))){_0x3e78f4[_0x2adb('0x20')]=qs[_0x2adb('0x20')](_0x3cd8ba[_0x2adb('0x2d')][_0x2adb('0x20')]);_0x3e78f4[_0x2adb('0x1e')]=qs[_0x2adb('0x1e')](_0x3cd8ba[_0x2adb('0x2d')][_0x2adb('0x1e')]);}_0x3e78f4[_0x2adb('0x35')]=qs[_0x2adb('0x36')](_0x3cd8ba[_0x2adb('0x2d')][_0x2adb('0x36')]);_0x3e78f4['where']=qs['filters'](_[_0x2adb('0x37')](_0x3cd8ba[_0x2adb('0x2d')],_0xd11b18[_0x2adb('0x2f')]),_0x39908);if(_0x3cd8ba[_0x2adb('0x2d')]['filter']){_0x3e78f4[_0x2adb('0x38')]=_['merge'](_0x3e78f4[_0x2adb('0x38')],{'$or':_[_0x2adb('0x39')](_0x39908,function(_0x1f3c5a){if(_0x1f3c5a[_0x2adb('0x2b')]!=='VIRTUAL'){var _0x94142e={};_0x94142e[_0x1f3c5a[_0x2adb('0x27')]]={'$like':'%'+_0x3cd8ba[_0x2adb('0x2d')][_0x2adb('0x3a')]+'%'};return _0x94142e;}})});}_0x3e78f4=_[_0x2adb('0x3b')]({},_0x3e78f4,_0x3cd8ba[_0x2adb('0x3c')]);var _0x50e75a={'where':_0x3e78f4[_0x2adb('0x38')]};return db['Team'][_0x2adb('0x21')](_0x50e75a)[_0x2adb('0x3d')](function(_0x19499f){_0x537349[_0x2adb('0x21')]=_0x19499f;if(_0x3cd8ba[_0x2adb('0x2d')][_0x2adb('0x3e')]){_0x3e78f4[_0x2adb('0x3f')]=[{'all':!![]}];}return db[_0x2adb('0x40')][_0x2adb('0x41')](_0x3e78f4);})['then'](function(_0x9a3c55){_0x537349['rows']=_0x9a3c55;return _0x537349;})['then'](respondWithFilteredResult(_0x583c06,_0x3e78f4))[_0x2adb('0x42')](handleError(_0x583c06,null));};exports['show']=function(_0x3b1028,_0x1e59f3){var _0x29feab={'raw':![],'where':{'id':_0x3b1028['params']['id']}},_0x235e14={};_0x235e14[_0x2adb('0x2c')]=_[_0x2adb('0x2e')](db['Team'][_0x2adb('0x43')]);_0x235e14[_0x2adb('0x2d')]=_[_0x2adb('0x2e')](_0x3b1028[_0x2adb('0x2d')]);_0x235e14[_0x2adb('0x2f')]=_[_0x2adb('0x30')](_0x235e14[_0x2adb('0x2c')],_0x235e14[_0x2adb('0x2d')]);_0x29feab['attributes']=_[_0x2adb('0x30')](_0x235e14[_0x2adb('0x2c')],qs['fields'](_0x3b1028[_0x2adb('0x2d')][_0x2adb('0x31')]));_0x29feab[_0x2adb('0x32')]=_0x29feab[_0x2adb('0x32')][_0x2adb('0x33')]?_0x29feab['attributes']:_0x235e14[_0x2adb('0x2c')];if(_0x3b1028['query'][_0x2adb('0x3e')]){_0x29feab[_0x2adb('0x3f')]=[{'all':!![]}];}_0x29feab=_[_0x2adb('0x3b')]({},_0x29feab,_0x3b1028[_0x2adb('0x3c')]);return db[_0x2adb('0x40')]['find'](_0x29feab)[_0x2adb('0x3d')](handleEntityNotFound(_0x1e59f3,null))[_0x2adb('0x3d')](respondWithResult(_0x1e59f3,null))[_0x2adb('0x42')](handleError(_0x1e59f3,null));};exports[_0x2adb('0x44')]=function(_0x2f82af,_0x251401){return db[_0x2adb('0x40')][_0x2adb('0x44')](_0x2f82af[_0x2adb('0x45')],{})[_0x2adb('0x3d')](function(_0x5bdbb2){var _0x205d44=_0x2f82af['user'][_0x2adb('0x46')]({'plain':!![]});if(!_0x205d44)throw new Error(_0x2adb('0x47'));if(_0x205d44['role']===_0x2adb('0x48')){var _0x13931c=_0x5bdbb2[_0x2adb('0x46')]({'plain':!![]});var _0x2f846b=_0x2adb('0x49');return db['UserProfileSection']['find']({'where':{'name':_0x2f846b,'userProfileId':_0x205d44[_0x2adb('0x4a')]},'raw':!![]})[_0x2adb('0x3d')](function(_0x2ed9b3){if(_0x2ed9b3&&_0x2ed9b3['autoAssociation']===0x0){return db[_0x2adb('0x4b')][_0x2adb('0x44')]({'name':_0x13931c[_0x2adb('0x27')],'resourceId':_0x13931c['id'],'type':_0x2ed9b3[_0x2adb('0x27')],'sectionId':_0x2ed9b3['id']},{})[_0x2adb('0x3d')](function(){return _0x5bdbb2;});}else{return _0x5bdbb2;}})[_0x2adb('0x42')](function(_0x2ebe58){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2ebe58);throw _0x2ebe58;});}return _0x5bdbb2;})[_0x2adb('0x3d')](respondWithResult(_0x251401,0xc9))[_0x2adb('0x42')](handleError(_0x251401,null));};exports[_0x2adb('0x24')]=function(_0x4a06b3,_0x1583a8){if(_0x4a06b3['body']['id']){delete _0x4a06b3[_0x2adb('0x45')]['id'];}return db['Team'][_0x2adb('0x4c')]({'where':{'id':_0x4a06b3['params']['id']}})[_0x2adb('0x3d')](handleEntityNotFound(_0x1583a8,null))[_0x2adb('0x3d')](saveUpdates(_0x4a06b3['body'],null))[_0x2adb('0x3d')](respondWithResult(_0x1583a8,null))[_0x2adb('0x42')](handleError(_0x1583a8,null));};exports[_0x2adb('0x4d')]=function(_0x45ffbc,_0xb29530){var _0xfe8e93=_0x45ffbc[_0x2adb('0x4e')]['id'];var _0x14ef65=[];return db[_0x2adb('0x4f')][_0x2adb('0x50')](function(_0x4aff71){var _0x2cc54b=_0x2adb('0x51')+_0xfe8e93;return db[_0x2adb('0x4f')][_0x2adb('0x2d')](_0x2cc54b,{'type':db[_0x2adb('0x52')][_0x2adb('0x53')][_0x2adb('0x54')],'raw':!![],'transaction':_0x4aff71})[_0x2adb('0x3d')](function(_0x20b5ad){_0x14ef65=_['map'](_0x20b5ad,function(_0x27526f){return Number(_0x27526f[_0x2adb('0x55')]);});})[_0x2adb('0x3d')](function(){var _0x5d843e=_0x2adb('0x56')+_0xfe8e93;return db[_0x2adb('0x4f')][_0x2adb('0x2d')](_0x5d843e,{'type':db[_0x2adb('0x52')]['QueryTypes'][_0x2adb('0x54')],'raw':!![],'transaction':_0x4aff71});})[_0x2adb('0x3d')](function(_0x48d6ee){var _0x3b92c5=_[_0x2adb('0x39')](_0x48d6ee,function(_0xa2bc8){return Number(_0xa2bc8[_0x2adb('0x57')]);});return db[_0x2adb('0x58')][_0x2adb('0x4d')]({'where':{'UserId':{'$in':_0x14ef65},'VoiceQueueId':{'$in':_0x3b92c5}},'transaction':_0x4aff71});})[_0x2adb('0x3d')](function(){var _0x178115=_0x2adb('0x59')+_0xfe8e93;return db[_0x2adb('0x4f')][_0x2adb('0x2d')](_0x178115,{'type':db[_0x2adb('0x52')][_0x2adb('0x53')][_0x2adb('0x54')],'raw':!![],'transaction':_0x4aff71});})[_0x2adb('0x3d')](function(_0x1278e){var _0x4adb7e=_[_0x2adb('0x39')](_0x1278e,function(_0x5c791f){return Number(_0x5c791f[_0x2adb('0x5a')]);});return db[_0x2adb('0x5b')][_0x2adb('0x4d')]({'where':{'UserId':{'$in':_0x14ef65},'MailQueueId':{'$in':_0x4adb7e}},'transaction':_0x4aff71});})['then'](function(){var _0x47db65=_0x2adb('0x5c')+_0xfe8e93;return db[_0x2adb('0x4f')][_0x2adb('0x2d')](_0x47db65,{'type':db['Sequelize'][_0x2adb('0x53')]['SELECT'],'raw':!![],'transaction':_0x4aff71});})[_0x2adb('0x3d')](function(_0x5ae2b8){var _0x1b2df2=_['map'](_0x5ae2b8,function(_0x3907e9){return Number(_0x3907e9['SmsQueueId']);});return db['UserSmsQueue']['destroy']({'where':{'UserId':{'$in':_0x14ef65},'SmsQueueId':{'$in':_0x1b2df2}},'transaction':_0x4aff71});})[_0x2adb('0x3d')](function(){var _0x9563d4=_0x2adb('0x5d')+_0xfe8e93;return db[_0x2adb('0x4f')][_0x2adb('0x2d')](_0x9563d4,{'type':db[_0x2adb('0x52')][_0x2adb('0x53')][_0x2adb('0x54')],'raw':!![],'transaction':_0x4aff71});})[_0x2adb('0x3d')](function(_0x5e8e53){var _0x633675=_['map'](_0x5e8e53,function(_0x3fc128){return Number(_0x3fc128[_0x2adb('0x5e')]);});return db[_0x2adb('0x5f')]['destroy']({'where':{'UserId':{'$in':_0x14ef65},'ChatQueueId':{'$in':_0x633675}},'transaction':_0x4aff71});})[_0x2adb('0x3d')](function(){var _0x54b0b3=_0x2adb('0x60')+_0xfe8e93;return db[_0x2adb('0x4f')]['query'](_0x54b0b3,{'type':db[_0x2adb('0x52')][_0x2adb('0x53')]['SELECT'],'raw':!![],'transaction':_0x4aff71});})['then'](function(_0x6ff1a7){var _0x7fcf6f=_[_0x2adb('0x39')](_0x6ff1a7,function(_0x37b9af){return Number(_0x37b9af[_0x2adb('0x61')]);});return db['UserFaxQueue']['destroy']({'where':{'UserId':{'$in':_0x14ef65},'FaxQueueId':{'$in':_0x7fcf6f}},'transaction':_0x4aff71});})['then'](function(){var _0x1eefc2=_0x2adb('0x62')+_0xfe8e93;return db[_0x2adb('0x4f')][_0x2adb('0x2d')](_0x1eefc2,{'type':db[_0x2adb('0x52')][_0x2adb('0x53')][_0x2adb('0x54')],'raw':!![],'transaction':_0x4aff71});})[_0x2adb('0x3d')](function(_0x338194){var _0x4d8cd5=_[_0x2adb('0x39')](_0x338194,function(_0x451a4e){return Number(_0x451a4e[_0x2adb('0x63')]);});return db[_0x2adb('0x64')][_0x2adb('0x4d')]({'where':{'UserId':{'$in':_0x14ef65},'OpenchannelQueueId':{'$in':_0x4d8cd5}},'transaction':_0x4aff71});})['then'](function(){var _0x15e650=_0x2adb('0x65')+_0xfe8e93;return db[_0x2adb('0x4f')]['query'](_0x15e650,{'type':db[_0x2adb('0x52')]['QueryTypes'][_0x2adb('0x54')],'raw':!![],'transaction':_0x4aff71});})[_0x2adb('0x3d')](function(_0x254aba){var _0x5a8c59=_[_0x2adb('0x39')](_0x254aba,function(_0x640e52){return Number(_0x640e52[_0x2adb('0x66')]);});return db['UserWhatsappQueue'][_0x2adb('0x4d')]({'where':{'UserId':{'$in':_0x14ef65},'WhatsappQueueId':{'$in':_0x5a8c59}},'transaction':_0x4aff71});})[_0x2adb('0x3d')](function(){return db[_0x2adb('0x67')][_0x2adb('0x4c')]({'where':{'TeamId':_0xfe8e93}});})[_0x2adb('0x3d')](function(_0x1b012a){if(_0x1b012a===null){return;}return db[_0x2adb('0x68')][_0x2adb('0x4d')]({'where':{'UserId':{'$in':_0x14ef65},'VoicePrefixId':_0x1b012a[_0x2adb('0x69')]},'transaction':_0x4aff71});})[_0x2adb('0x3d')](function(){return db[_0x2adb('0x40')]['destroy']({'where':{'id':_0xfe8e93},'cascade':!![],'transaction':_0x4aff71});})[_0x2adb('0x3d')](function(_0x26338d){if(_0x26338d===0x0){_0xb29530[_0x2adb('0x1b')](0x194);}else{return db[_0x2adb('0x4b')][_0x2adb('0x4d')]({'where':{'type':'Teams','resourceId':_0xfe8e93},'cascade':!![],'transaction':_0x4aff71})[_0x2adb('0x3d')](function(){_0xb29530['status'](0xcc)[_0x2adb('0x1c')]();});}})['catch'](function(_0x7d88b7){_0xb29530['status'](0x1f4)['send'](_0x7d88b7);});});};exports[_0x2adb('0x6a')]=function(_0x1e22e6,_0x5c1157,_0x2fe692){return db[_0x2adb('0x40')][_0x2adb('0x6b')]({'where':{'id':_0x1e22e6[_0x2adb('0x4e')]['id']}})[_0x2adb('0x3d')](handleEntityNotFound(_0x5c1157,null))[_0x2adb('0x3d')](function(_0xf48cd2){if(!_0x1e22e6[_0x2adb('0x2d')][_0x2adb('0x6c')]||!utils[_0x2adb('0x6d')](_0x1e22e6[_0x2adb('0x2d')]['channel'])){throw new db[(_0x2adb('0x52'))][(_0x2adb('0x6e'))](_0x2adb('0x6f'));}var _0x3cb704={};var _0x4a37a7={};_0x4a37a7[_0x2adb('0x2c')]=_['keys'](db[_[_0x2adb('0x70')](_0x1e22e6[_0x2adb('0x2d')][_0x2adb('0x6c')][_0x2adb('0x71')]())+_0x2adb('0x72')][_0x2adb('0x43')]);_0x4a37a7[_0x2adb('0x2d')]=_[_0x2adb('0x2e')](_0x1e22e6['query']);_0x4a37a7[_0x2adb('0x2f')]=_[_0x2adb('0x30')](_0x4a37a7[_0x2adb('0x2c')],_0x4a37a7[_0x2adb('0x2d')]);_0x3cb704[_0x2adb('0x32')]=_[_0x2adb('0x30')](_0x4a37a7[_0x2adb('0x2c')],qs[_0x2adb('0x31')](_0x1e22e6[_0x2adb('0x2d')][_0x2adb('0x31')]));_0x3cb704['attributes']=_0x3cb704[_0x2adb('0x32')]['length']?_0x3cb704['attributes']:_0x4a37a7['model'];_0x3cb704[_0x2adb('0x20')]=qs['limit'](_0x1e22e6[_0x2adb('0x2d')][_0x2adb('0x20')]);_0x3cb704[_0x2adb('0x1e')]=qs[_0x2adb('0x1e')](_0x1e22e6[_0x2adb('0x2d')]['offset']);_0x3cb704['order']=qs[_0x2adb('0x36')](_0x1e22e6[_0x2adb('0x2d')][_0x2adb('0x36')]);_0x3cb704[_0x2adb('0x38')]=qs[_0x2adb('0x2f')](_[_0x2adb('0x37')](_0x1e22e6[_0x2adb('0x2d')],_0x4a37a7[_0x2adb('0x2f')]));_0x3cb704=_[_0x2adb('0x3b')]({},_0x3cb704,_0x1e22e6[_0x2adb('0x3c')]);return _0xf48cd2[_0x2adb('0x46')+_[_0x2adb('0x70')](_0x1e22e6[_0x2adb('0x2d')][_0x2adb('0x6c')]['toLowerCase']())+_0x2adb('0x73')](_0x3cb704);})[_0x2adb('0x3d')](respondWithResult(_0x5c1157,null))[_0x2adb('0x42')](handleError(_0x5c1157,null));};exports['addQueues']=function(_0x351146,_0x4c0c1f,_0x7c2735){return db['Team'][_0x2adb('0x6b')]({'where':{'id':_0x351146['params']['id']}})[_0x2adb('0x3d')](function(_0x35d638){if(_0x35d638){if(!_0x351146[_0x2adb('0x45')]['channel']||!utils[_0x2adb('0x6d')](_0x351146[_0x2adb('0x45')][_0x2adb('0x6c')])){throw new db[(_0x2adb('0x52'))]['ValidationError'](_0x2adb('0x6f'));}return _0x35d638[_0x2adb('0x74')+_[_0x2adb('0x70')](_0x351146['body'][_0x2adb('0x6c')]['toLowerCase']())+'Queues'](_0x351146[_0x2adb('0x45')][_0x2adb('0x75')]);}return null;})[_0x2adb('0x3d')](handleEntityNotFound(_0x4c0c1f,null))['then'](respondWithStatusCode(_0x4c0c1f,null))['catch'](handleError(_0x4c0c1f,null));};exports[_0x2adb('0x76')]=function(_0x4b79c4,_0x363ec0,_0x302f9f){return db['Team'][_0x2adb('0x6b')]({'where':{'id':_0x4b79c4[_0x2adb('0x4e')]['id']}})[_0x2adb('0x3d')](function(_0x14d373){if(_0x14d373){if(!_0x4b79c4[_0x2adb('0x2d')][_0x2adb('0x6c')]||!utils[_0x2adb('0x6d')](_0x4b79c4[_0x2adb('0x2d')][_0x2adb('0x6c')])){throw new db[(_0x2adb('0x52'))][(_0x2adb('0x6e'))](_0x2adb('0x6f'));}return _0x14d373[_0x2adb('0x77')+_['capitalize'](_0x4b79c4[_0x2adb('0x2d')][_0x2adb('0x6c')][_0x2adb('0x71')]())+_0x2adb('0x73')](_0x4b79c4[_0x2adb('0x2d')][_0x2adb('0x75')]);}return null;})['then'](handleEntityNotFound(_0x363ec0,null))[_0x2adb('0x3d')](respondWithStatusCode(_0x363ec0,null))['catch'](handleError(_0x363ec0,null));};exports[_0x2adb('0x78')]=function(_0x410012,_0x3125cf){var _0x300ae7=_['isArray'](_0x410012[_0x2adb('0x45')]['ids'])?_0x410012[_0x2adb('0x45')]['ids']:[_0x410012[_0x2adb('0x45')][_0x2adb('0x75')]];var _0x28607e=_0x410012[_0x2adb('0x4e')]['id'];return db[_0x2adb('0x40')][_0x2adb('0x4c')]({'where':{'id':_0x28607e}})[_0x2adb('0x3d')](handleEntityNotFound(_0x3125cf,null))['then'](function(_0x5d9d26){if(_0x5d9d26){var _0x172835=[_0x2adb('0x79'),'Chat','Mail','Sms',_0x2adb('0x7a'),'Openchannel',_0x2adb('0x7b')];return db['sequelize']['transaction'](function(_0x4e526f){var _0x3ea2cb=_['map'](_0x172835,function(_0x7dd039){var _0x3d262c={'attributes':['id',_0x2adb('0x27')]};if(_0x7dd039===_0x2adb('0x79')){_0x3d262c[_0x2adb('0x7c')]={'attributes':[_0x2adb('0x7d')]};}return _0x5d9d26[_0x2adb('0x46')+_0x7dd039+_0x2adb('0x73')](_0x3d262c)[_0x2adb('0x3d')](function(_0x3ddf5d){var _0x2d3577=_[_0x2adb('0x39')](_0x3ddf5d,function(_0x2ca7a1){var _0x5cb792=_[_0x2adb('0x39')](_0x300ae7,function(_0x434ed5){var _0x5d409c={'where':{'UserId':_0x434ed5,[_0x7dd039+_0x2adb('0x7e')]:_0x2ca7a1['id']},'transaction':_0x4e526f};if(_0x7dd039===_0x2adb('0x79')){_0x5d409c['defaults']={'penalty':_0x2ca7a1[_0x2adb('0x7f')][_0x2adb('0x7d')]};}return db[_0x2adb('0x80')+_0x7dd039+_0x2adb('0x72')]['findOrCreate'](_0x5d409c)[_0x2adb('0x3d')](function(){socket[_0x2adb('0x81')](_0x2adb('0x48')+_0x7dd039+_0x2adb('0x82'),{'UserId':_0x434ed5,[_0x7dd039+_0x2adb('0x7e')]:_0x2ca7a1['id']});if(_0x7dd039!==_0x2adb('0x79')){return;}return db[_0x2adb('0x80')][_0x2adb('0x41')]({'where':{'id':_0x300ae7,'online':0x1},'attributes':['id',_0x2adb('0x27'),'online',_0x2adb('0x83'),_0x2adb('0x84')],'raw':!![]})[_0x2adb('0x3d')](function(_0x3e9435){var _0x42bf66=_[_0x2adb('0x39')](_0x3e9435,function(_0x17c312){return db[_0x2adb('0x85')][_0x2adb('0x86')]({'membername':_0x17c312[_0x2adb('0x27')],'UserId':_0x17c312['id'],'queue_name':_0x2ca7a1[_0x2adb('0x27')],'VoiceQueueId':_0x2ca7a1['id'],'interface':_['isNil'](_0x17c312[_0x2adb('0x84')])?util[_0x2adb('0x87')](_0x2adb('0x88'),_0x17c312[_0x2adb('0x27')]):_0x17c312[_0x2adb('0x84')],'paused':_0x17c312[_0x2adb('0x83')]||![],'penalty':_0x2ca7a1[_0x2adb('0x7f')]['penalty']},{'transaction':_0x4e526f});});return Promise[_0x2adb('0x89')](_0x42bf66);});});});return Promise['all'](_0x5cb792);});return Promise[_0x2adb('0x89')](_0x2d3577);})[_0x2adb('0x3d')](function(){return db['TeamVoicePrefix'][_0x2adb('0x6b')]({'where':{'teamId':_0x28607e}})[_0x2adb('0x3d')](function(_0x54cdb5){if(_0x54cdb5){var _0x1e3f49=_['map'](_0x300ae7,function(_0x283060){db['UserVoicePrefix'][_0x2adb('0x86')]({'UserId':_0x283060,'VoicePrefixId':_0x54cdb5['VoicePrefixId']});});return Promise[_0x2adb('0x89')](_0x1e3f49);}});});});return Promise[_0x2adb('0x89')](_0x3ea2cb)[_0x2adb('0x3d')](function(){return _0x5d9d26[_0x2adb('0x78')](_0x300ae7,{'transaction':_0x4e526f})[_0x2adb('0x8a')](function(_0x5e36b1){return _0x5e36b1;});});});}})['then'](respondWithResult(_0x3125cf,null))[_0x2adb('0x42')](handleError(_0x3125cf,null));};exports[_0x2adb('0x8b')]=function(_0x24ac5b,_0x39e9a6){var _0x4db0c5=_['isArray'](_0x24ac5b['query']['ids'])?_0x24ac5b[_0x2adb('0x2d')]['ids']:[_0x24ac5b['query'][_0x2adb('0x75')]];var _0x184f06=_0x24ac5b[_0x2adb('0x4e')]['id'];return db[_0x2adb('0x40')][_0x2adb('0x4c')]({'where':{'id':_0x184f06}})['then'](handleEntityNotFound(_0x39e9a6,null))[_0x2adb('0x3d')](function(_0x5e28ba){if(_0x5e28ba){var _0xae4c73=[_0x2adb('0x79'),_0x2adb('0x8c'),_0x2adb('0x8d'),_0x2adb('0x8e'),_0x2adb('0x7a'),_0x2adb('0x8f'),_0x2adb('0x7b')];return db['sequelize'][_0x2adb('0x50')](function(_0x1a2820){var _0x19b7f6=_[_0x2adb('0x39')](_0xae4c73,function(_0xc1e22b){var _0x53a978={'attributes':['id',_0x2adb('0x27')]};return _0x5e28ba['get'+_0xc1e22b+_0x2adb('0x73')](_0x53a978)[_0x2adb('0x3d')](function(_0x510708){var _0x1f6257=_['map'](_0x510708,function(_0x3ff5aa){return _0x3ff5aa['removeAgents'](_0x4db0c5,{'transaction':_0x1a2820})[_0x2adb('0x3d')](function(){var _0x131316=_[_0x2adb('0x39')](_0x4db0c5,function(_0x3f322e){socket[_0x2adb('0x81')](_0x2adb('0x48')+_0xc1e22b+_0x2adb('0x90'),{'UserId':Number(_0x3f322e),[_0xc1e22b+_0x2adb('0x7e')]:_0x3ff5aa['id']});if(_0xc1e22b!==_0x2adb('0x79')){return;}return db[_0x2adb('0x85')][_0x2adb('0x4d')]({'where':{'VoiceQueueId':_0x3ff5aa['id'],'UserId':_0x3f322e},'transaction':_0x1a2820});});return Promise[_0x2adb('0x89')](_0x131316);});});return Promise['all'](_0x1f6257);});});return Promise[_0x2adb('0x89')](_0x19b7f6)['then'](function(){return _0x5e28ba[_0x2adb('0x8b')](_0x4db0c5,{'transaction':_0x1a2820});})[_0x2adb('0x3d')](function(){return db[_0x2adb('0x67')][_0x2adb('0x6b')]({'where':{'teamId':_0x184f06}})[_0x2adb('0x3d')](function(_0x310b52){if(_0x310b52){var _0x212eae=_[_0x2adb('0x39')](_0x4db0c5,function(_0x39f4f8){db[_0x2adb('0x68')]['destroy']({'where':{'UserId':_0x39f4f8,'VoicePrefixId':_0x310b52[_0x2adb('0x69')]}});});return Promise[_0x2adb('0x89')](_0x212eae);}});});});}})[_0x2adb('0x3d')](respondWithStatusCode(_0x39e9a6,null))['catch'](handleError(_0x39e9a6,null));};exports[_0x2adb('0x91')]=function(_0x5069a5,_0x4b04e,_0x79d529){var _0x1b3fd5={};var _0x52ed57={};var _0x50b004;var _0x148f11;return db[_0x2adb('0x40')][_0x2adb('0x6b')]({'where':{'id':_0x5069a5[_0x2adb('0x4e')]['id']}})['then'](handleEntityNotFound(_0x4b04e,null))['then'](function(_0x339b25){if(_0x339b25){_0x50b004=_0x339b25;_0x52ed57[_0x2adb('0x2c')]=_[_0x2adb('0x2e')](db['User'][_0x2adb('0x43')]);_0x52ed57[_0x2adb('0x2d')]=_[_0x2adb('0x2e')](_0x5069a5['query']);_0x52ed57['filters']=_[_0x2adb('0x30')](_0x52ed57[_0x2adb('0x2c')],_0x52ed57[_0x2adb('0x2d')]);_0x1b3fd5[_0x2adb('0x32')]=_['intersection'](_0x52ed57[_0x2adb('0x2c')],qs[_0x2adb('0x31')](_0x5069a5['query'][_0x2adb('0x31')]));_0x1b3fd5[_0x2adb('0x32')]=_0x1b3fd5['attributes'][_0x2adb('0x33')]?_0x1b3fd5[_0x2adb('0x32')]:_0x52ed57['model'];_0x1b3fd5[_0x2adb('0x35')]=qs['sort'](_0x5069a5[_0x2adb('0x2d')]['sort']);_0x1b3fd5[_0x2adb('0x38')]=qs[_0x2adb('0x2f')](_[_0x2adb('0x37')](_0x5069a5[_0x2adb('0x2d')],_0x52ed57[_0x2adb('0x2f')]));if(_0x5069a5[_0x2adb('0x2d')][_0x2adb('0x3a')]){_0x1b3fd5[_0x2adb('0x38')]=_[_0x2adb('0x3b')](_0x1b3fd5[_0x2adb('0x38')],{'$or':_['map'](_0x1b3fd5[_0x2adb('0x32')],function(_0x5ebc0a){var _0x43e779={};_0x43e779[_0x5ebc0a]={'$like':'%'+_0x5069a5[_0x2adb('0x2d')]['filter']+'%'};return _0x43e779;})});}_0x1b3fd5=_[_0x2adb('0x3b')]({},_0x1b3fd5,_0x5069a5['options']);return _0x50b004[_0x2adb('0x91')](_0x1b3fd5);}})['then'](function(_0x2c0813){if(_0x2c0813){_0x148f11=_0x2c0813[_0x2adb('0x33')];if(!_0x5069a5[_0x2adb('0x2d')][_0x2adb('0x92')](_0x2adb('0x34'))){_0x1b3fd5[_0x2adb('0x20')]=qs[_0x2adb('0x20')](_0x5069a5[_0x2adb('0x2d')][_0x2adb('0x20')]);_0x1b3fd5[_0x2adb('0x1e')]=qs['offset'](_0x5069a5['query'][_0x2adb('0x1e')]);}return _0x50b004[_0x2adb('0x91')](_0x1b3fd5);}})[_0x2adb('0x3d')](function(_0x2be4bb){if(_0x2be4bb){return _0x2be4bb?{'count':_0x148f11,'rows':_0x2be4bb}:null;}})['then'](respondWithResult(_0x4b04e,null))[_0x2adb('0x42')](handleError(_0x4b04e,null));};