2b3c513b682cb5028c587e9896f000752fd646d3
[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 _0x2e0f=['role','get','Teams','UserProfileSection','userProfileId','body','transaction','sequelize','Sequelize','QueryTypes','UserId','SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20','SELECT','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','destroy','ChatQueueId','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','WhatsappQueueId','UserWhatsappQueue','TeamVoicePrefix','UserVoicePrefix','VoicePrefixId','UserProfileResource','getQueues','findOne','Unknown\x20channel','capitalize','channel','Queue','pick','toLowerCase','Queues','addQueues','isValidChannel','ValidationError','add','ids','removeQueues','remove','isArray','Voice','Chat','Mail','Sms','Fax','Whatsapp','through','penalty','defaults','User','findOrCreate','emit','QueueId','online','UserVoiceQueueRt','upsert','isNil','format','SIP/%s','interface','TeamVoiceQueue','all','addAgents','removeAgents','Openchannel','Queue:remove','getAgents','eml-format','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','redis','localhost','socket.io-emitter','register','sendStatus','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','name','status','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','attributes','intersection','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','VIRTUAL','options','Team','includeAll','findAll','catch','show','params','fields','include','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user'];(function(_0x1d558c,_0x1e497c){var _0x15767d=function(_0x26326d){while(--_0x26326d){_0x1d558c['push'](_0x1d558c['shift']());}};_0x15767d(++_0x1e497c);}(_0x2e0f,0xe9));var _0xf2e0=function(_0x9bda38,_0x263439){_0x9bda38=_0x9bda38-0x0;var _0x3e87e9=_0x2e0f[_0x9bda38];return _0x3e87e9;};'use strict';var emlformat=require(_0xf2e0('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xf2e0('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xf2e0('0x2'));var moment=require(_0xf2e0('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xf2e0('0x4'));var util=require(_0xf2e0('0x5'));var path=require(_0xf2e0('0x6'));var sox=require(_0xf2e0('0x7'));var csv=require(_0xf2e0('0x8'));var ejs=require(_0xf2e0('0x9'));var fs=require('fs');var fs_extra=require(_0xf2e0('0xa'));var _=require(_0xf2e0('0xb'));var squel=require(_0xf2e0('0xc'));var crypto=require(_0xf2e0('0xd'));var jsforce=require(_0xf2e0('0xe'));var deskjs=require(_0xf2e0('0xf'));var toCsv=require(_0xf2e0('0x8'));var querystring=require(_0xf2e0('0x10'));var Papa=require(_0xf2e0('0x11'));var Redis=require(_0xf2e0('0x12'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xf2e0('0x13'));var hardwareService=require(_0xf2e0('0x14'));var logger=require(_0xf2e0('0x15'))('api');var utils=require(_0xf2e0('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xf2e0('0x17'));var db=require('../../mysqldb')['db'];config[_0xf2e0('0x18')]=_['defaults'](config[_0xf2e0('0x18')],{'host':_0xf2e0('0x19'),'port':0x18eb});var socket=require(_0xf2e0('0x1a'))(new Redis(config['redis']));require('./team.socket')[_0xf2e0('0x1b')](socket);function respondWithStatusCode(_0x329050,_0x3ca1ba){_0x3ca1ba=_0x3ca1ba||0xcc;return function(_0x2fa0f0){if(_0x2fa0f0){return _0x329050[_0xf2e0('0x1c')](_0x3ca1ba);}return _0x329050['status'](_0x3ca1ba)[_0xf2e0('0x1d')]();};}function respondWithResult(_0x385c96,_0x129e1d){_0x129e1d=_0x129e1d||0xc8;return function(_0x4a2e02){if(_0x4a2e02){return _0x385c96['status'](_0x129e1d)[_0xf2e0('0x1e')](_0x4a2e02);}};}function respondWithFilteredResult(_0x4b8ed2,_0x340d57){return function(_0x5662e5){if(_0x5662e5){var _0x53051e=typeof _0x340d57['offset']===_0xf2e0('0x1f')&&typeof _0x340d57[_0xf2e0('0x20')]===_0xf2e0('0x1f');var _0x443dd0=_0x5662e5[_0xf2e0('0x21')];var _0x1398f5=_0x53051e?0x0:_0x340d57[_0xf2e0('0x22')];var _0x21ff6a=_0x53051e?_0x5662e5[_0xf2e0('0x21')]:_0x340d57[_0xf2e0('0x22')]+_0x340d57['limit'];var _0x36b270;if(_0x21ff6a>=_0x443dd0){_0x21ff6a=_0x443dd0;_0x36b270=0xc8;}else{_0x36b270=0xce;}_0x4b8ed2['status'](_0x36b270);return _0x4b8ed2[_0xf2e0('0x23')](_0xf2e0('0x24'),_0x1398f5+'-'+_0x21ff6a+'/'+_0x443dd0)[_0xf2e0('0x1e')](_0x5662e5);}return null;};}function patchUpdates(_0x4b0083){return function(_0x45f2de){try{jsonpatch[_0xf2e0('0x25')](_0x45f2de,_0x4b0083,!![]);}catch(_0x28271e){return BPromise[_0xf2e0('0x26')](_0x28271e);}return _0x45f2de[_0xf2e0('0x27')]();};}function saveUpdates(_0x4bb42e,_0x48d997){return function(_0x4ac467){if(_0x4ac467){return _0x4ac467[_0xf2e0('0x28')](_0x4bb42e)[_0xf2e0('0x29')](function(_0x26cd48){return _0x26cd48;});}return null;};}function handleEntityNotFound(_0x50402c,_0x4bad22){return function(_0x3e5af8){if(!_0x3e5af8){_0x50402c[_0xf2e0('0x1c')](0x194);}return _0x3e5af8;};}function handleError(_0xde4404,_0x57cc61){_0x57cc61=_0x57cc61||0x1f4;return function(_0x508890){logger['error'](_0x508890['stack']);if(_0x508890[_0xf2e0('0x2a')]){delete _0x508890[_0xf2e0('0x2a')];}_0xde4404[_0xf2e0('0x2b')](_0x57cc61)[_0xf2e0('0x2c')](_0x508890);};}exports[_0xf2e0('0x2d')]=function(_0x26bc6f,_0x3c98d4){var _0x1a020d={},_0x3f1ab4={},_0x531ab3={'count':0x0,'rows':[]};var _0x5229dc=_[_0xf2e0('0x2e')](db['Team'][_0xf2e0('0x2f')],function(_0xd0c7d4){return{'name':_0xd0c7d4[_0xf2e0('0x30')],'type':_0xd0c7d4[_0xf2e0('0x31')][_0xf2e0('0x32')]};});_0x3f1ab4[_0xf2e0('0x33')]=_[_0xf2e0('0x2e')](_0x5229dc,_0xf2e0('0x2a'));_0x3f1ab4[_0xf2e0('0x34')]=_[_0xf2e0('0x35')](_0x26bc6f[_0xf2e0('0x34')]);_0x3f1ab4['filters']=_['intersection'](_0x3f1ab4[_0xf2e0('0x33')],_0x3f1ab4[_0xf2e0('0x34')]);_0x1a020d[_0xf2e0('0x36')]=_[_0xf2e0('0x37')](_0x3f1ab4['model'],qs['fields'](_0x26bc6f[_0xf2e0('0x34')]['fields']));_0x1a020d[_0xf2e0('0x36')]=_0x1a020d[_0xf2e0('0x36')][_0xf2e0('0x38')]?_0x1a020d['attributes']:_0x3f1ab4[_0xf2e0('0x33')];if(!_0x26bc6f[_0xf2e0('0x34')][_0xf2e0('0x39')](_0xf2e0('0x3a'))){_0x1a020d[_0xf2e0('0x20')]=qs['limit'](_0x26bc6f['query'][_0xf2e0('0x20')]);_0x1a020d[_0xf2e0('0x22')]=qs['offset'](_0x26bc6f[_0xf2e0('0x34')][_0xf2e0('0x22')]);}_0x1a020d[_0xf2e0('0x3b')]=qs[_0xf2e0('0x3c')](_0x26bc6f['query'][_0xf2e0('0x3c')]);_0x1a020d[_0xf2e0('0x3d')]=qs[_0xf2e0('0x3e')](_['pick'](_0x26bc6f[_0xf2e0('0x34')],_0x3f1ab4[_0xf2e0('0x3e')]),_0x5229dc);if(_0x26bc6f['query'][_0xf2e0('0x3f')]){_0x1a020d[_0xf2e0('0x3d')]=_[_0xf2e0('0x40')](_0x1a020d[_0xf2e0('0x3d')],{'$or':_[_0xf2e0('0x2e')](_0x5229dc,function(_0x7621d6){if(_0x7621d6[_0xf2e0('0x31')]!==_0xf2e0('0x41')){var _0x452827={};_0x452827[_0x7621d6[_0xf2e0('0x2a')]]={'$like':'%'+_0x26bc6f[_0xf2e0('0x34')][_0xf2e0('0x3f')]+'%'};return _0x452827;}})});}_0x1a020d=_['merge']({},_0x1a020d,_0x26bc6f[_0xf2e0('0x42')]);var _0x53a264={'where':_0x1a020d['where']};return db[_0xf2e0('0x43')]['count'](_0x53a264)[_0xf2e0('0x29')](function(_0x2ce72c){_0x531ab3['count']=_0x2ce72c;if(_0x26bc6f[_0xf2e0('0x34')][_0xf2e0('0x44')]){_0x1a020d['include']=[{'all':!![]}];}return db[_0xf2e0('0x43')][_0xf2e0('0x45')](_0x1a020d);})[_0xf2e0('0x29')](function(_0x59bb38){_0x531ab3['rows']=_0x59bb38;return _0x531ab3;})[_0xf2e0('0x29')](respondWithFilteredResult(_0x3c98d4,_0x1a020d))[_0xf2e0('0x46')](handleError(_0x3c98d4,null));};exports[_0xf2e0('0x47')]=function(_0x5db46a,_0x5fcfd3){var _0x2753f2={'raw':![],'where':{'id':_0x5db46a[_0xf2e0('0x48')]['id']}},_0x31189={};_0x31189['model']=_[_0xf2e0('0x35')](db[_0xf2e0('0x43')][_0xf2e0('0x2f')]);_0x31189[_0xf2e0('0x34')]=_['keys'](_0x5db46a['query']);_0x31189['filters']=_[_0xf2e0('0x37')](_0x31189[_0xf2e0('0x33')],_0x31189['query']);_0x2753f2[_0xf2e0('0x36')]=_[_0xf2e0('0x37')](_0x31189[_0xf2e0('0x33')],qs['fields'](_0x5db46a[_0xf2e0('0x34')][_0xf2e0('0x49')]));_0x2753f2['attributes']=_0x2753f2[_0xf2e0('0x36')][_0xf2e0('0x38')]?_0x2753f2[_0xf2e0('0x36')]:_0x31189['model'];if(_0x5db46a[_0xf2e0('0x34')][_0xf2e0('0x44')]){_0x2753f2[_0xf2e0('0x4a')]=[{'all':!![]}];}_0x2753f2=_[_0xf2e0('0x40')]({},_0x2753f2,_0x5db46a['options']);return db['Team'][_0xf2e0('0x4b')](_0x2753f2)[_0xf2e0('0x29')](handleEntityNotFound(_0x5fcfd3,null))[_0xf2e0('0x29')](respondWithResult(_0x5fcfd3,null))[_0xf2e0('0x46')](handleError(_0x5fcfd3,null));};exports['create']=function(_0x317cd1,_0x75cc78){return db[_0xf2e0('0x43')][_0xf2e0('0x4c')](_0x317cd1['body'],{})[_0xf2e0('0x29')](function(_0x6476a2){var _0x8485bd=_0x317cd1[_0xf2e0('0x4d')]['get']({'plain':!![]});if(!_0x8485bd)throw new Error(_0xf2e0('0x4e'));if(_0x8485bd[_0xf2e0('0x4f')]===_0xf2e0('0x4d')){var _0x5304f3=_0x6476a2[_0xf2e0('0x50')]({'plain':!![]});var _0x2a3730=_0xf2e0('0x51');return db[_0xf2e0('0x52')][_0xf2e0('0x4b')]({'where':{'name':_0x2a3730,'userProfileId':_0x8485bd[_0xf2e0('0x53')]},'raw':!![]})[_0xf2e0('0x29')](function(_0x78a2b4){if(_0x78a2b4&&_0x78a2b4['autoAssociation']===0x0){return db['UserProfileResource'][_0xf2e0('0x4c')]({'name':_0x5304f3['name'],'resourceId':_0x5304f3['id'],'type':_0x78a2b4[_0xf2e0('0x2a')],'sectionId':_0x78a2b4['id']},{})[_0xf2e0('0x29')](function(){return _0x6476a2;});}else{return _0x6476a2;}})[_0xf2e0('0x46')](function(_0x571239){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x571239);throw _0x571239;});}return _0x6476a2;})[_0xf2e0('0x29')](respondWithResult(_0x75cc78,0xc9))['catch'](handleError(_0x75cc78,null));};exports[_0xf2e0('0x28')]=function(_0x4957d8,_0x2381e2){if(_0x4957d8[_0xf2e0('0x54')]['id']){delete _0x4957d8[_0xf2e0('0x54')]['id'];}return db[_0xf2e0('0x43')][_0xf2e0('0x4b')]({'where':{'id':_0x4957d8[_0xf2e0('0x48')]['id']}})[_0xf2e0('0x29')](handleEntityNotFound(_0x2381e2,null))[_0xf2e0('0x29')](saveUpdates(_0x4957d8[_0xf2e0('0x54')],null))[_0xf2e0('0x29')](respondWithResult(_0x2381e2,null))[_0xf2e0('0x46')](handleError(_0x2381e2,null));};exports['destroy']=function(_0x2dfb91,_0x3739f5){var _0xc3ca22=_0x2dfb91['params']['id'];var _0x1ba247=[];return db['sequelize'][_0xf2e0('0x55')](function(_0x3410f3){var _0x4a7f4d='SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20'+_0xc3ca22;return db[_0xf2e0('0x56')][_0xf2e0('0x34')](_0x4a7f4d,{'type':db[_0xf2e0('0x57')][_0xf2e0('0x58')]['SELECT'],'raw':!![],'transaction':_0x3410f3})['then'](function(_0x37aafd){_0x1ba247=_[_0xf2e0('0x2e')](_0x37aafd,function(_0x57db76){return Number(_0x57db76[_0xf2e0('0x59')]);});})[_0xf2e0('0x29')](function(){var _0x2b5e6d=_0xf2e0('0x5a')+_0xc3ca22;return db[_0xf2e0('0x56')][_0xf2e0('0x34')](_0x2b5e6d,{'type':db[_0xf2e0('0x57')][_0xf2e0('0x58')][_0xf2e0('0x5b')],'raw':!![],'transaction':_0x3410f3});})[_0xf2e0('0x29')](function(_0x3e6cbe){var _0x38ca2f=_[_0xf2e0('0x2e')](_0x3e6cbe,function(_0x1d52dd){return Number(_0x1d52dd['VoiceQueueId']);});return db[_0xf2e0('0x5c')]['destroy']({'where':{'UserId':{'$in':_0x1ba247},'VoiceQueueId':{'$in':_0x38ca2f}},'transaction':_0x3410f3});})['then'](function(){var _0x51bb82=_0xf2e0('0x5d')+_0xc3ca22;return db[_0xf2e0('0x56')]['query'](_0x51bb82,{'type':db[_0xf2e0('0x57')][_0xf2e0('0x58')][_0xf2e0('0x5b')],'raw':!![],'transaction':_0x3410f3});})[_0xf2e0('0x29')](function(_0x40e912){var _0x24191f=_[_0xf2e0('0x2e')](_0x40e912,function(_0x2fb0a1){return Number(_0x2fb0a1['MailQueueId']);});return db[_0xf2e0('0x5e')]['destroy']({'where':{'UserId':{'$in':_0x1ba247},'MailQueueId':{'$in':_0x24191f}},'transaction':_0x3410f3});})[_0xf2e0('0x29')](function(){var _0x21c2ea=_0xf2e0('0x5f')+_0xc3ca22;return db[_0xf2e0('0x56')][_0xf2e0('0x34')](_0x21c2ea,{'type':db[_0xf2e0('0x57')][_0xf2e0('0x58')]['SELECT'],'raw':!![],'transaction':_0x3410f3});})[_0xf2e0('0x29')](function(_0x1109ea){var _0x41f202=_[_0xf2e0('0x2e')](_0x1109ea,function(_0x116976){return Number(_0x116976[_0xf2e0('0x60')]);});return db['UserSmsQueue'][_0xf2e0('0x61')]({'where':{'UserId':{'$in':_0x1ba247},'SmsQueueId':{'$in':_0x41f202}},'transaction':_0x3410f3});})[_0xf2e0('0x29')](function(){var _0x498114='SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20'+_0xc3ca22;return db['sequelize'][_0xf2e0('0x34')](_0x498114,{'type':db[_0xf2e0('0x57')][_0xf2e0('0x58')][_0xf2e0('0x5b')],'raw':!![],'transaction':_0x3410f3});})['then'](function(_0x24d3ca){var _0x51661e=_[_0xf2e0('0x2e')](_0x24d3ca,function(_0x43fa45){return Number(_0x43fa45[_0xf2e0('0x62')]);});return db[_0xf2e0('0x63')][_0xf2e0('0x61')]({'where':{'UserId':{'$in':_0x1ba247},'ChatQueueId':{'$in':_0x51661e}},'transaction':_0x3410f3});})[_0xf2e0('0x29')](function(){var _0x59f1b1=_0xf2e0('0x64')+_0xc3ca22;return db[_0xf2e0('0x56')]['query'](_0x59f1b1,{'type':db[_0xf2e0('0x57')][_0xf2e0('0x58')][_0xf2e0('0x5b')],'raw':!![],'transaction':_0x3410f3});})[_0xf2e0('0x29')](function(_0x4db8b3){var _0x1a1b87=_['map'](_0x4db8b3,function(_0x38efea){return Number(_0x38efea[_0xf2e0('0x65')]);});return db[_0xf2e0('0x66')][_0xf2e0('0x61')]({'where':{'UserId':{'$in':_0x1ba247},'FaxQueueId':{'$in':_0x1a1b87}},'transaction':_0x3410f3});})['then'](function(){var _0x353403=_0xf2e0('0x67')+_0xc3ca22;return db[_0xf2e0('0x56')][_0xf2e0('0x34')](_0x353403,{'type':db['Sequelize'][_0xf2e0('0x58')][_0xf2e0('0x5b')],'raw':!![],'transaction':_0x3410f3});})[_0xf2e0('0x29')](function(_0x1d6af4){var _0x12de74=_['map'](_0x1d6af4,function(_0x2ccd3d){return Number(_0x2ccd3d[_0xf2e0('0x68')]);});return db[_0xf2e0('0x69')][_0xf2e0('0x61')]({'where':{'UserId':{'$in':_0x1ba247},'OpenchannelQueueId':{'$in':_0x12de74}},'transaction':_0x3410f3});})[_0xf2e0('0x29')](function(){var _0x5ee36b='SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20'+_0xc3ca22;return db['sequelize'][_0xf2e0('0x34')](_0x5ee36b,{'type':db[_0xf2e0('0x57')]['QueryTypes'][_0xf2e0('0x5b')],'raw':!![],'transaction':_0x3410f3});})[_0xf2e0('0x29')](function(_0x513bda){var _0x3871b9=_[_0xf2e0('0x2e')](_0x513bda,function(_0x472878){return Number(_0x472878[_0xf2e0('0x6a')]);});return db[_0xf2e0('0x6b')][_0xf2e0('0x61')]({'where':{'UserId':{'$in':_0x1ba247},'WhatsappQueueId':{'$in':_0x3871b9}},'transaction':_0x3410f3});})[_0xf2e0('0x29')](function(){return db[_0xf2e0('0x6c')][_0xf2e0('0x4b')]({'where':{'TeamId':_0xc3ca22}});})[_0xf2e0('0x29')](function(_0x437ba7){if(_0x437ba7===null){return;}return db[_0xf2e0('0x6d')][_0xf2e0('0x61')]({'where':{'UserId':{'$in':_0x1ba247},'VoicePrefixId':_0x437ba7[_0xf2e0('0x6e')]},'transaction':_0x3410f3});})[_0xf2e0('0x29')](function(){return db[_0xf2e0('0x43')]['destroy']({'where':{'id':_0xc3ca22},'cascade':!![],'transaction':_0x3410f3});})[_0xf2e0('0x29')](function(_0x310365){if(_0x310365===0x0){_0x3739f5['sendStatus'](0x194);}else{return db[_0xf2e0('0x6f')][_0xf2e0('0x61')]({'where':{'type':_0xf2e0('0x51'),'resourceId':_0xc3ca22},'cascade':!![],'transaction':_0x3410f3})[_0xf2e0('0x29')](function(){_0x3739f5[_0xf2e0('0x2b')](0xcc)[_0xf2e0('0x1d')]();});}})['catch'](function(_0x532281){_0x3739f5[_0xf2e0('0x2b')](0x1f4)[_0xf2e0('0x2c')](_0x532281);});});};exports[_0xf2e0('0x70')]=function(_0x69799e,_0x342e87,_0x2e1ae7){return db[_0xf2e0('0x43')][_0xf2e0('0x71')]({'where':{'id':_0x69799e[_0xf2e0('0x48')]['id']}})[_0xf2e0('0x29')](handleEntityNotFound(_0x342e87,null))[_0xf2e0('0x29')](function(_0x1382cc){if(!_0x69799e['query']['channel']||!utils['isValidChannel'](_0x69799e[_0xf2e0('0x34')]['channel'])){throw new db['Sequelize']['ValidationError'](_0xf2e0('0x72'));}var _0x1a37ed={};var _0x39baac={};_0x39baac['model']=_[_0xf2e0('0x35')](db[_[_0xf2e0('0x73')](_0x69799e[_0xf2e0('0x34')][_0xf2e0('0x74')]['toLowerCase']())+_0xf2e0('0x75')][_0xf2e0('0x2f')]);_0x39baac[_0xf2e0('0x34')]=_[_0xf2e0('0x35')](_0x69799e[_0xf2e0('0x34')]);_0x39baac[_0xf2e0('0x3e')]=_[_0xf2e0('0x37')](_0x39baac[_0xf2e0('0x33')],_0x39baac[_0xf2e0('0x34')]);_0x1a37ed[_0xf2e0('0x36')]=_[_0xf2e0('0x37')](_0x39baac['model'],qs['fields'](_0x69799e[_0xf2e0('0x34')][_0xf2e0('0x49')]));_0x1a37ed['attributes']=_0x1a37ed['attributes'][_0xf2e0('0x38')]?_0x1a37ed[_0xf2e0('0x36')]:_0x39baac['model'];_0x1a37ed[_0xf2e0('0x20')]=qs[_0xf2e0('0x20')](_0x69799e['query']['limit']);_0x1a37ed[_0xf2e0('0x22')]=qs[_0xf2e0('0x22')](_0x69799e[_0xf2e0('0x34')]['offset']);_0x1a37ed['order']=qs[_0xf2e0('0x3c')](_0x69799e[_0xf2e0('0x34')][_0xf2e0('0x3c')]);_0x1a37ed[_0xf2e0('0x3d')]=qs[_0xf2e0('0x3e')](_[_0xf2e0('0x76')](_0x69799e[_0xf2e0('0x34')],_0x39baac[_0xf2e0('0x3e')]));_0x1a37ed=_[_0xf2e0('0x40')]({},_0x1a37ed,_0x69799e['options']);return _0x1382cc[_0xf2e0('0x50')+_[_0xf2e0('0x73')](_0x69799e[_0xf2e0('0x34')][_0xf2e0('0x74')][_0xf2e0('0x77')]())+_0xf2e0('0x78')](_0x1a37ed);})['then'](respondWithResult(_0x342e87,null))['catch'](handleError(_0x342e87,null));};exports[_0xf2e0('0x79')]=function(_0x4bb4e8,_0x256bc5,_0x2e3ce3){return db['Team'][_0xf2e0('0x71')]({'where':{'id':_0x4bb4e8[_0xf2e0('0x48')]['id']}})[_0xf2e0('0x29')](function(_0x48411b){if(_0x48411b){if(!_0x4bb4e8[_0xf2e0('0x54')][_0xf2e0('0x74')]||!utils[_0xf2e0('0x7a')](_0x4bb4e8[_0xf2e0('0x54')][_0xf2e0('0x74')])){throw new db[(_0xf2e0('0x57'))][(_0xf2e0('0x7b'))]('Unknown\x20channel');}return _0x48411b[_0xf2e0('0x7c')+_[_0xf2e0('0x73')](_0x4bb4e8[_0xf2e0('0x54')]['channel'][_0xf2e0('0x77')]())+_0xf2e0('0x78')](_0x4bb4e8['body'][_0xf2e0('0x7d')]);}return null;})[_0xf2e0('0x29')](handleEntityNotFound(_0x256bc5,null))[_0xf2e0('0x29')](respondWithStatusCode(_0x256bc5,null))['catch'](handleError(_0x256bc5,null));};exports[_0xf2e0('0x7e')]=function(_0x57ae2c,_0x407894,_0x4e00e8){return db['Team'][_0xf2e0('0x71')]({'where':{'id':_0x57ae2c[_0xf2e0('0x48')]['id']}})[_0xf2e0('0x29')](function(_0x57dabc){if(_0x57dabc){if(!_0x57ae2c['query'][_0xf2e0('0x74')]||!utils[_0xf2e0('0x7a')](_0x57ae2c[_0xf2e0('0x34')][_0xf2e0('0x74')])){throw new db[(_0xf2e0('0x57'))]['ValidationError'](_0xf2e0('0x72'));}return _0x57dabc[_0xf2e0('0x7f')+_[_0xf2e0('0x73')](_0x57ae2c[_0xf2e0('0x34')]['channel'][_0xf2e0('0x77')]())+'Queues'](_0x57ae2c[_0xf2e0('0x34')][_0xf2e0('0x7d')]);}return null;})['then'](handleEntityNotFound(_0x407894,null))['then'](respondWithStatusCode(_0x407894,null))['catch'](handleError(_0x407894,null));};exports['addAgents']=function(_0x5ec741,_0x9cd363){var _0x57be94=_[_0xf2e0('0x80')](_0x5ec741[_0xf2e0('0x54')][_0xf2e0('0x7d')])?_0x5ec741[_0xf2e0('0x54')][_0xf2e0('0x7d')]:[_0x5ec741[_0xf2e0('0x54')]['ids']];var _0x38b94e=_0x5ec741[_0xf2e0('0x48')]['id'];return db[_0xf2e0('0x43')][_0xf2e0('0x4b')]({'where':{'id':_0x38b94e}})[_0xf2e0('0x29')](handleEntityNotFound(_0x9cd363,null))[_0xf2e0('0x29')](function(_0x22b112){if(_0x22b112){var _0xcb236=[_0xf2e0('0x81'),_0xf2e0('0x82'),_0xf2e0('0x83'),_0xf2e0('0x84'),_0xf2e0('0x85'),'Openchannel',_0xf2e0('0x86')];return db['sequelize'][_0xf2e0('0x55')](function(_0x31796d){var _0x389e30=_[_0xf2e0('0x2e')](_0xcb236,function(_0x3c4449){var _0xd47628={'attributes':['id',_0xf2e0('0x2a')]};if(_0x3c4449===_0xf2e0('0x81')){_0xd47628[_0xf2e0('0x87')]={'attributes':[_0xf2e0('0x88')]};}return _0x22b112['get'+_0x3c4449+'Queues'](_0xd47628)[_0xf2e0('0x29')](function(_0x71b340){var _0x1a178a=_[_0xf2e0('0x2e')](_0x71b340,function(_0x3eb079){var _0x5630de=_['map'](_0x57be94,function(_0x38c082){var _0x4558d6={'where':{'UserId':_0x38c082,[_0x3c4449+'QueueId']:_0x3eb079['id']},'transaction':_0x31796d};if(_0x3c4449==='Voice'){_0x4558d6[_0xf2e0('0x89')]={'penalty':_0x3eb079['TeamVoiceQueue']['penalty']};}return db[_0xf2e0('0x8a')+_0x3c4449+'Queue'][_0xf2e0('0x8b')](_0x4558d6)[_0xf2e0('0x29')](function(){socket[_0xf2e0('0x8c')](_0xf2e0('0x4d')+_0x3c4449+'Queue:save',{'UserId':_0x38c082,[_0x3c4449+_0xf2e0('0x8d')]:_0x3eb079['id']});if(_0x3c4449!==_0xf2e0('0x81')){return;}return db[_0xf2e0('0x8a')][_0xf2e0('0x45')]({'where':{'id':_0x57be94,'online':0x1},'attributes':['id','name',_0xf2e0('0x8e'),'voicePause','interface'],'raw':!![]})[_0xf2e0('0x29')](function(_0xf7cfee){var _0x34d4af=_[_0xf2e0('0x2e')](_0xf7cfee,function(_0x5ad43e){return db[_0xf2e0('0x8f')][_0xf2e0('0x90')]({'membername':_0x5ad43e[_0xf2e0('0x2a')],'UserId':_0x5ad43e['id'],'queue_name':_0x3eb079[_0xf2e0('0x2a')],'VoiceQueueId':_0x3eb079['id'],'interface':_[_0xf2e0('0x91')](_0x5ad43e['interface'])?util[_0xf2e0('0x92')](_0xf2e0('0x93'),_0x5ad43e['name']):_0x5ad43e[_0xf2e0('0x94')],'paused':_0x5ad43e['voicePause']||![],'penalty':_0x3eb079[_0xf2e0('0x95')][_0xf2e0('0x88')]},{'transaction':_0x31796d});});return Promise[_0xf2e0('0x96')](_0x34d4af);});});});return Promise[_0xf2e0('0x96')](_0x5630de);});return Promise[_0xf2e0('0x96')](_0x1a178a);})[_0xf2e0('0x29')](function(){return db[_0xf2e0('0x6c')][_0xf2e0('0x71')]({'where':{'teamId':_0x38b94e}})[_0xf2e0('0x29')](function(_0x336761){if(_0x336761){var _0x2d3c1c=_[_0xf2e0('0x2e')](_0x57be94,function(_0x1f77dd){db[_0xf2e0('0x6d')][_0xf2e0('0x90')]({'UserId':_0x1f77dd,'VoicePrefixId':_0x336761[_0xf2e0('0x6e')]});});return Promise['all'](_0x2d3c1c);}});});});return Promise['all'](_0x389e30)['then'](function(){return _0x22b112[_0xf2e0('0x97')](_0x57be94,{'transaction':_0x31796d})['spread'](function(_0x57bb5f){return _0x57bb5f;});});});}})[_0xf2e0('0x29')](respondWithResult(_0x9cd363,null))[_0xf2e0('0x46')](handleError(_0x9cd363,null));};exports[_0xf2e0('0x98')]=function(_0x5341a9,_0x396333){var _0x1ff1ff=_[_0xf2e0('0x80')](_0x5341a9[_0xf2e0('0x34')][_0xf2e0('0x7d')])?_0x5341a9['query'][_0xf2e0('0x7d')]:[_0x5341a9['query'][_0xf2e0('0x7d')]];var _0x533572=_0x5341a9[_0xf2e0('0x48')]['id'];return db[_0xf2e0('0x43')][_0xf2e0('0x4b')]({'where':{'id':_0x533572}})['then'](handleEntityNotFound(_0x396333,null))[_0xf2e0('0x29')](function(_0x3c0d83){if(_0x3c0d83){var _0x51a6fc=[_0xf2e0('0x81'),_0xf2e0('0x82'),'Mail','Sms','Fax',_0xf2e0('0x99'),'Whatsapp'];return db['sequelize'][_0xf2e0('0x55')](function(_0x592cb7){var _0x415b1d=_[_0xf2e0('0x2e')](_0x51a6fc,function(_0x24203d){var _0x4b67be={'attributes':['id',_0xf2e0('0x2a')]};return _0x3c0d83['get'+_0x24203d+_0xf2e0('0x78')](_0x4b67be)[_0xf2e0('0x29')](function(_0xecbc8b){var _0x3ecefd=_['map'](_0xecbc8b,function(_0x35b16f){return _0x35b16f['removeAgents'](_0x1ff1ff,{'transaction':_0x592cb7})['then'](function(){var _0x32dfe4=_['map'](_0x1ff1ff,function(_0x1ff506){socket['emit'](_0xf2e0('0x4d')+_0x24203d+_0xf2e0('0x9a'),{'UserId':Number(_0x1ff506),[_0x24203d+_0xf2e0('0x8d')]:_0x35b16f['id']});if(_0x24203d!==_0xf2e0('0x81')){return;}return db[_0xf2e0('0x8f')][_0xf2e0('0x61')]({'where':{'VoiceQueueId':_0x35b16f['id'],'UserId':_0x1ff506},'transaction':_0x592cb7});});return Promise['all'](_0x32dfe4);});});return Promise[_0xf2e0('0x96')](_0x3ecefd);});});return Promise[_0xf2e0('0x96')](_0x415b1d)[_0xf2e0('0x29')](function(){return _0x3c0d83[_0xf2e0('0x98')](_0x1ff1ff,{'transaction':_0x592cb7});})['then'](function(){return db['TeamVoicePrefix'][_0xf2e0('0x71')]({'where':{'teamId':_0x533572}})['then'](function(_0x928d86){if(_0x928d86){var _0x146516=_['map'](_0x1ff1ff,function(_0x1f8a42){db[_0xf2e0('0x6d')][_0xf2e0('0x61')]({'where':{'UserId':_0x1f8a42,'VoicePrefixId':_0x928d86[_0xf2e0('0x6e')]}});});return Promise[_0xf2e0('0x96')](_0x146516);}});});});}})[_0xf2e0('0x29')](respondWithStatusCode(_0x396333,null))[_0xf2e0('0x46')](handleError(_0x396333,null));};exports[_0xf2e0('0x9b')]=function(_0x2ef5bf,_0x39296e,_0x27ff8b){var _0x407fe2={};var _0x4df851={};var _0x44b553;var _0x584ee4;return db[_0xf2e0('0x43')][_0xf2e0('0x71')]({'where':{'id':_0x2ef5bf[_0xf2e0('0x48')]['id']}})[_0xf2e0('0x29')](handleEntityNotFound(_0x39296e,null))[_0xf2e0('0x29')](function(_0x51336b){if(_0x51336b){_0x44b553=_0x51336b;_0x4df851['model']=_['keys'](db['User']['rawAttributes']);_0x4df851[_0xf2e0('0x34')]=_[_0xf2e0('0x35')](_0x2ef5bf[_0xf2e0('0x34')]);_0x4df851[_0xf2e0('0x3e')]=_[_0xf2e0('0x37')](_0x4df851[_0xf2e0('0x33')],_0x4df851[_0xf2e0('0x34')]);_0x407fe2['attributes']=_['intersection'](_0x4df851[_0xf2e0('0x33')],qs[_0xf2e0('0x49')](_0x2ef5bf[_0xf2e0('0x34')][_0xf2e0('0x49')]));_0x407fe2[_0xf2e0('0x36')]=_0x407fe2[_0xf2e0('0x36')][_0xf2e0('0x38')]?_0x407fe2[_0xf2e0('0x36')]:_0x4df851[_0xf2e0('0x33')];_0x407fe2[_0xf2e0('0x3b')]=qs['sort'](_0x2ef5bf[_0xf2e0('0x34')][_0xf2e0('0x3c')]);_0x407fe2[_0xf2e0('0x3d')]=qs['filters'](_[_0xf2e0('0x76')](_0x2ef5bf[_0xf2e0('0x34')],_0x4df851[_0xf2e0('0x3e')]));if(_0x2ef5bf['query'][_0xf2e0('0x3f')]){_0x407fe2['where']=_[_0xf2e0('0x40')](_0x407fe2[_0xf2e0('0x3d')],{'$or':_['map'](_0x407fe2[_0xf2e0('0x36')],function(_0x7b26fd){var _0x145bef={};_0x145bef[_0x7b26fd]={'$like':'%'+_0x2ef5bf[_0xf2e0('0x34')]['filter']+'%'};return _0x145bef;})});}_0x407fe2=_[_0xf2e0('0x40')]({},_0x407fe2,_0x2ef5bf[_0xf2e0('0x42')]);return _0x44b553[_0xf2e0('0x9b')](_0x407fe2);}})[_0xf2e0('0x29')](function(_0x395b72){if(_0x395b72){_0x584ee4=_0x395b72['length'];if(!_0x2ef5bf[_0xf2e0('0x34')][_0xf2e0('0x39')]('nolimit')){_0x407fe2[_0xf2e0('0x20')]=qs['limit'](_0x2ef5bf[_0xf2e0('0x34')]['limit']);_0x407fe2[_0xf2e0('0x22')]=qs[_0xf2e0('0x22')](_0x2ef5bf[_0xf2e0('0x34')]['offset']);}return _0x44b553['getAgents'](_0x407fe2);}})['then'](function(_0x16e8b8){if(_0x16e8b8){return _0x16e8b8?{'count':_0x584ee4,'rows':_0x16e8b8}:null;}})[_0xf2e0('0x29')](respondWithResult(_0x39296e,null))['catch'](handleError(_0x39296e,null));};