Built motion from commit 56a37f2a.|2.6.21
[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 _0x2e93=['ejs','fs-extra','lodash','jsforce','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./team.socket','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','then','error','name','send','index','map','Team','rawAttributes','type','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','params','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','Teams','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','destroy','sequelize','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','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','UserChatQueue','FaxQueueId','UserFaxQueue','SELECT\x20OpenchannelQueueId\x20FROM\x20team_has_openchannel_queues\x20WHERE\x20TeamId\x20=\x20','OpenchannelQueueId','SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20','TeamVoicePrefix','UserVoicePrefix','VoicePrefixId','getQueues','findOne','channel','ValidationError','Unknown\x20channel','capitalize','Queue','toLowerCase','Queues','isValidChannel','add','ids','remove','isArray','Fax','Openchannel','Whatsapp','penalty','Voice','User','findOrCreate','emit','Queue:save','QueueId','online','voicePause','interface','UserVoiceQueueRt','isNil','format','SIP/%s','TeamVoiceQueue','all','upsert','addAgents','spread','removeAgents','Chat','Sms','transaction','Queue:remove','getAgents','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','util','to-csv'];(function(_0x219bdc,_0x2db0d9){var _0x2abdb6=function(_0x409467){while(--_0x409467){_0x219bdc['push'](_0x219bdc['shift']());}};_0x2abdb6(++_0x2db0d9);}(_0x2e93,0x8d));var _0x32e9=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x2e93[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x32e9('0x0'));var rimraf=require(_0x32e9('0x1'));var zipdir=require(_0x32e9('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x32e9('0x3'));var moment=require(_0x32e9('0x4'));var BPromise=require(_0x32e9('0x5'));var Mustache=require('mustache');var util=require(_0x32e9('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x32e9('0x7'));var ejs=require(_0x32e9('0x8'));var fs=require('fs');var fs_extra=require(_0x32e9('0x9'));var _=require(_0x32e9('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x32e9('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x32e9('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x32e9('0xc'));var qs=require(_0x32e9('0xd'));var as=require(_0x32e9('0xe'));var hardwareService=require(_0x32e9('0xf'));var logger=require(_0x32e9('0x10'))(_0x32e9('0x11'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x32e9('0x12'));var db=require(_0x32e9('0x13'))['db'];config['redis']=_[_0x32e9('0x14')](config[_0x32e9('0x15')],{'host':_0x32e9('0x16'),'port':0x18eb});var socket=require(_0x32e9('0x17'))(new Redis(config['redis']));require(_0x32e9('0x18'))['register'](socket);function respondWithStatusCode(_0x4778e8,_0xd41ff2){_0xd41ff2=_0xd41ff2||0xcc;return function(_0x13b894){if(_0x13b894){return _0x4778e8[_0x32e9('0x19')](_0xd41ff2);}return _0x4778e8[_0x32e9('0x1a')](_0xd41ff2)[_0x32e9('0x1b')]();};}function respondWithResult(_0x298f63,_0x1fcacf){_0x1fcacf=_0x1fcacf||0xc8;return function(_0xf0d57a){if(_0xf0d57a){return _0x298f63[_0x32e9('0x1a')](_0x1fcacf)[_0x32e9('0x1c')](_0xf0d57a);}};}function respondWithFilteredResult(_0x12d0fe,_0x29ba57){return function(_0x58de27){if(_0x58de27){var _0x4de219=typeof _0x29ba57['offset']===_0x32e9('0x1d')&&typeof _0x29ba57[_0x32e9('0x1e')]===_0x32e9('0x1d');var _0x4eeb73=_0x58de27[_0x32e9('0x1f')];var _0x304e41=_0x4de219?0x0:_0x29ba57[_0x32e9('0x20')];var _0x46a451=_0x4de219?_0x58de27['count']:_0x29ba57[_0x32e9('0x20')]+_0x29ba57[_0x32e9('0x1e')];var _0x27bcb7;if(_0x46a451>=_0x4eeb73){_0x46a451=_0x4eeb73;_0x27bcb7=0xc8;}else{_0x27bcb7=0xce;}_0x12d0fe[_0x32e9('0x1a')](_0x27bcb7);return _0x12d0fe[_0x32e9('0x21')](_0x32e9('0x22'),_0x304e41+'-'+_0x46a451+'/'+_0x4eeb73)['json'](_0x58de27);}return null;};}function patchUpdates(_0x372208){return function(_0x314b68){try{jsonpatch[_0x32e9('0x23')](_0x314b68,_0x372208,!![]);}catch(_0x54b0b0){return BPromise[_0x32e9('0x24')](_0x54b0b0);}return _0x314b68[_0x32e9('0x25')]();};}function saveUpdates(_0x274ec9,_0x316c60){return function(_0x54dc82){if(_0x54dc82){return _0x54dc82['update'](_0x274ec9)[_0x32e9('0x26')](function(_0xd772bb){return _0xd772bb;});}return null;};}function handleEntityNotFound(_0x300b60,_0xa58b31){return function(_0x38bafb){if(!_0x38bafb){_0x300b60[_0x32e9('0x19')](0x194);}return _0x38bafb;};}function handleError(_0x53132c,_0x321815){_0x321815=_0x321815||0x1f4;return function(_0x3274ec){logger[_0x32e9('0x27')](_0x3274ec['stack']);if(_0x3274ec[_0x32e9('0x28')]){delete _0x3274ec[_0x32e9('0x28')];}_0x53132c[_0x32e9('0x1a')](_0x321815)[_0x32e9('0x29')](_0x3274ec);};}exports[_0x32e9('0x2a')]=function(_0x1ba5a4,_0x1fbc79){var _0x30599c={},_0x55b323={},_0x47d6da={'count':0x0,'rows':[]};var _0x5cd910=_[_0x32e9('0x2b')](db[_0x32e9('0x2c')][_0x32e9('0x2d')],function(_0x569a9b){return{'name':_0x569a9b['fieldName'],'type':_0x569a9b[_0x32e9('0x2e')]['key']};});_0x55b323[_0x32e9('0x2f')]=_['map'](_0x5cd910,_0x32e9('0x28'));_0x55b323[_0x32e9('0x30')]=_[_0x32e9('0x31')](_0x1ba5a4[_0x32e9('0x30')]);_0x55b323[_0x32e9('0x32')]=_['intersection'](_0x55b323[_0x32e9('0x2f')],_0x55b323['query']);_0x30599c[_0x32e9('0x33')]=_[_0x32e9('0x34')](_0x55b323['model'],qs[_0x32e9('0x35')](_0x1ba5a4[_0x32e9('0x30')][_0x32e9('0x35')]));_0x30599c['attributes']=_0x30599c[_0x32e9('0x33')][_0x32e9('0x36')]?_0x30599c['attributes']:_0x55b323[_0x32e9('0x2f')];if(!_0x1ba5a4[_0x32e9('0x30')][_0x32e9('0x37')](_0x32e9('0x38'))){_0x30599c[_0x32e9('0x1e')]=qs[_0x32e9('0x1e')](_0x1ba5a4[_0x32e9('0x30')][_0x32e9('0x1e')]);_0x30599c['offset']=qs[_0x32e9('0x20')](_0x1ba5a4[_0x32e9('0x30')][_0x32e9('0x20')]);}_0x30599c[_0x32e9('0x39')]=qs['sort'](_0x1ba5a4[_0x32e9('0x30')][_0x32e9('0x3a')]);_0x30599c[_0x32e9('0x3b')]=qs['filters'](_['pick'](_0x1ba5a4['query'],_0x55b323[_0x32e9('0x32')]),_0x5cd910);if(_0x1ba5a4[_0x32e9('0x30')][_0x32e9('0x3c')]){_0x30599c['where']=_[_0x32e9('0x3d')](_0x30599c[_0x32e9('0x3b')],{'$or':_[_0x32e9('0x2b')](_0x5cd910,function(_0x1f5bf9){if(_0x1f5bf9[_0x32e9('0x2e')]!==_0x32e9('0x3e')){var _0x497d38={};_0x497d38[_0x1f5bf9['name']]={'$like':'%'+_0x1ba5a4['query'][_0x32e9('0x3c')]+'%'};return _0x497d38;}})});}_0x30599c=_['merge']({},_0x30599c,_0x1ba5a4[_0x32e9('0x3f')]);var _0x4b966e={'where':_0x30599c[_0x32e9('0x3b')]};return db[_0x32e9('0x2c')][_0x32e9('0x1f')](_0x4b966e)[_0x32e9('0x26')](function(_0x22cc39){_0x47d6da[_0x32e9('0x1f')]=_0x22cc39;if(_0x1ba5a4[_0x32e9('0x30')][_0x32e9('0x40')]){_0x30599c[_0x32e9('0x41')]=[{'all':!![]}];}return db['Team'][_0x32e9('0x42')](_0x30599c);})['then'](function(_0x2b31e0){_0x47d6da[_0x32e9('0x43')]=_0x2b31e0;return _0x47d6da;})['then'](respondWithFilteredResult(_0x1fbc79,_0x30599c))['catch'](handleError(_0x1fbc79,null));};exports['show']=function(_0x5d6837,_0x42ccbd){var _0x504834={'raw':![],'where':{'id':_0x5d6837[_0x32e9('0x44')]['id']}},_0x53a1f7={};_0x53a1f7['model']=_[_0x32e9('0x31')](db[_0x32e9('0x2c')]['rawAttributes']);_0x53a1f7[_0x32e9('0x30')]=_[_0x32e9('0x31')](_0x5d6837[_0x32e9('0x30')]);_0x53a1f7[_0x32e9('0x32')]=_['intersection'](_0x53a1f7[_0x32e9('0x2f')],_0x53a1f7['query']);_0x504834['attributes']=_[_0x32e9('0x34')](_0x53a1f7[_0x32e9('0x2f')],qs[_0x32e9('0x35')](_0x5d6837[_0x32e9('0x30')][_0x32e9('0x35')]));_0x504834[_0x32e9('0x33')]=_0x504834[_0x32e9('0x33')][_0x32e9('0x36')]?_0x504834[_0x32e9('0x33')]:_0x53a1f7[_0x32e9('0x2f')];if(_0x5d6837['query'][_0x32e9('0x40')]){_0x504834[_0x32e9('0x41')]=[{'all':!![]}];}_0x504834=_[_0x32e9('0x3d')]({},_0x504834,_0x5d6837[_0x32e9('0x3f')]);return db[_0x32e9('0x2c')][_0x32e9('0x45')](_0x504834)[_0x32e9('0x26')](handleEntityNotFound(_0x42ccbd,null))['then'](respondWithResult(_0x42ccbd,null))['catch'](handleError(_0x42ccbd,null));};exports['create']=function(_0x2db960,_0x66d8a4){return db[_0x32e9('0x2c')][_0x32e9('0x46')](_0x2db960[_0x32e9('0x47')],{})[_0x32e9('0x26')](function(_0x399569){var _0xe8ac4b=_0x2db960[_0x32e9('0x48')][_0x32e9('0x49')]({'plain':!![]});if(!_0xe8ac4b)throw new Error(_0x32e9('0x4a'));if(_0xe8ac4b['role']===_0x32e9('0x48')){var _0x274dfb=_0x399569[_0x32e9('0x49')]({'plain':!![]});var _0xc6db1c=_0x32e9('0x4b');return db[_0x32e9('0x4c')][_0x32e9('0x45')]({'where':{'name':_0xc6db1c,'userProfileId':_0xe8ac4b[_0x32e9('0x4d')]},'raw':!![]})[_0x32e9('0x26')](function(_0x406ccd){if(_0x406ccd&&_0x406ccd[_0x32e9('0x4e')]===0x0){return db[_0x32e9('0x4f')][_0x32e9('0x46')]({'name':_0x274dfb['name'],'resourceId':_0x274dfb['id'],'type':_0x406ccd[_0x32e9('0x28')],'sectionId':_0x406ccd['id']},{})['then'](function(){return _0x399569;});}else{return _0x399569;}})[_0x32e9('0x50')](function(_0x23046a){logger[_0x32e9('0x27')](_0x32e9('0x51'),_0x23046a);throw _0x23046a;});}return _0x399569;})['then'](respondWithResult(_0x66d8a4,0xc9))['catch'](handleError(_0x66d8a4,null));};exports[_0x32e9('0x52')]=function(_0x35adba,_0x69727b){if(_0x35adba[_0x32e9('0x47')]['id']){delete _0x35adba['body']['id'];}return db[_0x32e9('0x2c')][_0x32e9('0x45')]({'where':{'id':_0x35adba[_0x32e9('0x44')]['id']}})[_0x32e9('0x26')](handleEntityNotFound(_0x69727b,null))['then'](saveUpdates(_0x35adba[_0x32e9('0x47')],null))[_0x32e9('0x26')](respondWithResult(_0x69727b,null))[_0x32e9('0x50')](handleError(_0x69727b,null));};exports[_0x32e9('0x53')]=function(_0x5c0e86,_0xfa37a7){var _0x4af7d3=_0x5c0e86['params']['id'];var _0x560b88=[];return db['sequelize']['transaction'](function(_0x46881c){var _0x555fc9='SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20'+_0x4af7d3;return db[_0x32e9('0x54')]['query'](_0x555fc9,{'type':db[_0x32e9('0x55')][_0x32e9('0x56')][_0x32e9('0x57')],'raw':!![],'transaction':_0x46881c})['then'](function(_0x4081d6){_0x560b88=_['map'](_0x4081d6,function(_0x21b334){return Number(_0x21b334['UserId']);});})['then'](function(){var _0xd4c611=_0x32e9('0x58')+_0x4af7d3;return db[_0x32e9('0x54')][_0x32e9('0x30')](_0xd4c611,{'type':db[_0x32e9('0x55')][_0x32e9('0x56')][_0x32e9('0x57')],'raw':!![],'transaction':_0x46881c});})[_0x32e9('0x26')](function(_0x2e0e6f){var _0x304333=_['map'](_0x2e0e6f,function(_0x306f50){return Number(_0x306f50[_0x32e9('0x59')]);});return db[_0x32e9('0x5a')]['destroy']({'where':{'UserId':{'$in':_0x560b88},'VoiceQueueId':{'$in':_0x304333}},'transaction':_0x46881c});})['then'](function(){var _0x1b00ea=_0x32e9('0x5b')+_0x4af7d3;return db['sequelize'][_0x32e9('0x30')](_0x1b00ea,{'type':db[_0x32e9('0x55')][_0x32e9('0x56')]['SELECT'],'raw':!![],'transaction':_0x46881c});})[_0x32e9('0x26')](function(_0x4cfbfb){var _0x32021d=_['map'](_0x4cfbfb,function(_0x2f110c){return Number(_0x2f110c['MailQueueId']);});return db[_0x32e9('0x5c')][_0x32e9('0x53')]({'where':{'UserId':{'$in':_0x560b88},'MailQueueId':{'$in':_0x32021d}},'transaction':_0x46881c});})[_0x32e9('0x26')](function(){var _0x1ddc03=_0x32e9('0x5d')+_0x4af7d3;return db[_0x32e9('0x54')][_0x32e9('0x30')](_0x1ddc03,{'type':db[_0x32e9('0x55')][_0x32e9('0x56')][_0x32e9('0x57')],'raw':!![],'transaction':_0x46881c});})[_0x32e9('0x26')](function(_0x4d4cb4){var _0x547eaa=_[_0x32e9('0x2b')](_0x4d4cb4,function(_0x530063){return Number(_0x530063[_0x32e9('0x5e')]);});return db[_0x32e9('0x5f')][_0x32e9('0x53')]({'where':{'UserId':{'$in':_0x560b88},'SmsQueueId':{'$in':_0x547eaa}},'transaction':_0x46881c});})['then'](function(){var _0x231616=_0x32e9('0x60')+_0x4af7d3;return db['sequelize']['query'](_0x231616,{'type':db[_0x32e9('0x55')][_0x32e9('0x56')]['SELECT'],'raw':!![],'transaction':_0x46881c});})['then'](function(_0x37f0c2){var _0x1b187d=_[_0x32e9('0x2b')](_0x37f0c2,function(_0x46c5cf){return Number(_0x46c5cf[_0x32e9('0x61')]);});return db[_0x32e9('0x62')][_0x32e9('0x53')]({'where':{'UserId':{'$in':_0x560b88},'ChatQueueId':{'$in':_0x1b187d}},'transaction':_0x46881c});})[_0x32e9('0x26')](function(){var _0x4967d5='SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20'+_0x4af7d3;return db[_0x32e9('0x54')][_0x32e9('0x30')](_0x4967d5,{'type':db[_0x32e9('0x55')][_0x32e9('0x56')]['SELECT'],'raw':!![],'transaction':_0x46881c});})[_0x32e9('0x26')](function(_0x241150){var _0x5d2f35=_[_0x32e9('0x2b')](_0x241150,function(_0x14d1bc){return Number(_0x14d1bc[_0x32e9('0x63')]);});return db[_0x32e9('0x64')]['destroy']({'where':{'UserId':{'$in':_0x560b88},'FaxQueueId':{'$in':_0x5d2f35}},'transaction':_0x46881c});})[_0x32e9('0x26')](function(){var _0xda7cdb=_0x32e9('0x65')+_0x4af7d3;return db[_0x32e9('0x54')][_0x32e9('0x30')](_0xda7cdb,{'type':db[_0x32e9('0x55')][_0x32e9('0x56')]['SELECT'],'raw':!![],'transaction':_0x46881c});})[_0x32e9('0x26')](function(_0x3aae08){var _0x5c6d17=_[_0x32e9('0x2b')](_0x3aae08,function(_0x51d410){return Number(_0x51d410[_0x32e9('0x66')]);});return db['UserOpenchannelQueue'][_0x32e9('0x53')]({'where':{'UserId':{'$in':_0x560b88},'OpenchannelQueueId':{'$in':_0x5c6d17}},'transaction':_0x46881c});})[_0x32e9('0x26')](function(){var _0x314505=_0x32e9('0x67')+_0x4af7d3;return db[_0x32e9('0x54')][_0x32e9('0x30')](_0x314505,{'type':db[_0x32e9('0x55')][_0x32e9('0x56')][_0x32e9('0x57')],'raw':!![],'transaction':_0x46881c});})[_0x32e9('0x26')](function(_0x1ac1da){var _0x18cdc4=_[_0x32e9('0x2b')](_0x1ac1da,function(_0x2e06af){return Number(_0x2e06af['WhatsappQueueId']);});return db['UserWhatsappQueue'][_0x32e9('0x53')]({'where':{'UserId':{'$in':_0x560b88},'WhatsappQueueId':{'$in':_0x18cdc4}},'transaction':_0x46881c});})[_0x32e9('0x26')](function(){return db[_0x32e9('0x68')][_0x32e9('0x45')]({'where':{'TeamId':_0x4af7d3}});})['then'](function(_0x62c8ca){if(_0x62c8ca===null){return;}return db[_0x32e9('0x69')][_0x32e9('0x53')]({'where':{'UserId':{'$in':_0x560b88},'VoicePrefixId':_0x62c8ca[_0x32e9('0x6a')]},'transaction':_0x46881c});})[_0x32e9('0x26')](function(){return db['Team'][_0x32e9('0x53')]({'where':{'id':_0x4af7d3},'cascade':!![],'transaction':_0x46881c});})['then'](function(_0x1ca1e3){if(_0x1ca1e3===0x0){_0xfa37a7['sendStatus'](0x194);}else{return db['UserProfileResource'][_0x32e9('0x53')]({'where':{'type':'Teams','resourceId':_0x4af7d3},'cascade':!![],'transaction':_0x46881c})[_0x32e9('0x26')](function(){_0xfa37a7[_0x32e9('0x1a')](0xcc)[_0x32e9('0x1b')]();});}})[_0x32e9('0x50')](function(_0x2ebbbf){_0xfa37a7[_0x32e9('0x1a')](0x1f4)[_0x32e9('0x29')](_0x2ebbbf);});});};exports[_0x32e9('0x6b')]=function(_0x25d55b,_0x129517,_0x17a0b8){return db[_0x32e9('0x2c')][_0x32e9('0x6c')]({'where':{'id':_0x25d55b[_0x32e9('0x44')]['id']}})[_0x32e9('0x26')](handleEntityNotFound(_0x129517,null))['then'](function(_0x49f04e){if(!_0x25d55b[_0x32e9('0x30')][_0x32e9('0x6d')]||!utils['isValidChannel'](_0x25d55b['query'][_0x32e9('0x6d')])){throw new db['Sequelize'][(_0x32e9('0x6e'))](_0x32e9('0x6f'));}var _0x31ffca={};var _0x3291c9={};_0x3291c9['model']=_['keys'](db[_[_0x32e9('0x70')](_0x25d55b[_0x32e9('0x30')]['channel']['toLowerCase']())+_0x32e9('0x71')][_0x32e9('0x2d')]);_0x3291c9['query']=_['keys'](_0x25d55b[_0x32e9('0x30')]);_0x3291c9[_0x32e9('0x32')]=_[_0x32e9('0x34')](_0x3291c9[_0x32e9('0x2f')],_0x3291c9[_0x32e9('0x30')]);_0x31ffca[_0x32e9('0x33')]=_[_0x32e9('0x34')](_0x3291c9[_0x32e9('0x2f')],qs[_0x32e9('0x35')](_0x25d55b[_0x32e9('0x30')][_0x32e9('0x35')]));_0x31ffca[_0x32e9('0x33')]=_0x31ffca[_0x32e9('0x33')][_0x32e9('0x36')]?_0x31ffca[_0x32e9('0x33')]:_0x3291c9[_0x32e9('0x2f')];_0x31ffca['limit']=qs[_0x32e9('0x1e')](_0x25d55b[_0x32e9('0x30')]['limit']);_0x31ffca[_0x32e9('0x20')]=qs['offset'](_0x25d55b[_0x32e9('0x30')][_0x32e9('0x20')]);_0x31ffca[_0x32e9('0x39')]=qs[_0x32e9('0x3a')](_0x25d55b[_0x32e9('0x30')][_0x32e9('0x3a')]);_0x31ffca[_0x32e9('0x3b')]=qs['filters'](_['pick'](_0x25d55b[_0x32e9('0x30')],_0x3291c9[_0x32e9('0x32')]));_0x31ffca=_[_0x32e9('0x3d')]({},_0x31ffca,_0x25d55b[_0x32e9('0x3f')]);return _0x49f04e['get'+_[_0x32e9('0x70')](_0x25d55b[_0x32e9('0x30')][_0x32e9('0x6d')][_0x32e9('0x72')]())+_0x32e9('0x73')](_0x31ffca);})[_0x32e9('0x26')](respondWithResult(_0x129517,null))['catch'](handleError(_0x129517,null));};exports['addQueues']=function(_0x57df86,_0x252bf9,_0xe119f4){return db[_0x32e9('0x2c')][_0x32e9('0x6c')]({'where':{'id':_0x57df86[_0x32e9('0x44')]['id']}})[_0x32e9('0x26')](function(_0x5006b2){if(_0x5006b2){if(!_0x57df86[_0x32e9('0x47')]['channel']||!utils[_0x32e9('0x74')](_0x57df86['body'][_0x32e9('0x6d')])){throw new db['Sequelize'][(_0x32e9('0x6e'))](_0x32e9('0x6f'));}return _0x5006b2[_0x32e9('0x75')+_[_0x32e9('0x70')](_0x57df86[_0x32e9('0x47')]['channel'][_0x32e9('0x72')]())+_0x32e9('0x73')](_0x57df86[_0x32e9('0x47')][_0x32e9('0x76')]);}return null;})[_0x32e9('0x26')](handleEntityNotFound(_0x252bf9,null))[_0x32e9('0x26')](respondWithStatusCode(_0x252bf9,null))[_0x32e9('0x50')](handleError(_0x252bf9,null));};exports['removeQueues']=function(_0x1d3e79,_0x405ced,_0x4928ce){return db[_0x32e9('0x2c')][_0x32e9('0x6c')]({'where':{'id':_0x1d3e79[_0x32e9('0x44')]['id']}})[_0x32e9('0x26')](function(_0x41dcb1){if(_0x41dcb1){if(!_0x1d3e79[_0x32e9('0x30')][_0x32e9('0x6d')]||!utils[_0x32e9('0x74')](_0x1d3e79[_0x32e9('0x30')]['channel'])){throw new db['Sequelize'][(_0x32e9('0x6e'))](_0x32e9('0x6f'));}return _0x41dcb1[_0x32e9('0x77')+_[_0x32e9('0x70')](_0x1d3e79[_0x32e9('0x30')][_0x32e9('0x6d')][_0x32e9('0x72')]())+_0x32e9('0x73')](_0x1d3e79[_0x32e9('0x30')]['ids']);}return null;})[_0x32e9('0x26')](handleEntityNotFound(_0x405ced,null))[_0x32e9('0x26')](respondWithStatusCode(_0x405ced,null))[_0x32e9('0x50')](handleError(_0x405ced,null));};exports['addAgents']=function(_0x16566a,_0x104280){var _0x48d408=_[_0x32e9('0x78')](_0x16566a[_0x32e9('0x47')][_0x32e9('0x76')])?_0x16566a[_0x32e9('0x47')][_0x32e9('0x76')]:[_0x16566a['body'][_0x32e9('0x76')]];var _0x1fbfcc=_0x16566a[_0x32e9('0x44')]['id'];return db[_0x32e9('0x2c')][_0x32e9('0x45')]({'where':{'id':_0x1fbfcc}})['then'](handleEntityNotFound(_0x104280,null))[_0x32e9('0x26')](function(_0x2574d9){if(_0x2574d9){var _0x12f6b9=['Voice','Chat','Mail','Sms',_0x32e9('0x79'),_0x32e9('0x7a'),_0x32e9('0x7b')];return db[_0x32e9('0x54')]['transaction'](function(_0x4e8ec0){var _0x279774=_['map'](_0x12f6b9,function(_0x51a94b){var _0x385090={'attributes':['id',_0x32e9('0x28')]};if(_0x51a94b==='Voice'){_0x385090['through']={'attributes':[_0x32e9('0x7c')]};}return _0x2574d9[_0x32e9('0x49')+_0x51a94b+_0x32e9('0x73')](_0x385090)[_0x32e9('0x26')](function(_0x5de8c4){var _0x168236=_['map'](_0x5de8c4,function(_0x17d400){var _0x455e3b=_[_0x32e9('0x2b')](_0x48d408,function(_0x491b96){var _0x4da573={'where':{'UserId':_0x491b96,[_0x51a94b+'QueueId']:_0x17d400['id']},'transaction':_0x4e8ec0};if(_0x51a94b===_0x32e9('0x7d')){_0x4da573[_0x32e9('0x14')]={'penalty':_0x17d400['TeamVoiceQueue'][_0x32e9('0x7c')]};}return db[_0x32e9('0x7e')+_0x51a94b+_0x32e9('0x71')][_0x32e9('0x7f')](_0x4da573)['then'](function(){socket[_0x32e9('0x80')]('user'+_0x51a94b+_0x32e9('0x81'),{'UserId':_0x491b96,[_0x51a94b+_0x32e9('0x82')]:_0x17d400['id']});if(_0x51a94b!=='Voice'){return;}return db[_0x32e9('0x7e')]['findAll']({'where':{'id':_0x48d408,'online':0x1},'attributes':['id',_0x32e9('0x28'),_0x32e9('0x83'),_0x32e9('0x84'),_0x32e9('0x85')],'raw':!![]})[_0x32e9('0x26')](function(_0x302c80){var _0xc15ab9=_[_0x32e9('0x2b')](_0x302c80,function(_0x45afca){return db[_0x32e9('0x86')]['upsert']({'membername':_0x45afca[_0x32e9('0x28')],'UserId':_0x45afca['id'],'queue_name':_0x17d400['name'],'VoiceQueueId':_0x17d400['id'],'interface':_[_0x32e9('0x87')](_0x45afca[_0x32e9('0x85')])?util[_0x32e9('0x88')](_0x32e9('0x89'),_0x45afca[_0x32e9('0x28')]):_0x45afca[_0x32e9('0x85')],'paused':_0x45afca[_0x32e9('0x84')]||![],'penalty':_0x17d400[_0x32e9('0x8a')]['penalty']},{'transaction':_0x4e8ec0});});return Promise[_0x32e9('0x8b')](_0xc15ab9);});});});return Promise[_0x32e9('0x8b')](_0x455e3b);});return Promise['all'](_0x168236);})[_0x32e9('0x26')](function(){return db[_0x32e9('0x68')][_0x32e9('0x6c')]({'where':{'teamId':_0x1fbfcc}})[_0x32e9('0x26')](function(_0x2aadca){if(_0x2aadca){var _0x556c74=_[_0x32e9('0x2b')](_0x48d408,function(_0x372021){db[_0x32e9('0x69')][_0x32e9('0x8c')]({'UserId':_0x372021,'VoicePrefixId':_0x2aadca[_0x32e9('0x6a')]});});return Promise[_0x32e9('0x8b')](_0x556c74);}});});});return Promise[_0x32e9('0x8b')](_0x279774)['then'](function(){return _0x2574d9[_0x32e9('0x8d')](_0x48d408,{'transaction':_0x4e8ec0})[_0x32e9('0x8e')](function(_0x2ac639){return _0x2ac639;});});});}})[_0x32e9('0x26')](respondWithResult(_0x104280,null))[_0x32e9('0x50')](handleError(_0x104280,null));};exports[_0x32e9('0x8f')]=function(_0x3d0093,_0x3e04e5){var _0x3761a3=_['isArray'](_0x3d0093['query'][_0x32e9('0x76')])?_0x3d0093[_0x32e9('0x30')][_0x32e9('0x76')]:[_0x3d0093[_0x32e9('0x30')][_0x32e9('0x76')]];var _0x2b3e93=_0x3d0093['params']['id'];return db['Team'][_0x32e9('0x45')]({'where':{'id':_0x2b3e93}})['then'](handleEntityNotFound(_0x3e04e5,null))[_0x32e9('0x26')](function(_0x182fec){if(_0x182fec){var _0x257b7f=[_0x32e9('0x7d'),_0x32e9('0x90'),'Mail',_0x32e9('0x91'),_0x32e9('0x79'),_0x32e9('0x7a'),_0x32e9('0x7b')];return db[_0x32e9('0x54')][_0x32e9('0x92')](function(_0x2dfafe){var _0x155ff4=_['map'](_0x257b7f,function(_0xfd1c74){var _0x197987={'attributes':['id','name']};return _0x182fec[_0x32e9('0x49')+_0xfd1c74+_0x32e9('0x73')](_0x197987)[_0x32e9('0x26')](function(_0x47329e){var _0x40b63c=_[_0x32e9('0x2b')](_0x47329e,function(_0x4cc6c0){return _0x4cc6c0[_0x32e9('0x8f')](_0x3761a3,{'transaction':_0x2dfafe})['then'](function(){var _0x71535=_['map'](_0x3761a3,function(_0x426376){socket[_0x32e9('0x80')]('user'+_0xfd1c74+_0x32e9('0x93'),{'UserId':Number(_0x426376),[_0xfd1c74+_0x32e9('0x82')]:_0x4cc6c0['id']});if(_0xfd1c74!==_0x32e9('0x7d')){return;}return db[_0x32e9('0x86')]['destroy']({'where':{'VoiceQueueId':_0x4cc6c0['id'],'UserId':_0x426376},'transaction':_0x2dfafe});});return Promise[_0x32e9('0x8b')](_0x71535);});});return Promise[_0x32e9('0x8b')](_0x40b63c);});});return Promise[_0x32e9('0x8b')](_0x155ff4)[_0x32e9('0x26')](function(){return _0x182fec[_0x32e9('0x8f')](_0x3761a3,{'transaction':_0x2dfafe});})[_0x32e9('0x26')](function(){return db['TeamVoicePrefix']['findOne']({'where':{'teamId':_0x2b3e93}})['then'](function(_0x11b35f){if(_0x11b35f){var _0x427276=_[_0x32e9('0x2b')](_0x3761a3,function(_0x26fcb2){db[_0x32e9('0x69')][_0x32e9('0x53')]({'where':{'UserId':_0x26fcb2,'VoicePrefixId':_0x11b35f['VoicePrefixId']}});});return Promise[_0x32e9('0x8b')](_0x427276);}});});});}})[_0x32e9('0x26')](respondWithStatusCode(_0x3e04e5,null))[_0x32e9('0x50')](handleError(_0x3e04e5,null));};exports['getAgents']=function(_0x4a982b,_0x259e0f,_0x21159a){var _0x2112d6={};var _0x2c00dc={};var _0x1f2c89;var _0x56db06;return db['Team'][_0x32e9('0x6c')]({'where':{'id':_0x4a982b[_0x32e9('0x44')]['id']}})[_0x32e9('0x26')](handleEntityNotFound(_0x259e0f,null))[_0x32e9('0x26')](function(_0x449039){if(_0x449039){_0x1f2c89=_0x449039;_0x2c00dc['model']=_[_0x32e9('0x31')](db[_0x32e9('0x7e')]['rawAttributes']);_0x2c00dc[_0x32e9('0x30')]=_[_0x32e9('0x31')](_0x4a982b[_0x32e9('0x30')]);_0x2c00dc['filters']=_[_0x32e9('0x34')](_0x2c00dc['model'],_0x2c00dc[_0x32e9('0x30')]);_0x2112d6['attributes']=_[_0x32e9('0x34')](_0x2c00dc['model'],qs[_0x32e9('0x35')](_0x4a982b[_0x32e9('0x30')][_0x32e9('0x35')]));_0x2112d6['attributes']=_0x2112d6[_0x32e9('0x33')][_0x32e9('0x36')]?_0x2112d6[_0x32e9('0x33')]:_0x2c00dc[_0x32e9('0x2f')];_0x2112d6[_0x32e9('0x39')]=qs[_0x32e9('0x3a')](_0x4a982b[_0x32e9('0x30')][_0x32e9('0x3a')]);_0x2112d6[_0x32e9('0x3b')]=qs[_0x32e9('0x32')](_['pick'](_0x4a982b[_0x32e9('0x30')],_0x2c00dc[_0x32e9('0x32')]));if(_0x4a982b['query'][_0x32e9('0x3c')]){_0x2112d6[_0x32e9('0x3b')]=_['merge'](_0x2112d6[_0x32e9('0x3b')],{'$or':_['map'](_0x2112d6[_0x32e9('0x33')],function(_0x8846a){var _0x148b77={};_0x148b77[_0x8846a]={'$like':'%'+_0x4a982b['query'][_0x32e9('0x3c')]+'%'};return _0x148b77;})});}_0x2112d6=_[_0x32e9('0x3d')]({},_0x2112d6,_0x4a982b[_0x32e9('0x3f')]);return _0x1f2c89['getAgents'](_0x2112d6);}})[_0x32e9('0x26')](function(_0x1c9401){if(_0x1c9401){_0x56db06=_0x1c9401['length'];if(!_0x4a982b[_0x32e9('0x30')][_0x32e9('0x37')](_0x32e9('0x38'))){_0x2112d6[_0x32e9('0x1e')]=qs[_0x32e9('0x1e')](_0x4a982b[_0x32e9('0x30')][_0x32e9('0x1e')]);_0x2112d6[_0x32e9('0x20')]=qs[_0x32e9('0x20')](_0x4a982b[_0x32e9('0x30')]['offset']);}return _0x1f2c89[_0x32e9('0x94')](_0x2112d6);}})[_0x32e9('0x26')](function(_0x37568e){if(_0x37568e){return _0x37568e?{'count':_0x56db06,'rows':_0x37568e}:null;}})[_0x32e9('0x26')](respondWithResult(_0x259e0f,null))[_0x32e9('0x50')](handleError(_0x259e0f,null));};