Built motion from commit b5996064.|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 _0x71d3=['ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./team.socket','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','update','then','error','stack','name','send','index','map','Team','rawAttributes','type','key','query','keys','filters','intersection','model','attributes','fields','length','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','Teams','find','userProfileId','autoAssociation','UserProfileResource','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','sequelize','transaction','Sequelize','SELECT','SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20','QueryTypes','VoiceQueueId','UserVoiceQueue','destroy','MailQueueId','UserMailQueue','SELECT\x20SmsQueueId\x20FROM\x20team_has_sms_queues\x20WHERE\x20TeamId\x20=\x20','SmsQueueId','UserSmsQueue','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','SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20','UserWhatsappQueue','TeamVoicePrefix','VoicePrefixId','getQueues','findOne','isValidChannel','channel','ValidationError','Queue','capitalize','Queues','Unknown\x20channel','add','ids','removeQueues','addAgents','Voice','Chat','Mail','Sms','Fax','Whatsapp','through','penalty','TeamVoiceQueue','findOrCreate','emit','Queue:save','QueueId','User','online','interface','UserVoiceQueueRt','format','SIP/%s','voicePause','all','UserVoicePrefix','upsert','spread','removeAgents','isArray','Openchannel','Queue:remove','getAgents','hasOwnProperty','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','jsforce','desk.js','querystring','papaparse'];(function(_0x46401e,_0x2a345b){var _0x447cba=function(_0x54ea97){while(--_0x54ea97){_0x46401e['push'](_0x46401e['shift']());}};_0x447cba(++_0x2a345b);}(_0x71d3,0x12c));var _0x371d=function(_0x766347,_0x5e0471){_0x766347=_0x766347-0x0;var _0x577f31=_0x71d3[_0x766347];return _0x577f31;};'use strict';var emlformat=require(_0x371d('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x371d('0x1'));var rp=require(_0x371d('0x2'));var moment=require(_0x371d('0x3'));var BPromise=require(_0x371d('0x4'));var Mustache=require(_0x371d('0x5'));var util=require(_0x371d('0x6'));var path=require(_0x371d('0x7'));var sox=require(_0x371d('0x8'));var csv=require(_0x371d('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x371d('0xa'));var squel=require(_0x371d('0xb'));var crypto=require('crypto');var jsforce=require(_0x371d('0xc'));var deskjs=require(_0x371d('0xd'));var toCsv=require(_0x371d('0x9'));var querystring=require(_0x371d('0xe'));var Papa=require(_0x371d('0xf'));var Redis=require(_0x371d('0x10'));var authService=require(_0x371d('0x11'));var qs=require(_0x371d('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x371d('0x13'));var logger=require(_0x371d('0x14'))(_0x371d('0x15'));var utils=require(_0x371d('0x16'));var config=require(_0x371d('0x17'));var licenseUtil=require(_0x371d('0x18'));var db=require(_0x371d('0x19'))['db'];config[_0x371d('0x1a')]=_[_0x371d('0x1b')](config[_0x371d('0x1a')],{'host':_0x371d('0x1c'),'port':0x18eb});var socket=require(_0x371d('0x1d'))(new Redis(config[_0x371d('0x1a')]));require(_0x371d('0x1e'))['register'](socket);function respondWithStatusCode(_0x36833c,_0x54e46f){_0x54e46f=_0x54e46f||0xcc;return function(_0x15f0c5){if(_0x15f0c5){return _0x36833c[_0x371d('0x1f')](_0x54e46f);}return _0x36833c[_0x371d('0x20')](_0x54e46f)[_0x371d('0x21')]();};}function respondWithResult(_0x9c54e5,_0x336a38){_0x336a38=_0x336a38||0xc8;return function(_0x1ef3dd){if(_0x1ef3dd){return _0x9c54e5[_0x371d('0x20')](_0x336a38)[_0x371d('0x22')](_0x1ef3dd);}};}function respondWithFilteredResult(_0x48405b,_0x2ae1bf){return function(_0x10d517){if(_0x10d517){var _0x18a720=typeof _0x2ae1bf[_0x371d('0x23')]==='undefined'&&typeof _0x2ae1bf[_0x371d('0x24')]===_0x371d('0x25');var _0x49ef58=_0x10d517[_0x371d('0x26')];var _0x84d36e=_0x18a720?0x0:_0x2ae1bf[_0x371d('0x23')];var _0x4bd39e=_0x18a720?_0x10d517[_0x371d('0x26')]:_0x2ae1bf['offset']+_0x2ae1bf[_0x371d('0x24')];var _0x3c230e;if(_0x4bd39e>=_0x49ef58){_0x4bd39e=_0x49ef58;_0x3c230e=0xc8;}else{_0x3c230e=0xce;}_0x48405b[_0x371d('0x20')](_0x3c230e);return _0x48405b[_0x371d('0x27')](_0x371d('0x28'),_0x84d36e+'-'+_0x4bd39e+'/'+_0x49ef58)[_0x371d('0x22')](_0x10d517);}return null;};}function patchUpdates(_0x39d0fe){return function(_0x4ff09c){try{jsonpatch[_0x371d('0x29')](_0x4ff09c,_0x39d0fe,!![]);}catch(_0x455576){return BPromise[_0x371d('0x2a')](_0x455576);}return _0x4ff09c['save']();};}function saveUpdates(_0x335c4d,_0x1d906e){return function(_0x559523){if(_0x559523){return _0x559523[_0x371d('0x2b')](_0x335c4d)[_0x371d('0x2c')](function(_0xddaca){return _0xddaca;});}return null;};}function handleEntityNotFound(_0x3ed7d3,_0x162d1d){return function(_0x566da1){if(!_0x566da1){_0x3ed7d3[_0x371d('0x1f')](0x194);}return _0x566da1;};}function handleError(_0x1ee435,_0x2fe4fa){_0x2fe4fa=_0x2fe4fa||0x1f4;return function(_0x1abad3){logger[_0x371d('0x2d')](_0x1abad3[_0x371d('0x2e')]);if(_0x1abad3[_0x371d('0x2f')]){delete _0x1abad3[_0x371d('0x2f')];}_0x1ee435[_0x371d('0x20')](_0x2fe4fa)[_0x371d('0x30')](_0x1abad3);};}exports[_0x371d('0x31')]=function(_0x4ebb2a,_0xba6200){var _0xa0914a={},_0x2e0bad={},_0x2df8b7={'count':0x0,'rows':[]};var _0x227a02=_[_0x371d('0x32')](db[_0x371d('0x33')][_0x371d('0x34')],function(_0xf96309){return{'name':_0xf96309['fieldName'],'type':_0xf96309[_0x371d('0x35')][_0x371d('0x36')]};});_0x2e0bad['model']=_[_0x371d('0x32')](_0x227a02,_0x371d('0x2f'));_0x2e0bad[_0x371d('0x37')]=_[_0x371d('0x38')](_0x4ebb2a[_0x371d('0x37')]);_0x2e0bad[_0x371d('0x39')]=_[_0x371d('0x3a')](_0x2e0bad[_0x371d('0x3b')],_0x2e0bad['query']);_0xa0914a[_0x371d('0x3c')]=_['intersection'](_0x2e0bad[_0x371d('0x3b')],qs['fields'](_0x4ebb2a[_0x371d('0x37')][_0x371d('0x3d')]));_0xa0914a['attributes']=_0xa0914a[_0x371d('0x3c')][_0x371d('0x3e')]?_0xa0914a[_0x371d('0x3c')]:_0x2e0bad[_0x371d('0x3b')];if(!_0x4ebb2a[_0x371d('0x37')]['hasOwnProperty']('nolimit')){_0xa0914a[_0x371d('0x24')]=qs[_0x371d('0x24')](_0x4ebb2a['query']['limit']);_0xa0914a['offset']=qs[_0x371d('0x23')](_0x4ebb2a[_0x371d('0x37')][_0x371d('0x23')]);}_0xa0914a[_0x371d('0x3f')]=qs[_0x371d('0x40')](_0x4ebb2a['query']['sort']);_0xa0914a['where']=qs[_0x371d('0x39')](_[_0x371d('0x41')](_0x4ebb2a[_0x371d('0x37')],_0x2e0bad['filters']),_0x227a02);if(_0x4ebb2a[_0x371d('0x37')][_0x371d('0x42')]){_0xa0914a[_0x371d('0x43')]=_[_0x371d('0x44')](_0xa0914a['where'],{'$or':_[_0x371d('0x32')](_0x227a02,function(_0x48efa7){if(_0x48efa7[_0x371d('0x35')]!==_0x371d('0x45')){var _0x20334c={};_0x20334c[_0x48efa7[_0x371d('0x2f')]]={'$like':'%'+_0x4ebb2a[_0x371d('0x37')]['filter']+'%'};return _0x20334c;}})});}_0xa0914a=_[_0x371d('0x44')]({},_0xa0914a,_0x4ebb2a[_0x371d('0x46')]);var _0x1b0eb0={'where':_0xa0914a[_0x371d('0x43')]};return db[_0x371d('0x33')]['count'](_0x1b0eb0)[_0x371d('0x2c')](function(_0x2b8380){_0x2df8b7[_0x371d('0x26')]=_0x2b8380;if(_0x4ebb2a[_0x371d('0x37')][_0x371d('0x47')]){_0xa0914a[_0x371d('0x48')]=[{'all':!![]}];}return db[_0x371d('0x33')][_0x371d('0x49')](_0xa0914a);})['then'](function(_0x16c3f0){_0x2df8b7[_0x371d('0x4a')]=_0x16c3f0;return _0x2df8b7;})['then'](respondWithFilteredResult(_0xba6200,_0xa0914a))[_0x371d('0x4b')](handleError(_0xba6200,null));};exports[_0x371d('0x4c')]=function(_0x4a88f8,_0x31fcc5){var _0x25c301={'raw':![],'where':{'id':_0x4a88f8[_0x371d('0x4d')]['id']}},_0x4667a0={};_0x4667a0[_0x371d('0x3b')]=_['keys'](db[_0x371d('0x33')][_0x371d('0x34')]);_0x4667a0[_0x371d('0x37')]=_[_0x371d('0x38')](_0x4a88f8[_0x371d('0x37')]);_0x4667a0['filters']=_[_0x371d('0x3a')](_0x4667a0[_0x371d('0x3b')],_0x4667a0[_0x371d('0x37')]);_0x25c301[_0x371d('0x3c')]=_['intersection'](_0x4667a0[_0x371d('0x3b')],qs[_0x371d('0x3d')](_0x4a88f8[_0x371d('0x37')]['fields']));_0x25c301[_0x371d('0x3c')]=_0x25c301[_0x371d('0x3c')][_0x371d('0x3e')]?_0x25c301[_0x371d('0x3c')]:_0x4667a0[_0x371d('0x3b')];if(_0x4a88f8[_0x371d('0x37')]['includeAll']){_0x25c301[_0x371d('0x48')]=[{'all':!![]}];}_0x25c301=_['merge']({},_0x25c301,_0x4a88f8[_0x371d('0x46')]);return db['Team']['find'](_0x25c301)[_0x371d('0x2c')](handleEntityNotFound(_0x31fcc5,null))['then'](respondWithResult(_0x31fcc5,null))[_0x371d('0x4b')](handleError(_0x31fcc5,null));};exports['create']=function(_0x132e78,_0x26dc65){return db[_0x371d('0x33')]['create'](_0x132e78[_0x371d('0x4e')],{})[_0x371d('0x2c')](function(_0x337bc7){var _0x57ae07=_0x132e78['user'][_0x371d('0x4f')]({'plain':!![]});if(!_0x57ae07)throw new Error(_0x371d('0x50'));if(_0x57ae07['role']===_0x371d('0x51')){var _0x1d3ecd=_0x337bc7['get']({'plain':!![]});var _0x47cf62=_0x371d('0x52');return db['UserProfileSection'][_0x371d('0x53')]({'where':{'name':_0x47cf62,'userProfileId':_0x57ae07[_0x371d('0x54')]},'raw':!![]})[_0x371d('0x2c')](function(_0x26bb88){if(_0x26bb88&&_0x26bb88[_0x371d('0x55')]===0x0){return db[_0x371d('0x56')][_0x371d('0x57')]({'name':_0x1d3ecd[_0x371d('0x2f')],'resourceId':_0x1d3ecd['id'],'type':_0x26bb88['name'],'sectionId':_0x26bb88['id']},{})['then'](function(){return _0x337bc7;});}else{return _0x337bc7;}})[_0x371d('0x4b')](function(_0x431d1e){logger['error'](_0x371d('0x58'),_0x431d1e);throw _0x431d1e;});}return _0x337bc7;})[_0x371d('0x2c')](respondWithResult(_0x26dc65,0xc9))[_0x371d('0x4b')](handleError(_0x26dc65,null));};exports[_0x371d('0x2b')]=function(_0x5514eb,_0x39c7fc){if(_0x5514eb[_0x371d('0x4e')]['id']){delete _0x5514eb[_0x371d('0x4e')]['id'];}return db[_0x371d('0x33')][_0x371d('0x53')]({'where':{'id':_0x5514eb[_0x371d('0x4d')]['id']}})[_0x371d('0x2c')](handleEntityNotFound(_0x39c7fc,null))['then'](saveUpdates(_0x5514eb[_0x371d('0x4e')],null))[_0x371d('0x2c')](respondWithResult(_0x39c7fc,null))[_0x371d('0x4b')](handleError(_0x39c7fc,null));};exports['destroy']=function(_0x17c7d2,_0xfc1d62){var _0x155f32=_0x17c7d2[_0x371d('0x4d')]['id'];var _0x12de9f=[];return db[_0x371d('0x59')][_0x371d('0x5a')](function(_0x3294d2){var _0xc7d82d='SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20'+_0x155f32;return db[_0x371d('0x59')]['query'](_0xc7d82d,{'type':db[_0x371d('0x5b')]['QueryTypes'][_0x371d('0x5c')],'raw':!![],'transaction':_0x3294d2})[_0x371d('0x2c')](function(_0x5b3c99){_0x12de9f=_['map'](_0x5b3c99,function(_0x39da15){return Number(_0x39da15['UserId']);});})[_0x371d('0x2c')](function(){var _0x4a7288=_0x371d('0x5d')+_0x155f32;return db[_0x371d('0x59')]['query'](_0x4a7288,{'type':db[_0x371d('0x5b')][_0x371d('0x5e')]['SELECT'],'raw':!![],'transaction':_0x3294d2});})[_0x371d('0x2c')](function(_0x5a57fd){var _0x17ba44=_[_0x371d('0x32')](_0x5a57fd,function(_0x57851d){return Number(_0x57851d[_0x371d('0x5f')]);});return db[_0x371d('0x60')][_0x371d('0x61')]({'where':{'UserId':{'$in':_0x12de9f},'VoiceQueueId':{'$in':_0x17ba44}},'transaction':_0x3294d2});})['then'](function(){var _0x2f3b81='SELECT\x20MailQueueId\x20FROM\x20team_has_mail_queues\x20WHERE\x20TeamId\x20=\x20'+_0x155f32;return db['sequelize']['query'](_0x2f3b81,{'type':db[_0x371d('0x5b')]['QueryTypes']['SELECT'],'raw':!![],'transaction':_0x3294d2});})[_0x371d('0x2c')](function(_0x3ea21c){var _0x5846ae=_[_0x371d('0x32')](_0x3ea21c,function(_0x557f2c){return Number(_0x557f2c[_0x371d('0x62')]);});return db[_0x371d('0x63')][_0x371d('0x61')]({'where':{'UserId':{'$in':_0x12de9f},'MailQueueId':{'$in':_0x5846ae}},'transaction':_0x3294d2});})['then'](function(){var _0x37f6f7=_0x371d('0x64')+_0x155f32;return db['sequelize']['query'](_0x37f6f7,{'type':db[_0x371d('0x5b')][_0x371d('0x5e')][_0x371d('0x5c')],'raw':!![],'transaction':_0x3294d2});})['then'](function(_0x40d66f){var _0x30fd17=_[_0x371d('0x32')](_0x40d66f,function(_0x3c0dc0){return Number(_0x3c0dc0[_0x371d('0x65')]);});return db[_0x371d('0x66')][_0x371d('0x61')]({'where':{'UserId':{'$in':_0x12de9f},'SmsQueueId':{'$in':_0x30fd17}},'transaction':_0x3294d2});})[_0x371d('0x2c')](function(){var _0x93935d='SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20'+_0x155f32;return db[_0x371d('0x59')][_0x371d('0x37')](_0x93935d,{'type':db[_0x371d('0x5b')]['QueryTypes'][_0x371d('0x5c')],'raw':!![],'transaction':_0x3294d2});})[_0x371d('0x2c')](function(_0xbd4ad5){var _0x435bf9=_['map'](_0xbd4ad5,function(_0x1765b4){return Number(_0x1765b4[_0x371d('0x67')]);});return db[_0x371d('0x68')]['destroy']({'where':{'UserId':{'$in':_0x12de9f},'ChatQueueId':{'$in':_0x435bf9}},'transaction':_0x3294d2});})[_0x371d('0x2c')](function(){var _0x3e9d31=_0x371d('0x69')+_0x155f32;return db['sequelize'][_0x371d('0x37')](_0x3e9d31,{'type':db[_0x371d('0x5b')][_0x371d('0x5e')][_0x371d('0x5c')],'raw':!![],'transaction':_0x3294d2});})[_0x371d('0x2c')](function(_0x4c7935){var _0x34a2f4=_['map'](_0x4c7935,function(_0x2a4d0c){return Number(_0x2a4d0c[_0x371d('0x6a')]);});return db[_0x371d('0x6b')][_0x371d('0x61')]({'where':{'UserId':{'$in':_0x12de9f},'FaxQueueId':{'$in':_0x34a2f4}},'transaction':_0x3294d2});})[_0x371d('0x2c')](function(){var _0x203e4a=_0x371d('0x6c')+_0x155f32;return db[_0x371d('0x59')]['query'](_0x203e4a,{'type':db[_0x371d('0x5b')][_0x371d('0x5e')][_0x371d('0x5c')],'raw':!![],'transaction':_0x3294d2});})[_0x371d('0x2c')](function(_0x4183bc){var _0x512efc=_[_0x371d('0x32')](_0x4183bc,function(_0x2c698e){return Number(_0x2c698e[_0x371d('0x6d')]);});return db[_0x371d('0x6e')][_0x371d('0x61')]({'where':{'UserId':{'$in':_0x12de9f},'OpenchannelQueueId':{'$in':_0x512efc}},'transaction':_0x3294d2});})[_0x371d('0x2c')](function(){var _0x2b2394=_0x371d('0x6f')+_0x155f32;return db['sequelize'][_0x371d('0x37')](_0x2b2394,{'type':db[_0x371d('0x5b')]['QueryTypes'][_0x371d('0x5c')],'raw':!![],'transaction':_0x3294d2});})[_0x371d('0x2c')](function(_0x5255fa){var _0x385aeb=_['map'](_0x5255fa,function(_0x188ef7){return Number(_0x188ef7['WhatsappQueueId']);});return db[_0x371d('0x70')][_0x371d('0x61')]({'where':{'UserId':{'$in':_0x12de9f},'WhatsappQueueId':{'$in':_0x385aeb}},'transaction':_0x3294d2});})[_0x371d('0x2c')](function(){return db[_0x371d('0x71')][_0x371d('0x53')]({'where':{'TeamId':_0x155f32}});})['then'](function(_0x20c0ba){if(_0x20c0ba===null){return;}return db['UserVoicePrefix']['destroy']({'where':{'UserId':{'$in':_0x12de9f},'VoicePrefixId':_0x20c0ba[_0x371d('0x72')]},'transaction':_0x3294d2});})['then'](function(){return db[_0x371d('0x33')][_0x371d('0x61')]({'where':{'id':_0x155f32},'cascade':!![],'transaction':_0x3294d2});})[_0x371d('0x2c')](function(_0x4ec3a5){if(_0x4ec3a5===0x0){_0xfc1d62['sendStatus'](0x194);}else{return db[_0x371d('0x56')][_0x371d('0x61')]({'where':{'type':_0x371d('0x52'),'resourceId':_0x155f32},'cascade':!![],'transaction':_0x3294d2})[_0x371d('0x2c')](function(){_0xfc1d62[_0x371d('0x20')](0xcc)[_0x371d('0x21')]();});}})[_0x371d('0x4b')](function(_0x108fda){_0xfc1d62[_0x371d('0x20')](0x1f4)[_0x371d('0x30')](_0x108fda);});});};exports[_0x371d('0x73')]=function(_0x3bfedf,_0x497263,_0x596115){return db[_0x371d('0x33')][_0x371d('0x74')]({'where':{'id':_0x3bfedf[_0x371d('0x4d')]['id']}})[_0x371d('0x2c')](handleEntityNotFound(_0x497263,null))[_0x371d('0x2c')](function(_0x4bd01d){if(!_0x3bfedf[_0x371d('0x37')]['channel']||!utils[_0x371d('0x75')](_0x3bfedf[_0x371d('0x37')][_0x371d('0x76')])){throw new db[(_0x371d('0x5b'))][(_0x371d('0x77'))]('Unknown\x20channel');}var _0x1959c8={};var _0xb0f5bb={};_0xb0f5bb[_0x371d('0x3b')]=_['keys'](db[_['capitalize'](_0x3bfedf[_0x371d('0x37')]['channel']['toLowerCase']())+_0x371d('0x78')][_0x371d('0x34')]);_0xb0f5bb[_0x371d('0x37')]=_[_0x371d('0x38')](_0x3bfedf[_0x371d('0x37')]);_0xb0f5bb[_0x371d('0x39')]=_['intersection'](_0xb0f5bb['model'],_0xb0f5bb['query']);_0x1959c8[_0x371d('0x3c')]=_[_0x371d('0x3a')](_0xb0f5bb[_0x371d('0x3b')],qs['fields'](_0x3bfedf['query'][_0x371d('0x3d')]));_0x1959c8['attributes']=_0x1959c8[_0x371d('0x3c')][_0x371d('0x3e')]?_0x1959c8[_0x371d('0x3c')]:_0xb0f5bb[_0x371d('0x3b')];_0x1959c8[_0x371d('0x24')]=qs[_0x371d('0x24')](_0x3bfedf['query'][_0x371d('0x24')]);_0x1959c8[_0x371d('0x23')]=qs['offset'](_0x3bfedf[_0x371d('0x37')][_0x371d('0x23')]);_0x1959c8[_0x371d('0x3f')]=qs[_0x371d('0x40')](_0x3bfedf[_0x371d('0x37')][_0x371d('0x40')]);_0x1959c8[_0x371d('0x43')]=qs['filters'](_[_0x371d('0x41')](_0x3bfedf[_0x371d('0x37')],_0xb0f5bb[_0x371d('0x39')]));_0x1959c8=_['merge']({},_0x1959c8,_0x3bfedf[_0x371d('0x46')]);return _0x4bd01d['get'+_[_0x371d('0x79')](_0x3bfedf[_0x371d('0x37')][_0x371d('0x76')]['toLowerCase']())+_0x371d('0x7a')](_0x1959c8);})[_0x371d('0x2c')](respondWithResult(_0x497263,null))['catch'](handleError(_0x497263,null));};exports['addQueues']=function(_0x4f69f2,_0xe81e55,_0x181a2e){return db[_0x371d('0x33')]['findOne']({'where':{'id':_0x4f69f2['params']['id']}})[_0x371d('0x2c')](function(_0x33061){if(_0x33061){if(!_0x4f69f2[_0x371d('0x4e')][_0x371d('0x76')]||!utils[_0x371d('0x75')](_0x4f69f2[_0x371d('0x4e')][_0x371d('0x76')])){throw new db[(_0x371d('0x5b'))][(_0x371d('0x77'))](_0x371d('0x7b'));}return _0x33061[_0x371d('0x7c')+_[_0x371d('0x79')](_0x4f69f2['body'][_0x371d('0x76')]['toLowerCase']())+'Queues'](_0x4f69f2[_0x371d('0x4e')][_0x371d('0x7d')]);}return null;})[_0x371d('0x2c')](handleEntityNotFound(_0xe81e55,null))[_0x371d('0x2c')](respondWithStatusCode(_0xe81e55,null))[_0x371d('0x4b')](handleError(_0xe81e55,null));};exports[_0x371d('0x7e')]=function(_0x58613f,_0x41466d,_0x5f4fdd){return db[_0x371d('0x33')]['findOne']({'where':{'id':_0x58613f[_0x371d('0x4d')]['id']}})[_0x371d('0x2c')](function(_0x43f651){if(_0x43f651){if(!_0x58613f[_0x371d('0x37')][_0x371d('0x76')]||!utils[_0x371d('0x75')](_0x58613f[_0x371d('0x37')][_0x371d('0x76')])){throw new db[(_0x371d('0x5b'))]['ValidationError']('Unknown\x20channel');}return _0x43f651['remove'+_['capitalize'](_0x58613f[_0x371d('0x37')][_0x371d('0x76')]['toLowerCase']())+_0x371d('0x7a')](_0x58613f[_0x371d('0x37')][_0x371d('0x7d')]);}return null;})[_0x371d('0x2c')](handleEntityNotFound(_0x41466d,null))[_0x371d('0x2c')](respondWithStatusCode(_0x41466d,null))[_0x371d('0x4b')](handleError(_0x41466d,null));};exports[_0x371d('0x7f')]=function(_0x2ce7d3,_0x93dd5f){var _0x131393=_['isArray'](_0x2ce7d3[_0x371d('0x4e')][_0x371d('0x7d')])?_0x2ce7d3['body'][_0x371d('0x7d')]:[_0x2ce7d3[_0x371d('0x4e')][_0x371d('0x7d')]];var _0x45a906=_0x2ce7d3[_0x371d('0x4d')]['id'];return db[_0x371d('0x33')][_0x371d('0x53')]({'where':{'id':_0x45a906}})[_0x371d('0x2c')](handleEntityNotFound(_0x93dd5f,null))['then'](function(_0x2b36e2){if(_0x2b36e2){var _0x4aa241=[_0x371d('0x80'),_0x371d('0x81'),_0x371d('0x82'),_0x371d('0x83'),_0x371d('0x84'),'Openchannel',_0x371d('0x85')];return db[_0x371d('0x59')][_0x371d('0x5a')](function(_0xe6f380){var _0x15a7ca=_[_0x371d('0x32')](_0x4aa241,function(_0x2afdb9){var _0x14cda4={'attributes':['id',_0x371d('0x2f')]};if(_0x2afdb9===_0x371d('0x80')){_0x14cda4[_0x371d('0x86')]={'attributes':[_0x371d('0x87')]};}return _0x2b36e2[_0x371d('0x4f')+_0x2afdb9+_0x371d('0x7a')](_0x14cda4)[_0x371d('0x2c')](function(_0x23e838){var _0x57fe64=_['map'](_0x23e838,function(_0x3e021e){var _0x10328f=_[_0x371d('0x32')](_0x131393,function(_0x10d107){var _0x1c4c27={'where':{'UserId':_0x10d107,[_0x2afdb9+'QueueId']:_0x3e021e['id']},'transaction':_0xe6f380};if(_0x2afdb9===_0x371d('0x80')){_0x1c4c27['defaults']={'penalty':_0x3e021e[_0x371d('0x88')][_0x371d('0x87')]};}return db['User'+_0x2afdb9+'Queue'][_0x371d('0x89')](_0x1c4c27)[_0x371d('0x2c')](function(){socket[_0x371d('0x8a')](_0x371d('0x51')+_0x2afdb9+_0x371d('0x8b'),{'UserId':_0x10d107,[_0x2afdb9+_0x371d('0x8c')]:_0x3e021e['id']});if(_0x2afdb9!==_0x371d('0x80')){return;}return db[_0x371d('0x8d')]['findAll']({'where':{'id':_0x131393,'online':0x1},'attributes':['id','name',_0x371d('0x8e'),'voicePause',_0x371d('0x8f')],'raw':!![]})[_0x371d('0x2c')](function(_0x553a0f){var _0xa69b02=_[_0x371d('0x32')](_0x553a0f,function(_0x45d663){return db[_0x371d('0x90')]['upsert']({'membername':_0x45d663[_0x371d('0x2f')],'UserId':_0x45d663['id'],'queue_name':_0x3e021e[_0x371d('0x2f')],'VoiceQueueId':_0x3e021e['id'],'interface':_['isNil'](_0x45d663[_0x371d('0x8f')])?util[_0x371d('0x91')](_0x371d('0x92'),_0x45d663['name']):_0x45d663[_0x371d('0x8f')],'paused':_0x45d663[_0x371d('0x93')]||![],'penalty':_0x3e021e['TeamVoiceQueue'][_0x371d('0x87')]},{'transaction':_0xe6f380});});return Promise[_0x371d('0x94')](_0xa69b02);});});});return Promise[_0x371d('0x94')](_0x10328f);});return Promise['all'](_0x57fe64);})['then'](function(){return db[_0x371d('0x71')][_0x371d('0x74')]({'where':{'teamId':_0x45a906}})[_0x371d('0x2c')](function(_0x534b2a){if(_0x534b2a){var _0xec9b17=_['map'](_0x131393,function(_0x9a6a94){db[_0x371d('0x95')][_0x371d('0x96')]({'UserId':_0x9a6a94,'VoicePrefixId':_0x534b2a['VoicePrefixId']});});return Promise[_0x371d('0x94')](_0xec9b17);}});});});return Promise[_0x371d('0x94')](_0x15a7ca)[_0x371d('0x2c')](function(){return _0x2b36e2['addAgents'](_0x131393,{'transaction':_0xe6f380})[_0x371d('0x97')](function(_0x491caf){return _0x491caf;});});});}})[_0x371d('0x2c')](respondWithResult(_0x93dd5f,null))[_0x371d('0x4b')](handleError(_0x93dd5f,null));};exports[_0x371d('0x98')]=function(_0x479eef,_0x18c349){var _0x1c8add=_[_0x371d('0x99')](_0x479eef['query'][_0x371d('0x7d')])?_0x479eef[_0x371d('0x37')][_0x371d('0x7d')]:[_0x479eef[_0x371d('0x37')][_0x371d('0x7d')]];var _0x2fd677=_0x479eef['params']['id'];return db[_0x371d('0x33')][_0x371d('0x53')]({'where':{'id':_0x2fd677}})[_0x371d('0x2c')](handleEntityNotFound(_0x18c349,null))[_0x371d('0x2c')](function(_0x3783ec){if(_0x3783ec){var _0x48bcae=['Voice','Chat','Mail',_0x371d('0x83'),'Fax',_0x371d('0x9a'),_0x371d('0x85')];return db[_0x371d('0x59')][_0x371d('0x5a')](function(_0x33358a){var _0x333765=_[_0x371d('0x32')](_0x48bcae,function(_0x44f09f){var _0x1ab8c0={'attributes':['id','name']};return _0x3783ec['get'+_0x44f09f+'Queues'](_0x1ab8c0)['then'](function(_0x22862f){var _0x4eae20=_[_0x371d('0x32')](_0x22862f,function(_0x37efb1){return _0x37efb1['removeAgents'](_0x1c8add,{'transaction':_0x33358a})[_0x371d('0x2c')](function(){var _0x3c7b04=_['map'](_0x1c8add,function(_0x5a4782){socket[_0x371d('0x8a')](_0x371d('0x51')+_0x44f09f+_0x371d('0x9b'),{'UserId':Number(_0x5a4782),[_0x44f09f+_0x371d('0x8c')]:_0x37efb1['id']});if(_0x44f09f!=='Voice'){return;}return db[_0x371d('0x90')]['destroy']({'where':{'VoiceQueueId':_0x37efb1['id'],'UserId':_0x5a4782},'transaction':_0x33358a});});return Promise[_0x371d('0x94')](_0x3c7b04);});});return Promise[_0x371d('0x94')](_0x4eae20);});});return Promise['all'](_0x333765)[_0x371d('0x2c')](function(){return _0x3783ec[_0x371d('0x98')](_0x1c8add,{'transaction':_0x33358a});})['then'](function(){return db[_0x371d('0x71')][_0x371d('0x74')]({'where':{'teamId':_0x2fd677}})['then'](function(_0x571a34){if(_0x571a34){var _0x225e46=_[_0x371d('0x32')](_0x1c8add,function(_0x38f952){db[_0x371d('0x95')][_0x371d('0x61')]({'where':{'UserId':_0x38f952,'VoicePrefixId':_0x571a34[_0x371d('0x72')]}});});return Promise[_0x371d('0x94')](_0x225e46);}});});});}})[_0x371d('0x2c')](respondWithStatusCode(_0x18c349,null))[_0x371d('0x4b')](handleError(_0x18c349,null));};exports[_0x371d('0x9c')]=function(_0x4d2c52,_0x126181,_0x5539a5){var _0x508280={};var _0x2e1e98={};var _0x3b2f8f;var _0x29f302;return db[_0x371d('0x33')]['findOne']({'where':{'id':_0x4d2c52['params']['id']}})[_0x371d('0x2c')](handleEntityNotFound(_0x126181,null))[_0x371d('0x2c')](function(_0x107eb1){if(_0x107eb1){_0x3b2f8f=_0x107eb1;_0x2e1e98['model']=_['keys'](db[_0x371d('0x8d')]['rawAttributes']);_0x2e1e98['query']=_['keys'](_0x4d2c52[_0x371d('0x37')]);_0x2e1e98[_0x371d('0x39')]=_[_0x371d('0x3a')](_0x2e1e98[_0x371d('0x3b')],_0x2e1e98[_0x371d('0x37')]);_0x508280[_0x371d('0x3c')]=_[_0x371d('0x3a')](_0x2e1e98[_0x371d('0x3b')],qs[_0x371d('0x3d')](_0x4d2c52[_0x371d('0x37')]['fields']));_0x508280[_0x371d('0x3c')]=_0x508280['attributes'][_0x371d('0x3e')]?_0x508280[_0x371d('0x3c')]:_0x2e1e98[_0x371d('0x3b')];_0x508280[_0x371d('0x3f')]=qs[_0x371d('0x40')](_0x4d2c52[_0x371d('0x37')]['sort']);_0x508280[_0x371d('0x43')]=qs[_0x371d('0x39')](_[_0x371d('0x41')](_0x4d2c52[_0x371d('0x37')],_0x2e1e98['filters']));if(_0x4d2c52[_0x371d('0x37')][_0x371d('0x42')]){_0x508280[_0x371d('0x43')]=_[_0x371d('0x44')](_0x508280['where'],{'$or':_['map'](_0x508280[_0x371d('0x3c')],function(_0x56da83){var _0x4be622={};_0x4be622[_0x56da83]={'$like':'%'+_0x4d2c52['query'][_0x371d('0x42')]+'%'};return _0x4be622;})});}_0x508280=_[_0x371d('0x44')]({},_0x508280,_0x4d2c52[_0x371d('0x46')]);return _0x3b2f8f[_0x371d('0x9c')](_0x508280);}})[_0x371d('0x2c')](function(_0x536b0f){if(_0x536b0f){_0x29f302=_0x536b0f[_0x371d('0x3e')];if(!_0x4d2c52[_0x371d('0x37')][_0x371d('0x9d')]('nolimit')){_0x508280[_0x371d('0x24')]=qs[_0x371d('0x24')](_0x4d2c52[_0x371d('0x37')][_0x371d('0x24')]);_0x508280[_0x371d('0x23')]=qs[_0x371d('0x23')](_0x4d2c52['query']['offset']);}return _0x3b2f8f[_0x371d('0x9c')](_0x508280);}})[_0x371d('0x2c')](function(_0x262181){if(_0x262181){return _0x262181?{'count':_0x29f302,'rows':_0x262181}:null;}})['then'](respondWithResult(_0x126181,null))['catch'](handleError(_0x126181,null));};