Built motion from commit 0900f080.|2.5.45
[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 _0xa4b7=['limit','set','apply','update','then','stack','name','send','index','map','Team','rawAttributes','fieldName','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','pick','filter','where','type','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','find','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Teams','UserProfileSection','autoAssociation','UserProfileResource','error','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','UserVoiceQueue','SELECT\x20MailQueueId\x20FROM\x20team_has_mail_queues\x20WHERE\x20TeamId\x20=\x20','UserMailQueue','SELECT\x20SmsQueueId\x20FROM\x20team_has_sms_queues\x20WHERE\x20TeamId\x20=\x20','SmsQueueId','UserSmsQueue','SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20','ChatQueueId','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','UserWhatsappQueue','TeamVoicePrefix','UserVoicePrefix','VoicePrefixId','end','getQueues','params','isValidChannel','ValidationError','capitalize','channel','toLowerCase','length','order','sort','findOne','add','Queues','ids','Unknown\x20channel','remove','addAgents','isArray','Chat','Sms','Fax','Openchannel','Whatsapp','transaction','Voice','penalty','QueueId','TeamVoiceQueue','User','Queue','findOrCreate','Queue:save','voicePause','interface','UserVoiceQueueRt','isNil','format','SIP/%s','all','removeAgents','Mail','emit','Queue:remove','getAgents','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','ejs','fs-extra','squel','crypto','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./team.socket','register','sendStatus','status','json','offset','undefined','count'];(function(_0x42afb8,_0x3a71cd){var _0x439f98=function(_0x86906){while(--_0x86906){_0x42afb8['push'](_0x42afb8['shift']());}};_0x439f98(++_0x3a71cd);}(_0xa4b7,0x77));var _0x7a4b=function(_0x119ee6,_0x2f0686){_0x119ee6=_0x119ee6-0x0;var _0x3f42b2=_0xa4b7[_0x119ee6];return _0x3f42b2;};'use strict';var emlformat=require(_0x7a4b('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x7a4b('0x1'));var jsonpatch=require(_0x7a4b('0x2'));var rp=require(_0x7a4b('0x3'));var moment=require('moment');var BPromise=require(_0x7a4b('0x4'));var Mustache=require(_0x7a4b('0x5'));var util=require('util');var path=require(_0x7a4b('0x6'));var sox=require(_0x7a4b('0x7'));var csv=require('to-csv');var ejs=require(_0x7a4b('0x8'));var fs=require('fs');var fs_extra=require(_0x7a4b('0x9'));var _=require('lodash');var squel=require(_0x7a4b('0xa'));var crypto=require(_0x7a4b('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x7a4b('0xc'));var toCsv=require(_0x7a4b('0xd'));var querystring=require('querystring');var Papa=require(_0x7a4b('0xe'));var Redis=require(_0x7a4b('0xf'));var authService=require(_0x7a4b('0x10'));var qs=require(_0x7a4b('0x11'));var as=require(_0x7a4b('0x12'));var hardwareService=require(_0x7a4b('0x13'));var logger=require(_0x7a4b('0x14'))(_0x7a4b('0x15'));var utils=require(_0x7a4b('0x16'));var config=require(_0x7a4b('0x17'));var licenseUtil=require(_0x7a4b('0x18'));var db=require(_0x7a4b('0x19'))['db'];config['redis']=_[_0x7a4b('0x1a')](config[_0x7a4b('0x1b')],{'host':_0x7a4b('0x1c'),'port':0x18eb});var socket=require(_0x7a4b('0x1d'))(new Redis(config[_0x7a4b('0x1b')]));require(_0x7a4b('0x1e'))[_0x7a4b('0x1f')](socket);function respondWithStatusCode(_0x28ec14,_0x2f2c2b){_0x2f2c2b=_0x2f2c2b||0xcc;return function(_0x58072d){if(_0x58072d){return _0x28ec14[_0x7a4b('0x20')](_0x2f2c2b);}return _0x28ec14['status'](_0x2f2c2b)['end']();};}function respondWithResult(_0x53ac6f,_0x30a5ac){_0x30a5ac=_0x30a5ac||0xc8;return function(_0x401dab){if(_0x401dab){return _0x53ac6f[_0x7a4b('0x21')](_0x30a5ac)[_0x7a4b('0x22')](_0x401dab);}};}function respondWithFilteredResult(_0x3601e5,_0x4ad69d){return function(_0x2b2573){if(_0x2b2573){var _0x16c6c2=typeof _0x4ad69d[_0x7a4b('0x23')]===_0x7a4b('0x24')&&typeof _0x4ad69d['limit']==='undefined';var _0x279dbe=_0x2b2573[_0x7a4b('0x25')];var _0x34cfe4=_0x16c6c2?0x0:_0x4ad69d[_0x7a4b('0x23')];var _0x4f0909=_0x16c6c2?_0x2b2573['count']:_0x4ad69d[_0x7a4b('0x23')]+_0x4ad69d[_0x7a4b('0x26')];var _0x60579;if(_0x4f0909>=_0x279dbe){_0x4f0909=_0x279dbe;_0x60579=0xc8;}else{_0x60579=0xce;}_0x3601e5[_0x7a4b('0x21')](_0x60579);return _0x3601e5[_0x7a4b('0x27')]('Content-Range',_0x34cfe4+'-'+_0x4f0909+'/'+_0x279dbe)[_0x7a4b('0x22')](_0x2b2573);}return null;};}function patchUpdates(_0x2fb309){return function(_0x5d79f9){try{jsonpatch[_0x7a4b('0x28')](_0x5d79f9,_0x2fb309,!![]);}catch(_0x5a355f){return BPromise['reject'](_0x5a355f);}return _0x5d79f9['save']();};}function saveUpdates(_0x2ae4c7,_0x4385ec){return function(_0x3e9ec0){if(_0x3e9ec0){return _0x3e9ec0[_0x7a4b('0x29')](_0x2ae4c7)[_0x7a4b('0x2a')](function(_0x5aeebf){return _0x5aeebf;});}return null;};}function handleEntityNotFound(_0x4a3b04,_0x16d78a){return function(_0xeeb4b5){if(!_0xeeb4b5){_0x4a3b04[_0x7a4b('0x20')](0x194);}return _0xeeb4b5;};}function handleError(_0x28c118,_0x4822ee){_0x4822ee=_0x4822ee||0x1f4;return function(_0x26ac4c){logger['error'](_0x26ac4c[_0x7a4b('0x2b')]);if(_0x26ac4c[_0x7a4b('0x2c')]){delete _0x26ac4c['name'];}_0x28c118[_0x7a4b('0x21')](_0x4822ee)[_0x7a4b('0x2d')](_0x26ac4c);};}exports[_0x7a4b('0x2e')]=function(_0x3b00a9,_0x1c9002){var _0x374e6f={},_0x21677b={},_0x322c8a={'count':0x0,'rows':[]};var _0x5abffd=_[_0x7a4b('0x2f')](db[_0x7a4b('0x30')][_0x7a4b('0x31')],function(_0x275d28){return{'name':_0x275d28[_0x7a4b('0x32')],'type':_0x275d28['type']['key']};});_0x21677b[_0x7a4b('0x33')]=_[_0x7a4b('0x2f')](_0x5abffd,_0x7a4b('0x2c'));_0x21677b[_0x7a4b('0x34')]=_[_0x7a4b('0x35')](_0x3b00a9[_0x7a4b('0x34')]);_0x21677b[_0x7a4b('0x36')]=_[_0x7a4b('0x37')](_0x21677b[_0x7a4b('0x33')],_0x21677b['query']);_0x374e6f[_0x7a4b('0x38')]=_[_0x7a4b('0x37')](_0x21677b['model'],qs['fields'](_0x3b00a9[_0x7a4b('0x34')][_0x7a4b('0x39')]));_0x374e6f[_0x7a4b('0x38')]=_0x374e6f[_0x7a4b('0x38')]['length']?_0x374e6f[_0x7a4b('0x38')]:_0x21677b[_0x7a4b('0x33')];if(!_0x3b00a9[_0x7a4b('0x34')][_0x7a4b('0x3a')](_0x7a4b('0x3b'))){_0x374e6f['limit']=qs[_0x7a4b('0x26')](_0x3b00a9['query'][_0x7a4b('0x26')]);_0x374e6f[_0x7a4b('0x23')]=qs[_0x7a4b('0x23')](_0x3b00a9[_0x7a4b('0x34')][_0x7a4b('0x23')]);}_0x374e6f['order']=qs['sort'](_0x3b00a9[_0x7a4b('0x34')]['sort']);_0x374e6f['where']=qs[_0x7a4b('0x36')](_[_0x7a4b('0x3c')](_0x3b00a9[_0x7a4b('0x34')],_0x21677b[_0x7a4b('0x36')]),_0x5abffd);if(_0x3b00a9[_0x7a4b('0x34')][_0x7a4b('0x3d')]){_0x374e6f[_0x7a4b('0x3e')]=_['merge'](_0x374e6f[_0x7a4b('0x3e')],{'$or':_[_0x7a4b('0x2f')](_0x5abffd,function(_0x442fba){if(_0x442fba[_0x7a4b('0x3f')]!==_0x7a4b('0x40')){var _0x51f85a={};_0x51f85a[_0x442fba[_0x7a4b('0x2c')]]={'$like':'%'+_0x3b00a9['query'][_0x7a4b('0x3d')]+'%'};return _0x51f85a;}})});}_0x374e6f=_[_0x7a4b('0x41')]({},_0x374e6f,_0x3b00a9[_0x7a4b('0x42')]);var _0x3c30ad={'where':_0x374e6f[_0x7a4b('0x3e')]};return db['Team'][_0x7a4b('0x25')](_0x3c30ad)[_0x7a4b('0x2a')](function(_0x390ad9){_0x322c8a[_0x7a4b('0x25')]=_0x390ad9;if(_0x3b00a9['query'][_0x7a4b('0x43')]){_0x374e6f[_0x7a4b('0x44')]=[{'all':!![]}];}return db[_0x7a4b('0x30')][_0x7a4b('0x45')](_0x374e6f);})[_0x7a4b('0x2a')](function(_0x1338fb){_0x322c8a[_0x7a4b('0x46')]=_0x1338fb;return _0x322c8a;})['then'](respondWithFilteredResult(_0x1c9002,_0x374e6f))[_0x7a4b('0x47')](handleError(_0x1c9002,null));};exports[_0x7a4b('0x48')]=function(_0x4806de,_0x15076f){var _0x435de6={'raw':![],'where':{'id':_0x4806de['params']['id']}},_0x41df46={};_0x41df46[_0x7a4b('0x33')]=_['keys'](db['Team'][_0x7a4b('0x31')]);_0x41df46[_0x7a4b('0x34')]=_[_0x7a4b('0x35')](_0x4806de[_0x7a4b('0x34')]);_0x41df46[_0x7a4b('0x36')]=_[_0x7a4b('0x37')](_0x41df46[_0x7a4b('0x33')],_0x41df46[_0x7a4b('0x34')]);_0x435de6[_0x7a4b('0x38')]=_[_0x7a4b('0x37')](_0x41df46[_0x7a4b('0x33')],qs['fields'](_0x4806de[_0x7a4b('0x34')][_0x7a4b('0x39')]));_0x435de6[_0x7a4b('0x38')]=_0x435de6[_0x7a4b('0x38')]['length']?_0x435de6['attributes']:_0x41df46[_0x7a4b('0x33')];if(_0x4806de[_0x7a4b('0x34')][_0x7a4b('0x43')]){_0x435de6['include']=[{'all':!![]}];}_0x435de6=_[_0x7a4b('0x41')]({},_0x435de6,_0x4806de['options']);return db[_0x7a4b('0x30')][_0x7a4b('0x49')](_0x435de6)[_0x7a4b('0x2a')](handleEntityNotFound(_0x15076f,null))['then'](respondWithResult(_0x15076f,null))[_0x7a4b('0x47')](handleError(_0x15076f,null));};exports[_0x7a4b('0x4a')]=function(_0x4ea4a2,_0x43fe4f){return db[_0x7a4b('0x30')][_0x7a4b('0x4a')](_0x4ea4a2['body'],{})[_0x7a4b('0x2a')](function(_0x1b296b){var _0x5e4537=_0x4ea4a2[_0x7a4b('0x4b')][_0x7a4b('0x4c')]({'plain':!![]});if(!_0x5e4537)throw new Error(_0x7a4b('0x4d'));if(_0x5e4537[_0x7a4b('0x4e')]===_0x7a4b('0x4b')){var _0x1c957a=_0x1b296b[_0x7a4b('0x4c')]({'plain':!![]});var _0x3cc753=_0x7a4b('0x4f');return db[_0x7a4b('0x50')][_0x7a4b('0x49')]({'where':{'name':_0x3cc753,'userProfileId':_0x5e4537['userProfileId']},'raw':!![]})[_0x7a4b('0x2a')](function(_0x3ecde4){if(_0x3ecde4&&_0x3ecde4[_0x7a4b('0x51')]===0x0){return db[_0x7a4b('0x52')][_0x7a4b('0x4a')]({'name':_0x1c957a[_0x7a4b('0x2c')],'resourceId':_0x1c957a['id'],'type':_0x3ecde4['name'],'sectionId':_0x3ecde4['id']},{})['then'](function(){return _0x1b296b;});}else{return _0x1b296b;}})[_0x7a4b('0x47')](function(_0x544631){logger[_0x7a4b('0x53')](_0x7a4b('0x54'),_0x544631);throw _0x544631;});}return _0x1b296b;})[_0x7a4b('0x2a')](respondWithResult(_0x43fe4f,0xc9))['catch'](handleError(_0x43fe4f,null));};exports['update']=function(_0x4eca4b,_0x1006bd){if(_0x4eca4b[_0x7a4b('0x55')]['id']){delete _0x4eca4b[_0x7a4b('0x55')]['id'];}return db['Team'][_0x7a4b('0x49')]({'where':{'id':_0x4eca4b['params']['id']}})['then'](handleEntityNotFound(_0x1006bd,null))['then'](saveUpdates(_0x4eca4b[_0x7a4b('0x55')],null))[_0x7a4b('0x2a')](respondWithResult(_0x1006bd,null))['catch'](handleError(_0x1006bd,null));};exports[_0x7a4b('0x56')]=function(_0xa60cf6,_0x21a21a){var _0x13cbe0=_0xa60cf6['params']['id'];var _0x2379f3=[];return db[_0x7a4b('0x57')]['transaction'](function(_0x38ca42){var _0x1da4c7=_0x7a4b('0x58')+_0x13cbe0;return db[_0x7a4b('0x57')][_0x7a4b('0x34')](_0x1da4c7,{'type':db[_0x7a4b('0x59')][_0x7a4b('0x5a')][_0x7a4b('0x5b')],'raw':!![],'transaction':_0x38ca42})[_0x7a4b('0x2a')](function(_0x42f336){_0x2379f3=_[_0x7a4b('0x2f')](_0x42f336,function(_0x1538d8){return Number(_0x1538d8['UserId']);});})[_0x7a4b('0x2a')](function(){var _0xe5fd4f=_0x7a4b('0x5c')+_0x13cbe0;return db['sequelize'][_0x7a4b('0x34')](_0xe5fd4f,{'type':db[_0x7a4b('0x59')][_0x7a4b('0x5a')]['SELECT'],'raw':!![],'transaction':_0x38ca42});})['then'](function(_0x3d610f){var _0x4a5c02=_['map'](_0x3d610f,function(_0x51e42e){return Number(_0x51e42e['VoiceQueueId']);});return db[_0x7a4b('0x5d')][_0x7a4b('0x56')]({'where':{'UserId':{'$in':_0x2379f3},'VoiceQueueId':{'$in':_0x4a5c02}},'transaction':_0x38ca42});})[_0x7a4b('0x2a')](function(){var _0x329634=_0x7a4b('0x5e')+_0x13cbe0;return db[_0x7a4b('0x57')]['query'](_0x329634,{'type':db['Sequelize'][_0x7a4b('0x5a')][_0x7a4b('0x5b')],'raw':!![],'transaction':_0x38ca42});})['then'](function(_0x234cb5){var _0x409c90=_[_0x7a4b('0x2f')](_0x234cb5,function(_0x456750){return Number(_0x456750['MailQueueId']);});return db[_0x7a4b('0x5f')]['destroy']({'where':{'UserId':{'$in':_0x2379f3},'MailQueueId':{'$in':_0x409c90}},'transaction':_0x38ca42});})[_0x7a4b('0x2a')](function(){var _0x5eb621=_0x7a4b('0x60')+_0x13cbe0;return db[_0x7a4b('0x57')][_0x7a4b('0x34')](_0x5eb621,{'type':db[_0x7a4b('0x59')][_0x7a4b('0x5a')][_0x7a4b('0x5b')],'raw':!![],'transaction':_0x38ca42});})[_0x7a4b('0x2a')](function(_0x562be7){var _0x9165ff=_[_0x7a4b('0x2f')](_0x562be7,function(_0x192c58){return Number(_0x192c58[_0x7a4b('0x61')]);});return db[_0x7a4b('0x62')][_0x7a4b('0x56')]({'where':{'UserId':{'$in':_0x2379f3},'SmsQueueId':{'$in':_0x9165ff}},'transaction':_0x38ca42});})[_0x7a4b('0x2a')](function(){var _0x39ce13=_0x7a4b('0x63')+_0x13cbe0;return db[_0x7a4b('0x57')]['query'](_0x39ce13,{'type':db['Sequelize'][_0x7a4b('0x5a')][_0x7a4b('0x5b')],'raw':!![],'transaction':_0x38ca42});})[_0x7a4b('0x2a')](function(_0x21dd54){var _0x108deb=_['map'](_0x21dd54,function(_0x2178b3){return Number(_0x2178b3[_0x7a4b('0x64')]);});return db['UserChatQueue'][_0x7a4b('0x56')]({'where':{'UserId':{'$in':_0x2379f3},'ChatQueueId':{'$in':_0x108deb}},'transaction':_0x38ca42});})[_0x7a4b('0x2a')](function(){var _0x47ce6b='SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20'+_0x13cbe0;return db[_0x7a4b('0x57')][_0x7a4b('0x34')](_0x47ce6b,{'type':db[_0x7a4b('0x59')][_0x7a4b('0x5a')][_0x7a4b('0x5b')],'raw':!![],'transaction':_0x38ca42});})[_0x7a4b('0x2a')](function(_0x78f7e9){var _0x5259b8=_[_0x7a4b('0x2f')](_0x78f7e9,function(_0x55fde9){return Number(_0x55fde9[_0x7a4b('0x65')]);});return db[_0x7a4b('0x66')][_0x7a4b('0x56')]({'where':{'UserId':{'$in':_0x2379f3},'FaxQueueId':{'$in':_0x5259b8}},'transaction':_0x38ca42});})[_0x7a4b('0x2a')](function(){var _0x47901d=_0x7a4b('0x67')+_0x13cbe0;return db['sequelize'][_0x7a4b('0x34')](_0x47901d,{'type':db[_0x7a4b('0x59')][_0x7a4b('0x5a')]['SELECT'],'raw':!![],'transaction':_0x38ca42});})['then'](function(_0x207832){var _0x2da6ef=_['map'](_0x207832,function(_0x3c5e68){return Number(_0x3c5e68[_0x7a4b('0x68')]);});return db[_0x7a4b('0x69')][_0x7a4b('0x56')]({'where':{'UserId':{'$in':_0x2379f3},'OpenchannelQueueId':{'$in':_0x2da6ef}},'transaction':_0x38ca42});})['then'](function(){var _0x7091d0=_0x7a4b('0x6a')+_0x13cbe0;return db['sequelize']['query'](_0x7091d0,{'type':db[_0x7a4b('0x59')][_0x7a4b('0x5a')][_0x7a4b('0x5b')],'raw':!![],'transaction':_0x38ca42});})['then'](function(_0x1149f6){var _0x54639b=_[_0x7a4b('0x2f')](_0x1149f6,function(_0x4d7ae7){return Number(_0x4d7ae7[_0x7a4b('0x6b')]);});return db[_0x7a4b('0x6c')]['destroy']({'where':{'UserId':{'$in':_0x2379f3},'WhatsappQueueId':{'$in':_0x54639b}},'transaction':_0x38ca42});})['then'](function(){return db[_0x7a4b('0x6d')][_0x7a4b('0x49')]({'where':{'TeamId':_0x13cbe0}});})[_0x7a4b('0x2a')](function(_0x19a741){if(_0x19a741===null){return;}return db[_0x7a4b('0x6e')]['destroy']({'where':{'UserId':{'$in':_0x2379f3},'VoicePrefixId':_0x19a741[_0x7a4b('0x6f')]},'transaction':_0x38ca42});})[_0x7a4b('0x2a')](function(){return db['Team'][_0x7a4b('0x56')]({'where':{'id':_0x13cbe0},'cascade':!![],'transaction':_0x38ca42});})[_0x7a4b('0x2a')](function(_0x1a9160){if(_0x1a9160===0x0){_0x21a21a[_0x7a4b('0x20')](0x194);}else{return db[_0x7a4b('0x52')][_0x7a4b('0x56')]({'where':{'type':'Teams','resourceId':_0x13cbe0},'cascade':!![],'transaction':_0x38ca42})['then'](function(){_0x21a21a[_0x7a4b('0x21')](0xcc)[_0x7a4b('0x70')]();});}})['catch'](function(_0x228f4a){_0x21a21a[_0x7a4b('0x21')](0x1f4)['send'](_0x228f4a);});});};exports[_0x7a4b('0x71')]=function(_0x1805c7,_0x4554ba,_0x4950c9){return db['Team']['findOne']({'where':{'id':_0x1805c7[_0x7a4b('0x72')]['id']}})['then'](handleEntityNotFound(_0x4554ba,null))[_0x7a4b('0x2a')](function(_0x51b2b8){if(!_0x1805c7[_0x7a4b('0x34')]['channel']||!utils[_0x7a4b('0x73')](_0x1805c7[_0x7a4b('0x34')]['channel'])){throw new db[(_0x7a4b('0x59'))][(_0x7a4b('0x74'))]('Unknown\x20channel');}var _0x564b9b={};var _0x4c44ff={};_0x4c44ff[_0x7a4b('0x33')]=_[_0x7a4b('0x35')](db[_[_0x7a4b('0x75')](_0x1805c7['query'][_0x7a4b('0x76')][_0x7a4b('0x77')]())+'Queue'][_0x7a4b('0x31')]);_0x4c44ff[_0x7a4b('0x34')]=_[_0x7a4b('0x35')](_0x1805c7['query']);_0x4c44ff[_0x7a4b('0x36')]=_[_0x7a4b('0x37')](_0x4c44ff[_0x7a4b('0x33')],_0x4c44ff['query']);_0x564b9b['attributes']=_['intersection'](_0x4c44ff[_0x7a4b('0x33')],qs[_0x7a4b('0x39')](_0x1805c7[_0x7a4b('0x34')][_0x7a4b('0x39')]));_0x564b9b['attributes']=_0x564b9b['attributes'][_0x7a4b('0x78')]?_0x564b9b['attributes']:_0x4c44ff[_0x7a4b('0x33')];_0x564b9b['limit']=qs[_0x7a4b('0x26')](_0x1805c7[_0x7a4b('0x34')]['limit']);_0x564b9b['offset']=qs[_0x7a4b('0x23')](_0x1805c7['query'][_0x7a4b('0x23')]);_0x564b9b[_0x7a4b('0x79')]=qs[_0x7a4b('0x7a')](_0x1805c7[_0x7a4b('0x34')]['sort']);_0x564b9b[_0x7a4b('0x3e')]=qs[_0x7a4b('0x36')](_[_0x7a4b('0x3c')](_0x1805c7['query'],_0x4c44ff[_0x7a4b('0x36')]));_0x564b9b=_[_0x7a4b('0x41')]({},_0x564b9b,_0x1805c7[_0x7a4b('0x42')]);return _0x51b2b8[_0x7a4b('0x4c')+_['capitalize'](_0x1805c7['query']['channel']['toLowerCase']())+'Queues'](_0x564b9b);})['then'](respondWithResult(_0x4554ba,null))[_0x7a4b('0x47')](handleError(_0x4554ba,null));};exports['addQueues']=function(_0x366e0f,_0x166e75,_0x2526b1){return db['Team'][_0x7a4b('0x7b')]({'where':{'id':_0x366e0f[_0x7a4b('0x72')]['id']}})[_0x7a4b('0x2a')](function(_0x2000ea){if(_0x2000ea){if(!_0x366e0f[_0x7a4b('0x55')]['channel']||!utils[_0x7a4b('0x73')](_0x366e0f[_0x7a4b('0x55')][_0x7a4b('0x76')])){throw new db[(_0x7a4b('0x59'))][(_0x7a4b('0x74'))]('Unknown\x20channel');}return _0x2000ea[_0x7a4b('0x7c')+_[_0x7a4b('0x75')](_0x366e0f[_0x7a4b('0x55')][_0x7a4b('0x76')][_0x7a4b('0x77')]())+_0x7a4b('0x7d')](_0x366e0f[_0x7a4b('0x55')][_0x7a4b('0x7e')]);}return null;})['then'](handleEntityNotFound(_0x166e75,null))[_0x7a4b('0x2a')](respondWithStatusCode(_0x166e75,null))['catch'](handleError(_0x166e75,null));};exports['removeQueues']=function(_0x10e702,_0x128b05,_0x56e657){return db[_0x7a4b('0x30')][_0x7a4b('0x7b')]({'where':{'id':_0x10e702['params']['id']}})[_0x7a4b('0x2a')](function(_0x565f49){if(_0x565f49){if(!_0x10e702['query'][_0x7a4b('0x76')]||!utils[_0x7a4b('0x73')](_0x10e702[_0x7a4b('0x34')][_0x7a4b('0x76')])){throw new db[(_0x7a4b('0x59'))][(_0x7a4b('0x74'))](_0x7a4b('0x7f'));}return _0x565f49[_0x7a4b('0x80')+_[_0x7a4b('0x75')](_0x10e702[_0x7a4b('0x34')][_0x7a4b('0x76')][_0x7a4b('0x77')]())+'Queues'](_0x10e702['query'][_0x7a4b('0x7e')]);}return null;})[_0x7a4b('0x2a')](handleEntityNotFound(_0x128b05,null))[_0x7a4b('0x2a')](respondWithStatusCode(_0x128b05,null))[_0x7a4b('0x47')](handleError(_0x128b05,null));};exports[_0x7a4b('0x81')]=function(_0x53944e,_0x459377){var _0x2355f9=_[_0x7a4b('0x82')](_0x53944e['body']['ids'])?_0x53944e[_0x7a4b('0x55')]['ids']:[_0x53944e[_0x7a4b('0x55')][_0x7a4b('0x7e')]];var _0x504905=_0x53944e[_0x7a4b('0x72')]['id'];return db[_0x7a4b('0x30')]['find']({'where':{'id':_0x504905}})[_0x7a4b('0x2a')](handleEntityNotFound(_0x459377,null))[_0x7a4b('0x2a')](function(_0x548f32){if(_0x548f32){var _0x25045d=['Voice',_0x7a4b('0x83'),'Mail',_0x7a4b('0x84'),_0x7a4b('0x85'),_0x7a4b('0x86'),_0x7a4b('0x87')];return db[_0x7a4b('0x57')][_0x7a4b('0x88')](function(_0x3f4307){var _0x12ad0c=_['map'](_0x25045d,function(_0x383e5e){var _0xaf126d={'attributes':['id',_0x7a4b('0x2c')]};if(_0x383e5e===_0x7a4b('0x89')){_0xaf126d['through']={'attributes':[_0x7a4b('0x8a')]};}return _0x548f32[_0x7a4b('0x4c')+_0x383e5e+'Queues'](_0xaf126d)['then'](function(_0x485e45){var _0x4dcecb=_[_0x7a4b('0x2f')](_0x485e45,function(_0x4ac38e){var _0x49f06b=_[_0x7a4b('0x2f')](_0x2355f9,function(_0x81236f){var _0x29114e={'where':{'UserId':_0x81236f,[_0x383e5e+_0x7a4b('0x8b')]:_0x4ac38e['id']},'transaction':_0x3f4307};if(_0x383e5e===_0x7a4b('0x89')){_0x29114e[_0x7a4b('0x1a')]={'penalty':_0x4ac38e[_0x7a4b('0x8c')]['penalty']};}return db[_0x7a4b('0x8d')+_0x383e5e+_0x7a4b('0x8e')][_0x7a4b('0x8f')](_0x29114e)[_0x7a4b('0x2a')](function(){socket['emit'](_0x7a4b('0x4b')+_0x383e5e+_0x7a4b('0x90'),{'UserId':_0x81236f,[_0x383e5e+_0x7a4b('0x8b')]:_0x4ac38e['id']});if(_0x383e5e!==_0x7a4b('0x89')){return;}return db[_0x7a4b('0x8d')][_0x7a4b('0x45')]({'where':{'id':_0x2355f9,'online':0x1},'attributes':['id',_0x7a4b('0x2c'),'online',_0x7a4b('0x91'),_0x7a4b('0x92')],'raw':!![]})[_0x7a4b('0x2a')](function(_0x329654){var _0x7efc92=_[_0x7a4b('0x2f')](_0x329654,function(_0x4b1c26){return db[_0x7a4b('0x93')]['upsert']({'membername':_0x4b1c26[_0x7a4b('0x2c')],'UserId':_0x4b1c26['id'],'queue_name':_0x4ac38e[_0x7a4b('0x2c')],'VoiceQueueId':_0x4ac38e['id'],'interface':_[_0x7a4b('0x94')](_0x4b1c26[_0x7a4b('0x92')])?util[_0x7a4b('0x95')](_0x7a4b('0x96'),_0x4b1c26[_0x7a4b('0x2c')]):_0x4b1c26['interface'],'paused':_0x4b1c26['voicePause']||![],'penalty':_0x4ac38e[_0x7a4b('0x8c')]['penalty']},{'transaction':_0x3f4307});});return Promise[_0x7a4b('0x97')](_0x7efc92);});});});return Promise['all'](_0x49f06b);});return Promise[_0x7a4b('0x97')](_0x4dcecb);})[_0x7a4b('0x2a')](function(){return db[_0x7a4b('0x6d')][_0x7a4b('0x7b')]({'where':{'teamId':_0x504905}})[_0x7a4b('0x2a')](function(_0x2023f9){if(_0x2023f9){var _0x20ada4=_[_0x7a4b('0x2f')](_0x2355f9,function(_0x57847d){db[_0x7a4b('0x6e')]['upsert']({'UserId':_0x57847d,'VoicePrefixId':_0x2023f9[_0x7a4b('0x6f')]});});return Promise[_0x7a4b('0x97')](_0x20ada4);}});});});return Promise[_0x7a4b('0x97')](_0x12ad0c)[_0x7a4b('0x2a')](function(){return _0x548f32[_0x7a4b('0x81')](_0x2355f9,{'transaction':_0x3f4307})['spread'](function(_0x5c23a7){return _0x5c23a7;});});});}})[_0x7a4b('0x2a')](respondWithResult(_0x459377,null))[_0x7a4b('0x47')](handleError(_0x459377,null));};exports[_0x7a4b('0x98')]=function(_0x447e91,_0x44b20c){var _0xc019f6=_[_0x7a4b('0x82')](_0x447e91['query'][_0x7a4b('0x7e')])?_0x447e91[_0x7a4b('0x34')][_0x7a4b('0x7e')]:[_0x447e91[_0x7a4b('0x34')][_0x7a4b('0x7e')]];var _0x1b4f07=_0x447e91['params']['id'];return db['Team'][_0x7a4b('0x49')]({'where':{'id':_0x1b4f07}})['then'](handleEntityNotFound(_0x44b20c,null))[_0x7a4b('0x2a')](function(_0x35d3f9){if(_0x35d3f9){var _0x41d061=[_0x7a4b('0x89'),'Chat',_0x7a4b('0x99'),_0x7a4b('0x84'),_0x7a4b('0x85'),'Openchannel',_0x7a4b('0x87')];return db['sequelize'][_0x7a4b('0x88')](function(_0x23e76f){var _0x57120c=_[_0x7a4b('0x2f')](_0x41d061,function(_0x200831){var _0x7699a3={'attributes':['id',_0x7a4b('0x2c')]};return _0x35d3f9[_0x7a4b('0x4c')+_0x200831+_0x7a4b('0x7d')](_0x7699a3)['then'](function(_0x3bf703){var _0x1ab8a7=_[_0x7a4b('0x2f')](_0x3bf703,function(_0xc7324b){return _0xc7324b[_0x7a4b('0x98')](_0xc019f6,{'transaction':_0x23e76f})[_0x7a4b('0x2a')](function(){var _0x51a786=_[_0x7a4b('0x2f')](_0xc019f6,function(_0x42af14){socket[_0x7a4b('0x9a')](_0x7a4b('0x4b')+_0x200831+_0x7a4b('0x9b'),{'UserId':Number(_0x42af14),[_0x200831+_0x7a4b('0x8b')]:_0xc7324b['id']});if(_0x200831!==_0x7a4b('0x89')){return;}return db[_0x7a4b('0x93')][_0x7a4b('0x56')]({'where':{'VoiceQueueId':_0xc7324b['id'],'UserId':_0x42af14},'transaction':_0x23e76f});});return Promise[_0x7a4b('0x97')](_0x51a786);});});return Promise[_0x7a4b('0x97')](_0x1ab8a7);});});return Promise[_0x7a4b('0x97')](_0x57120c)[_0x7a4b('0x2a')](function(){return _0x35d3f9[_0x7a4b('0x98')](_0xc019f6,{'transaction':_0x23e76f});})[_0x7a4b('0x2a')](function(){return db['TeamVoicePrefix'][_0x7a4b('0x7b')]({'where':{'teamId':_0x1b4f07}})['then'](function(_0x53e66d){if(_0x53e66d){var _0x444826=_[_0x7a4b('0x2f')](_0xc019f6,function(_0x35e32c){db[_0x7a4b('0x6e')][_0x7a4b('0x56')]({'where':{'UserId':_0x35e32c,'VoicePrefixId':_0x53e66d[_0x7a4b('0x6f')]}});});return Promise[_0x7a4b('0x97')](_0x444826);}});});});}})[_0x7a4b('0x2a')](respondWithStatusCode(_0x44b20c,null))[_0x7a4b('0x47')](handleError(_0x44b20c,null));};exports[_0x7a4b('0x9c')]=function(_0x7237e8,_0x368248,_0x39ea1c){var _0x31a8a9={};var _0x1e6a25={};var _0x123890;var _0x4f25aa;return db[_0x7a4b('0x30')][_0x7a4b('0x7b')]({'where':{'id':_0x7237e8[_0x7a4b('0x72')]['id']}})[_0x7a4b('0x2a')](handleEntityNotFound(_0x368248,null))['then'](function(_0x2acf65){if(_0x2acf65){_0x123890=_0x2acf65;_0x1e6a25['model']=_[_0x7a4b('0x35')](db[_0x7a4b('0x8d')]['rawAttributes']);_0x1e6a25[_0x7a4b('0x34')]=_['keys'](_0x7237e8[_0x7a4b('0x34')]);_0x1e6a25[_0x7a4b('0x36')]=_['intersection'](_0x1e6a25[_0x7a4b('0x33')],_0x1e6a25[_0x7a4b('0x34')]);_0x31a8a9[_0x7a4b('0x38')]=_[_0x7a4b('0x37')](_0x1e6a25['model'],qs['fields'](_0x7237e8[_0x7a4b('0x34')]['fields']));_0x31a8a9['attributes']=_0x31a8a9[_0x7a4b('0x38')][_0x7a4b('0x78')]?_0x31a8a9[_0x7a4b('0x38')]:_0x1e6a25[_0x7a4b('0x33')];_0x31a8a9[_0x7a4b('0x79')]=qs[_0x7a4b('0x7a')](_0x7237e8[_0x7a4b('0x34')][_0x7a4b('0x7a')]);_0x31a8a9[_0x7a4b('0x3e')]=qs[_0x7a4b('0x36')](_[_0x7a4b('0x3c')](_0x7237e8[_0x7a4b('0x34')],_0x1e6a25[_0x7a4b('0x36')]));if(_0x7237e8['query'][_0x7a4b('0x3d')]){_0x31a8a9['where']=_[_0x7a4b('0x41')](_0x31a8a9[_0x7a4b('0x3e')],{'$or':_['map'](_0x31a8a9[_0x7a4b('0x38')],function(_0x1ee402){var _0xe02628={};_0xe02628[_0x1ee402]={'$like':'%'+_0x7237e8[_0x7a4b('0x34')]['filter']+'%'};return _0xe02628;})});}_0x31a8a9=_[_0x7a4b('0x41')]({},_0x31a8a9,_0x7237e8[_0x7a4b('0x42')]);return _0x123890[_0x7a4b('0x9c')](_0x31a8a9);}})[_0x7a4b('0x2a')](function(_0x3d796c){if(_0x3d796c){_0x4f25aa=_0x3d796c['length'];if(!_0x7237e8[_0x7a4b('0x34')]['hasOwnProperty'](_0x7a4b('0x3b'))){_0x31a8a9['limit']=qs[_0x7a4b('0x26')](_0x7237e8[_0x7a4b('0x34')]['limit']);_0x31a8a9['offset']=qs['offset'](_0x7237e8[_0x7a4b('0x34')][_0x7a4b('0x23')]);}return _0x123890['getAgents'](_0x31a8a9);}})[_0x7a4b('0x2a')](function(_0x87ce3c){if(_0x87ce3c){return _0x87ce3c?{'count':_0x4f25aa,'rows':_0x87ce3c}:null;}})[_0x7a4b('0x2a')](respondWithResult(_0x368248,null))[_0x7a4b('0x47')](handleError(_0x368248,null));};