8a54ae7c76b534d2ee70fbfe3ff784b0eb664072
[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 _0xb317=['../../config/license/hardware','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./team.socket','register','sendStatus','end','status','json','undefined','limit','offset','set','Content-Range','apply','reject','save','update','then','error','stack','name','send','index','map','Team','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','merge','type','filter','options','include','findAll','rows','show','params','catch','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Teams','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','sequelize','transaction','Sequelize','QueryTypes','SELECT','UserId','SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20','UserVoiceQueue','destroy','MailQueueId','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','SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20','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','isValidChannel','ValidationError','Unknown\x20channel','capitalize','toLowerCase','channel','add','Queues','ids','removeQueues','remove','Voice','Mail','Sms','Openchannel','Whatsapp','through','QueueId','TeamVoiceQueue','penalty','User','findOrCreate','emit','Queue:save','online','voicePause','interface','UserVoiceQueueRt','upsert','isNil','SIP/%s','all','addAgents','spread','removeAgents','Chat','Fax','user','getAgents','findOne','hasOwnProperty','eml-format','rimraf','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch'];(function(_0x5a4413,_0xa74e04){var _0x41c8c1=function(_0x19c4b6){while(--_0x19c4b6){_0x5a4413['push'](_0x5a4413['shift']());}};_0x41c8c1(++_0xa74e04);}(_0xb317,0x1c0));var _0x7b31=function(_0x53e1e4,_0x26e697){_0x53e1e4=_0x53e1e4-0x0;var _0x758d0e=_0xb317[_0x53e1e4];return _0x758d0e;};'use strict';var emlformat=require(_0x7b31('0x0'));var rimraf=require(_0x7b31('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x7b31('0x2'));var moment=require(_0x7b31('0x3'));var BPromise=require(_0x7b31('0x4'));var Mustache=require(_0x7b31('0x5'));var util=require('util');var path=require('path');var sox=require(_0x7b31('0x6'));var csv=require(_0x7b31('0x7'));var ejs=require(_0x7b31('0x8'));var fs=require('fs');var fs_extra=require(_0x7b31('0x9'));var _=require(_0x7b31('0xa'));var squel=require(_0x7b31('0xb'));var crypto=require(_0x7b31('0xc'));var jsforce=require(_0x7b31('0xd'));var deskjs=require(_0x7b31('0xe'));var toCsv=require(_0x7b31('0x7'));var querystring=require(_0x7b31('0xf'));var Papa=require(_0x7b31('0x10'));var Redis=require(_0x7b31('0x11'));var authService=require(_0x7b31('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x7b31('0x13'));var hardwareService=require(_0x7b31('0x14'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x7b31('0x15'));var licenseUtil=require(_0x7b31('0x16'));var db=require(_0x7b31('0x17'))['db'];config['redis']=_[_0x7b31('0x18')](config[_0x7b31('0x19')],{'host':_0x7b31('0x1a'),'port':0x18eb});var socket=require(_0x7b31('0x1b'))(new Redis(config[_0x7b31('0x19')]));require(_0x7b31('0x1c'))[_0x7b31('0x1d')](socket);function respondWithStatusCode(_0x397655,_0x2d38c3){_0x2d38c3=_0x2d38c3||0xcc;return function(_0x22b254){if(_0x22b254){return _0x397655[_0x7b31('0x1e')](_0x2d38c3);}return _0x397655['status'](_0x2d38c3)[_0x7b31('0x1f')]();};}function respondWithResult(_0x370b8c,_0x532d40){_0x532d40=_0x532d40||0xc8;return function(_0xdfa663){if(_0xdfa663){return _0x370b8c[_0x7b31('0x20')](_0x532d40)[_0x7b31('0x21')](_0xdfa663);}};}function respondWithFilteredResult(_0x144e51,_0x316303){return function(_0x4b47ca){if(_0x4b47ca){var _0x830c2=typeof _0x316303['offset']===_0x7b31('0x22')&&typeof _0x316303[_0x7b31('0x23')]===_0x7b31('0x22');var _0x176dc1=_0x4b47ca['count'];var _0xb50f88=_0x830c2?0x0:_0x316303[_0x7b31('0x24')];var _0x43f651=_0x830c2?_0x4b47ca['count']:_0x316303[_0x7b31('0x24')]+_0x316303[_0x7b31('0x23')];var _0x5d2fce;if(_0x43f651>=_0x176dc1){_0x43f651=_0x176dc1;_0x5d2fce=0xc8;}else{_0x5d2fce=0xce;}_0x144e51[_0x7b31('0x20')](_0x5d2fce);return _0x144e51[_0x7b31('0x25')](_0x7b31('0x26'),_0xb50f88+'-'+_0x43f651+'/'+_0x176dc1)[_0x7b31('0x21')](_0x4b47ca);}return null;};}function patchUpdates(_0x550ef6){return function(_0x479cf7){try{jsonpatch[_0x7b31('0x27')](_0x479cf7,_0x550ef6,!![]);}catch(_0x53a80a){return BPromise[_0x7b31('0x28')](_0x53a80a);}return _0x479cf7[_0x7b31('0x29')]();};}function saveUpdates(_0x384be8,_0x3fb0f2){return function(_0x138251){if(_0x138251){return _0x138251[_0x7b31('0x2a')](_0x384be8)[_0x7b31('0x2b')](function(_0x5f4af3){return _0x5f4af3;});}return null;};}function handleEntityNotFound(_0x1d25ce,_0x190e5f){return function(_0x3d4e22){if(!_0x3d4e22){_0x1d25ce['sendStatus'](0x194);}return _0x3d4e22;};}function handleError(_0x206699,_0x892be){_0x892be=_0x892be||0x1f4;return function(_0xb857f2){logger[_0x7b31('0x2c')](_0xb857f2[_0x7b31('0x2d')]);if(_0xb857f2['name']){delete _0xb857f2[_0x7b31('0x2e')];}_0x206699[_0x7b31('0x20')](_0x892be)[_0x7b31('0x2f')](_0xb857f2);};}exports[_0x7b31('0x30')]=function(_0x3fb82b,_0x55e122){var _0x5974c7={},_0x33c255={},_0x54c346={'count':0x0,'rows':[]};var _0x52388b=_[_0x7b31('0x31')](db[_0x7b31('0x32')][_0x7b31('0x33')],function(_0x289167){return{'name':_0x289167[_0x7b31('0x34')],'type':_0x289167['type'][_0x7b31('0x35')]};});_0x33c255[_0x7b31('0x36')]=_['map'](_0x52388b,_0x7b31('0x2e'));_0x33c255[_0x7b31('0x37')]=_[_0x7b31('0x38')](_0x3fb82b[_0x7b31('0x37')]);_0x33c255[_0x7b31('0x39')]=_[_0x7b31('0x3a')](_0x33c255['model'],_0x33c255[_0x7b31('0x37')]);_0x5974c7[_0x7b31('0x3b')]=_[_0x7b31('0x3a')](_0x33c255[_0x7b31('0x36')],qs[_0x7b31('0x3c')](_0x3fb82b[_0x7b31('0x37')]['fields']));_0x5974c7['attributes']=_0x5974c7['attributes'][_0x7b31('0x3d')]?_0x5974c7[_0x7b31('0x3b')]:_0x33c255['model'];if(!_0x3fb82b[_0x7b31('0x37')]['hasOwnProperty'](_0x7b31('0x3e'))){_0x5974c7[_0x7b31('0x23')]=qs[_0x7b31('0x23')](_0x3fb82b[_0x7b31('0x37')][_0x7b31('0x23')]);_0x5974c7[_0x7b31('0x24')]=qs[_0x7b31('0x24')](_0x3fb82b['query']['offset']);}_0x5974c7[_0x7b31('0x3f')]=qs['sort'](_0x3fb82b[_0x7b31('0x37')][_0x7b31('0x40')]);_0x5974c7[_0x7b31('0x41')]=qs[_0x7b31('0x39')](_[_0x7b31('0x42')](_0x3fb82b['query'],_0x33c255[_0x7b31('0x39')]),_0x52388b);if(_0x3fb82b[_0x7b31('0x37')]['filter']){_0x5974c7[_0x7b31('0x41')]=_[_0x7b31('0x43')](_0x5974c7[_0x7b31('0x41')],{'$or':_[_0x7b31('0x31')](_0x52388b,function(_0x4a052a){if(_0x4a052a[_0x7b31('0x44')]!=='VIRTUAL'){var _0x42eeac={};_0x42eeac[_0x4a052a[_0x7b31('0x2e')]]={'$like':'%'+_0x3fb82b[_0x7b31('0x37')][_0x7b31('0x45')]+'%'};return _0x42eeac;}})});}_0x5974c7=_['merge']({},_0x5974c7,_0x3fb82b[_0x7b31('0x46')]);var _0x20d373={'where':_0x5974c7[_0x7b31('0x41')]};return db[_0x7b31('0x32')]['count'](_0x20d373)[_0x7b31('0x2b')](function(_0x12b2b0){_0x54c346['count']=_0x12b2b0;if(_0x3fb82b[_0x7b31('0x37')]['includeAll']){_0x5974c7[_0x7b31('0x47')]=[{'all':!![]}];}return db[_0x7b31('0x32')][_0x7b31('0x48')](_0x5974c7);})[_0x7b31('0x2b')](function(_0x3ad8d5){_0x54c346[_0x7b31('0x49')]=_0x3ad8d5;return _0x54c346;})[_0x7b31('0x2b')](respondWithFilteredResult(_0x55e122,_0x5974c7))['catch'](handleError(_0x55e122,null));};exports[_0x7b31('0x4a')]=function(_0x51959c,_0x3243bc){var _0x3116fa={'raw':![],'where':{'id':_0x51959c[_0x7b31('0x4b')]['id']}},_0xb89f3a={};_0xb89f3a[_0x7b31('0x36')]=_[_0x7b31('0x38')](db[_0x7b31('0x32')][_0x7b31('0x33')]);_0xb89f3a[_0x7b31('0x37')]=_[_0x7b31('0x38')](_0x51959c['query']);_0xb89f3a[_0x7b31('0x39')]=_[_0x7b31('0x3a')](_0xb89f3a['model'],_0xb89f3a['query']);_0x3116fa[_0x7b31('0x3b')]=_['intersection'](_0xb89f3a['model'],qs['fields'](_0x51959c[_0x7b31('0x37')][_0x7b31('0x3c')]));_0x3116fa['attributes']=_0x3116fa[_0x7b31('0x3b')][_0x7b31('0x3d')]?_0x3116fa[_0x7b31('0x3b')]:_0xb89f3a['model'];if(_0x51959c[_0x7b31('0x37')]['includeAll']){_0x3116fa[_0x7b31('0x47')]=[{'all':!![]}];}_0x3116fa=_[_0x7b31('0x43')]({},_0x3116fa,_0x51959c[_0x7b31('0x46')]);return db[_0x7b31('0x32')]['find'](_0x3116fa)['then'](handleEntityNotFound(_0x3243bc,null))[_0x7b31('0x2b')](respondWithResult(_0x3243bc,null))[_0x7b31('0x4c')](handleError(_0x3243bc,null));};exports[_0x7b31('0x4d')]=function(_0x112657,_0x243372){return db[_0x7b31('0x32')][_0x7b31('0x4d')](_0x112657[_0x7b31('0x4e')],{})[_0x7b31('0x2b')](function(_0x7110c4){var _0x5de551=_0x112657['user'][_0x7b31('0x4f')]({'plain':!![]});if(!_0x5de551)throw new Error(_0x7b31('0x50'));if(_0x5de551[_0x7b31('0x51')]==='user'){var _0x2aeafd=_0x7110c4[_0x7b31('0x4f')]({'plain':!![]});var _0x4fa289=_0x7b31('0x52');return db[_0x7b31('0x53')]['find']({'where':{'name':_0x4fa289,'userProfileId':_0x5de551[_0x7b31('0x54')]},'raw':!![]})[_0x7b31('0x2b')](function(_0x5dea4c){if(_0x5dea4c&&_0x5dea4c[_0x7b31('0x55')]===0x0){return db[_0x7b31('0x56')]['create']({'name':_0x2aeafd['name'],'resourceId':_0x2aeafd['id'],'type':_0x5dea4c[_0x7b31('0x2e')],'sectionId':_0x5dea4c['id']},{})[_0x7b31('0x2b')](function(){return _0x7110c4;});}else{return _0x7110c4;}})['catch'](function(_0x2a241b){logger['error'](_0x7b31('0x57'),_0x2a241b);throw _0x2a241b;});}return _0x7110c4;})[_0x7b31('0x2b')](respondWithResult(_0x243372,0xc9))[_0x7b31('0x4c')](handleError(_0x243372,null));};exports[_0x7b31('0x2a')]=function(_0x394aa5,_0x430523){if(_0x394aa5[_0x7b31('0x4e')]['id']){delete _0x394aa5[_0x7b31('0x4e')]['id'];}return db['Team'][_0x7b31('0x58')]({'where':{'id':_0x394aa5['params']['id']}})[_0x7b31('0x2b')](handleEntityNotFound(_0x430523,null))['then'](saveUpdates(_0x394aa5[_0x7b31('0x4e')],null))['then'](respondWithResult(_0x430523,null))[_0x7b31('0x4c')](handleError(_0x430523,null));};exports['destroy']=function(_0x5b339f,_0x34b755){var _0x31a8e8=_0x5b339f[_0x7b31('0x4b')]['id'];var _0x30d4c4=[];return db[_0x7b31('0x59')][_0x7b31('0x5a')](function(_0xad382d){var _0x1ec454='SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20'+_0x31a8e8;return db[_0x7b31('0x59')]['query'](_0x1ec454,{'type':db[_0x7b31('0x5b')][_0x7b31('0x5c')][_0x7b31('0x5d')],'raw':!![],'transaction':_0xad382d})['then'](function(_0x2e9c92){_0x30d4c4=_['map'](_0x2e9c92,function(_0x442b93){return Number(_0x442b93[_0x7b31('0x5e')]);});})[_0x7b31('0x2b')](function(){var _0x85ecbb=_0x7b31('0x5f')+_0x31a8e8;return db[_0x7b31('0x59')]['query'](_0x85ecbb,{'type':db[_0x7b31('0x5b')][_0x7b31('0x5c')][_0x7b31('0x5d')],'raw':!![],'transaction':_0xad382d});})[_0x7b31('0x2b')](function(_0x32c483){var _0x5f199f=_['map'](_0x32c483,function(_0x585416){return Number(_0x585416['VoiceQueueId']);});return db[_0x7b31('0x60')][_0x7b31('0x61')]({'where':{'UserId':{'$in':_0x30d4c4},'VoiceQueueId':{'$in':_0x5f199f}},'transaction':_0xad382d});})[_0x7b31('0x2b')](function(){var _0xadc8c4='SELECT\x20MailQueueId\x20FROM\x20team_has_mail_queues\x20WHERE\x20TeamId\x20=\x20'+_0x31a8e8;return db[_0x7b31('0x59')]['query'](_0xadc8c4,{'type':db[_0x7b31('0x5b')][_0x7b31('0x5c')]['SELECT'],'raw':!![],'transaction':_0xad382d});})[_0x7b31('0x2b')](function(_0x16deb5){var _0x5c54a9=_[_0x7b31('0x31')](_0x16deb5,function(_0xe20f2d){return Number(_0xe20f2d[_0x7b31('0x62')]);});return db[_0x7b31('0x63')]['destroy']({'where':{'UserId':{'$in':_0x30d4c4},'MailQueueId':{'$in':_0x5c54a9}},'transaction':_0xad382d});})['then'](function(){var _0x54c0d6=_0x7b31('0x64')+_0x31a8e8;return db[_0x7b31('0x59')][_0x7b31('0x37')](_0x54c0d6,{'type':db[_0x7b31('0x5b')][_0x7b31('0x5c')]['SELECT'],'raw':!![],'transaction':_0xad382d});})[_0x7b31('0x2b')](function(_0x1bc030){var _0x2a532e=_[_0x7b31('0x31')](_0x1bc030,function(_0x1f550b){return Number(_0x1f550b[_0x7b31('0x65')]);});return db[_0x7b31('0x66')]['destroy']({'where':{'UserId':{'$in':_0x30d4c4},'SmsQueueId':{'$in':_0x2a532e}},'transaction':_0xad382d});})[_0x7b31('0x2b')](function(){var _0x9d7d37=_0x7b31('0x67')+_0x31a8e8;return db[_0x7b31('0x59')][_0x7b31('0x37')](_0x9d7d37,{'type':db['Sequelize'][_0x7b31('0x5c')]['SELECT'],'raw':!![],'transaction':_0xad382d});})['then'](function(_0x1c4133){var _0x17616a=_['map'](_0x1c4133,function(_0x1ddca9){return Number(_0x1ddca9['ChatQueueId']);});return db['UserChatQueue'][_0x7b31('0x61')]({'where':{'UserId':{'$in':_0x30d4c4},'ChatQueueId':{'$in':_0x17616a}},'transaction':_0xad382d});})[_0x7b31('0x2b')](function(){var _0x1f9b4c=_0x7b31('0x68')+_0x31a8e8;return db[_0x7b31('0x59')]['query'](_0x1f9b4c,{'type':db[_0x7b31('0x5b')][_0x7b31('0x5c')][_0x7b31('0x5d')],'raw':!![],'transaction':_0xad382d});})['then'](function(_0x58194c){var _0x4085ec=_[_0x7b31('0x31')](_0x58194c,function(_0x1adfdb){return Number(_0x1adfdb['FaxQueueId']);});return db[_0x7b31('0x69')][_0x7b31('0x61')]({'where':{'UserId':{'$in':_0x30d4c4},'FaxQueueId':{'$in':_0x4085ec}},'transaction':_0xad382d});})[_0x7b31('0x2b')](function(){var _0x4d8ef6=_0x7b31('0x6a')+_0x31a8e8;return db[_0x7b31('0x59')][_0x7b31('0x37')](_0x4d8ef6,{'type':db[_0x7b31('0x5b')][_0x7b31('0x5c')][_0x7b31('0x5d')],'raw':!![],'transaction':_0xad382d});})[_0x7b31('0x2b')](function(_0x1af20b){var _0x5c5b22=_['map'](_0x1af20b,function(_0x5cced8){return Number(_0x5cced8[_0x7b31('0x6b')]);});return db[_0x7b31('0x6c')][_0x7b31('0x61')]({'where':{'UserId':{'$in':_0x30d4c4},'OpenchannelQueueId':{'$in':_0x5c5b22}},'transaction':_0xad382d});})['then'](function(){var _0x553a05=_0x7b31('0x6d')+_0x31a8e8;return db[_0x7b31('0x59')][_0x7b31('0x37')](_0x553a05,{'type':db[_0x7b31('0x5b')]['QueryTypes'][_0x7b31('0x5d')],'raw':!![],'transaction':_0xad382d});})[_0x7b31('0x2b')](function(_0x25c26d){var _0x2b8eda=_['map'](_0x25c26d,function(_0x4966fe){return Number(_0x4966fe[_0x7b31('0x6e')]);});return db[_0x7b31('0x6f')][_0x7b31('0x61')]({'where':{'UserId':{'$in':_0x30d4c4},'WhatsappQueueId':{'$in':_0x2b8eda}},'transaction':_0xad382d});})[_0x7b31('0x2b')](function(){return db[_0x7b31('0x70')][_0x7b31('0x58')]({'where':{'TeamId':_0x31a8e8}});})[_0x7b31('0x2b')](function(_0x301ac4){if(_0x301ac4===null){return;}return db[_0x7b31('0x71')]['destroy']({'where':{'UserId':{'$in':_0x30d4c4},'VoicePrefixId':_0x301ac4[_0x7b31('0x72')]},'transaction':_0xad382d});})['then'](function(){return db[_0x7b31('0x32')]['destroy']({'where':{'id':_0x31a8e8},'cascade':!![],'transaction':_0xad382d});})[_0x7b31('0x2b')](function(_0x308fa2){if(_0x308fa2===0x0){_0x34b755['sendStatus'](0x194);}else{return db[_0x7b31('0x56')]['destroy']({'where':{'type':_0x7b31('0x52'),'resourceId':_0x31a8e8},'cascade':!![],'transaction':_0xad382d})[_0x7b31('0x2b')](function(){_0x34b755['status'](0xcc)['end']();});}})[_0x7b31('0x4c')](function(_0x1f5041){_0x34b755[_0x7b31('0x20')](0x1f4)['send'](_0x1f5041);});});};exports['getQueues']=function(_0x17e4ef,_0x134a5d,_0x245f86){return db[_0x7b31('0x32')]['findOne']({'where':{'id':_0x17e4ef[_0x7b31('0x4b')]['id']}})[_0x7b31('0x2b')](handleEntityNotFound(_0x134a5d,null))[_0x7b31('0x2b')](function(_0x5d7ebc){if(!_0x17e4ef['query']['channel']||!utils[_0x7b31('0x73')](_0x17e4ef[_0x7b31('0x37')]['channel'])){throw new db['Sequelize'][(_0x7b31('0x74'))](_0x7b31('0x75'));}var _0x20204e={};var _0x141921={};_0x141921[_0x7b31('0x36')]=_[_0x7b31('0x38')](db[_[_0x7b31('0x76')](_0x17e4ef['query']['channel'][_0x7b31('0x77')]())+'Queue'][_0x7b31('0x33')]);_0x141921[_0x7b31('0x37')]=_[_0x7b31('0x38')](_0x17e4ef[_0x7b31('0x37')]);_0x141921[_0x7b31('0x39')]=_['intersection'](_0x141921['model'],_0x141921[_0x7b31('0x37')]);_0x20204e[_0x7b31('0x3b')]=_[_0x7b31('0x3a')](_0x141921[_0x7b31('0x36')],qs[_0x7b31('0x3c')](_0x17e4ef['query'][_0x7b31('0x3c')]));_0x20204e[_0x7b31('0x3b')]=_0x20204e[_0x7b31('0x3b')][_0x7b31('0x3d')]?_0x20204e['attributes']:_0x141921[_0x7b31('0x36')];_0x20204e['limit']=qs[_0x7b31('0x23')](_0x17e4ef[_0x7b31('0x37')][_0x7b31('0x23')]);_0x20204e[_0x7b31('0x24')]=qs['offset'](_0x17e4ef[_0x7b31('0x37')][_0x7b31('0x24')]);_0x20204e['order']=qs['sort'](_0x17e4ef['query']['sort']);_0x20204e[_0x7b31('0x41')]=qs[_0x7b31('0x39')](_[_0x7b31('0x42')](_0x17e4ef['query'],_0x141921[_0x7b31('0x39')]));_0x20204e=_[_0x7b31('0x43')]({},_0x20204e,_0x17e4ef[_0x7b31('0x46')]);return _0x5d7ebc[_0x7b31('0x4f')+_[_0x7b31('0x76')](_0x17e4ef[_0x7b31('0x37')]['channel'][_0x7b31('0x77')]())+'Queues'](_0x20204e);})[_0x7b31('0x2b')](respondWithResult(_0x134a5d,null))[_0x7b31('0x4c')](handleError(_0x134a5d,null));};exports['addQueues']=function(_0xfc1f75,_0x238d73,_0x3c08c0){return db[_0x7b31('0x32')]['findOne']({'where':{'id':_0xfc1f75[_0x7b31('0x4b')]['id']}})['then'](function(_0x139323){if(_0x139323){if(!_0xfc1f75[_0x7b31('0x4e')][_0x7b31('0x78')]||!utils[_0x7b31('0x73')](_0xfc1f75['body'][_0x7b31('0x78')])){throw new db[(_0x7b31('0x5b'))][(_0x7b31('0x74'))](_0x7b31('0x75'));}return _0x139323[_0x7b31('0x79')+_[_0x7b31('0x76')](_0xfc1f75[_0x7b31('0x4e')][_0x7b31('0x78')][_0x7b31('0x77')]())+_0x7b31('0x7a')](_0xfc1f75[_0x7b31('0x4e')][_0x7b31('0x7b')]);}return null;})[_0x7b31('0x2b')](handleEntityNotFound(_0x238d73,null))[_0x7b31('0x2b')](respondWithStatusCode(_0x238d73,null))[_0x7b31('0x4c')](handleError(_0x238d73,null));};exports[_0x7b31('0x7c')]=function(_0x312308,_0x1dd04a,_0x336bf0){return db[_0x7b31('0x32')]['findOne']({'where':{'id':_0x312308[_0x7b31('0x4b')]['id']}})[_0x7b31('0x2b')](function(_0x4a8f30){if(_0x4a8f30){if(!_0x312308['query']['channel']||!utils[_0x7b31('0x73')](_0x312308['query'][_0x7b31('0x78')])){throw new db['Sequelize'][(_0x7b31('0x74'))]('Unknown\x20channel');}return _0x4a8f30[_0x7b31('0x7d')+_['capitalize'](_0x312308['query'][_0x7b31('0x78')][_0x7b31('0x77')]())+_0x7b31('0x7a')](_0x312308[_0x7b31('0x37')]['ids']);}return null;})['then'](handleEntityNotFound(_0x1dd04a,null))[_0x7b31('0x2b')](respondWithStatusCode(_0x1dd04a,null))[_0x7b31('0x4c')](handleError(_0x1dd04a,null));};exports['addAgents']=function(_0x3edb72,_0x528e52){var _0x2e28e9=_['isArray'](_0x3edb72[_0x7b31('0x4e')]['ids'])?_0x3edb72[_0x7b31('0x4e')][_0x7b31('0x7b')]:[_0x3edb72['body']['ids']];var _0x99d056=_0x3edb72['params']['id'];return db[_0x7b31('0x32')][_0x7b31('0x58')]({'where':{'id':_0x99d056}})[_0x7b31('0x2b')](handleEntityNotFound(_0x528e52,null))[_0x7b31('0x2b')](function(_0x31bf53){if(_0x31bf53){var _0x2eaa16=[_0x7b31('0x7e'),'Chat',_0x7b31('0x7f'),_0x7b31('0x80'),'Fax',_0x7b31('0x81'),_0x7b31('0x82')];return db[_0x7b31('0x59')][_0x7b31('0x5a')](function(_0x5dc348){var _0x267d50=_[_0x7b31('0x31')](_0x2eaa16,function(_0x79e1e3){var _0x5bfb8b={'attributes':['id',_0x7b31('0x2e')]};if(_0x79e1e3===_0x7b31('0x7e')){_0x5bfb8b[_0x7b31('0x83')]={'attributes':['penalty']};}return _0x31bf53[_0x7b31('0x4f')+_0x79e1e3+_0x7b31('0x7a')](_0x5bfb8b)[_0x7b31('0x2b')](function(_0x3c6f12){var _0x2177c2=_['map'](_0x3c6f12,function(_0x51bd70){var _0x6b9647=_[_0x7b31('0x31')](_0x2e28e9,function(_0x1ca482){var _0x540cdb={'where':{'UserId':_0x1ca482,[_0x79e1e3+_0x7b31('0x84')]:_0x51bd70['id']},'transaction':_0x5dc348};if(_0x79e1e3==='Voice'){_0x540cdb['defaults']={'penalty':_0x51bd70[_0x7b31('0x85')][_0x7b31('0x86')]};}return db[_0x7b31('0x87')+_0x79e1e3+'Queue'][_0x7b31('0x88')](_0x540cdb)['then'](function(){socket[_0x7b31('0x89')]('user'+_0x79e1e3+_0x7b31('0x8a'),{'UserId':_0x1ca482,[_0x79e1e3+'QueueId']:_0x51bd70['id']});if(_0x79e1e3!==_0x7b31('0x7e')){return;}return db['User'][_0x7b31('0x48')]({'where':{'id':_0x2e28e9,'online':0x1},'attributes':['id',_0x7b31('0x2e'),_0x7b31('0x8b'),_0x7b31('0x8c'),_0x7b31('0x8d')],'raw':!![]})['then'](function(_0xc5fcde){var _0x4796f6=_[_0x7b31('0x31')](_0xc5fcde,function(_0x456a46){return db[_0x7b31('0x8e')][_0x7b31('0x8f')]({'membername':_0x456a46[_0x7b31('0x2e')],'UserId':_0x456a46['id'],'queue_name':_0x51bd70['name'],'VoiceQueueId':_0x51bd70['id'],'interface':_[_0x7b31('0x90')](_0x456a46['interface'])?util['format'](_0x7b31('0x91'),_0x456a46['name']):_0x456a46[_0x7b31('0x8d')],'paused':_0x456a46[_0x7b31('0x8c')]||![],'penalty':_0x51bd70[_0x7b31('0x85')][_0x7b31('0x86')]},{'transaction':_0x5dc348});});return Promise[_0x7b31('0x92')](_0x4796f6);});});});return Promise[_0x7b31('0x92')](_0x6b9647);});return Promise[_0x7b31('0x92')](_0x2177c2);})['then'](function(){return db[_0x7b31('0x70')]['findOne']({'where':{'teamId':_0x99d056}})[_0x7b31('0x2b')](function(_0x59ae0f){if(_0x59ae0f){var _0x2a9971=_['map'](_0x2e28e9,function(_0x524956){db[_0x7b31('0x71')][_0x7b31('0x8f')]({'UserId':_0x524956,'VoicePrefixId':_0x59ae0f[_0x7b31('0x72')]});});return Promise[_0x7b31('0x92')](_0x2a9971);}});});});return Promise['all'](_0x267d50)['then'](function(){return _0x31bf53[_0x7b31('0x93')](_0x2e28e9,{'transaction':_0x5dc348})[_0x7b31('0x94')](function(_0x4806bc){return _0x4806bc;});});});}})[_0x7b31('0x2b')](respondWithResult(_0x528e52,null))[_0x7b31('0x4c')](handleError(_0x528e52,null));};exports[_0x7b31('0x95')]=function(_0x31e197,_0x2c917b){var _0x539d51=_['isArray'](_0x31e197[_0x7b31('0x37')]['ids'])?_0x31e197[_0x7b31('0x37')][_0x7b31('0x7b')]:[_0x31e197[_0x7b31('0x37')]['ids']];var _0x13b402=_0x31e197[_0x7b31('0x4b')]['id'];return db[_0x7b31('0x32')]['find']({'where':{'id':_0x13b402}})[_0x7b31('0x2b')](handleEntityNotFound(_0x2c917b,null))[_0x7b31('0x2b')](function(_0x19943f){if(_0x19943f){var _0x432fa6=[_0x7b31('0x7e'),_0x7b31('0x96'),_0x7b31('0x7f'),_0x7b31('0x80'),_0x7b31('0x97'),_0x7b31('0x81'),'Whatsapp'];return db[_0x7b31('0x59')][_0x7b31('0x5a')](function(_0x166a4e){var _0x245f41=_[_0x7b31('0x31')](_0x432fa6,function(_0x7564f){var _0x5284d4={'attributes':['id',_0x7b31('0x2e')]};return _0x19943f[_0x7b31('0x4f')+_0x7564f+_0x7b31('0x7a')](_0x5284d4)['then'](function(_0x2991a6){var _0x5e64f4=_[_0x7b31('0x31')](_0x2991a6,function(_0x52ac17){return _0x52ac17[_0x7b31('0x95')](_0x539d51,{'transaction':_0x166a4e})[_0x7b31('0x2b')](function(){var _0x4cc219=_[_0x7b31('0x31')](_0x539d51,function(_0x245cef){socket[_0x7b31('0x89')](_0x7b31('0x98')+_0x7564f+'Queue:remove',{'UserId':Number(_0x245cef),[_0x7564f+'QueueId']:_0x52ac17['id']});if(_0x7564f!==_0x7b31('0x7e')){return;}return db[_0x7b31('0x8e')][_0x7b31('0x61')]({'where':{'VoiceQueueId':_0x52ac17['id'],'UserId':_0x245cef},'transaction':_0x166a4e});});return Promise[_0x7b31('0x92')](_0x4cc219);});});return Promise[_0x7b31('0x92')](_0x5e64f4);});});return Promise[_0x7b31('0x92')](_0x245f41)[_0x7b31('0x2b')](function(){return _0x19943f['removeAgents'](_0x539d51,{'transaction':_0x166a4e});})[_0x7b31('0x2b')](function(){return db['TeamVoicePrefix']['findOne']({'where':{'teamId':_0x13b402}})['then'](function(_0x1e7dee){if(_0x1e7dee){var _0x6942c8=_[_0x7b31('0x31')](_0x539d51,function(_0x3e3600){db[_0x7b31('0x71')][_0x7b31('0x61')]({'where':{'UserId':_0x3e3600,'VoicePrefixId':_0x1e7dee[_0x7b31('0x72')]}});});return Promise[_0x7b31('0x92')](_0x6942c8);}});});});}})['then'](respondWithStatusCode(_0x2c917b,null))[_0x7b31('0x4c')](handleError(_0x2c917b,null));};exports[_0x7b31('0x99')]=function(_0x35edf5,_0x610cca,_0x6d04e0){var _0x21560c={};var _0x4de048={};var _0x57b867;var _0x2f05ea;return db[_0x7b31('0x32')][_0x7b31('0x9a')]({'where':{'id':_0x35edf5[_0x7b31('0x4b')]['id']}})[_0x7b31('0x2b')](handleEntityNotFound(_0x610cca,null))[_0x7b31('0x2b')](function(_0x5e5c79){if(_0x5e5c79){_0x57b867=_0x5e5c79;_0x4de048[_0x7b31('0x36')]=_[_0x7b31('0x38')](db['User'][_0x7b31('0x33')]);_0x4de048[_0x7b31('0x37')]=_[_0x7b31('0x38')](_0x35edf5['query']);_0x4de048[_0x7b31('0x39')]=_[_0x7b31('0x3a')](_0x4de048[_0x7b31('0x36')],_0x4de048[_0x7b31('0x37')]);_0x21560c[_0x7b31('0x3b')]=_['intersection'](_0x4de048['model'],qs['fields'](_0x35edf5[_0x7b31('0x37')]['fields']));_0x21560c[_0x7b31('0x3b')]=_0x21560c[_0x7b31('0x3b')][_0x7b31('0x3d')]?_0x21560c[_0x7b31('0x3b')]:_0x4de048['model'];_0x21560c['order']=qs['sort'](_0x35edf5['query'][_0x7b31('0x40')]);_0x21560c[_0x7b31('0x41')]=qs[_0x7b31('0x39')](_[_0x7b31('0x42')](_0x35edf5[_0x7b31('0x37')],_0x4de048[_0x7b31('0x39')]));if(_0x35edf5[_0x7b31('0x37')][_0x7b31('0x45')]){_0x21560c[_0x7b31('0x41')]=_[_0x7b31('0x43')](_0x21560c[_0x7b31('0x41')],{'$or':_[_0x7b31('0x31')](_0x21560c[_0x7b31('0x3b')],function(_0x57070a){var _0x431dc4={};_0x431dc4[_0x57070a]={'$like':'%'+_0x35edf5['query']['filter']+'%'};return _0x431dc4;})});}_0x21560c=_[_0x7b31('0x43')]({},_0x21560c,_0x35edf5[_0x7b31('0x46')]);return _0x57b867[_0x7b31('0x99')](_0x21560c);}})['then'](function(_0x3583c0){if(_0x3583c0){_0x2f05ea=_0x3583c0[_0x7b31('0x3d')];if(!_0x35edf5['query'][_0x7b31('0x9b')](_0x7b31('0x3e'))){_0x21560c[_0x7b31('0x23')]=qs[_0x7b31('0x23')](_0x35edf5[_0x7b31('0x37')]['limit']);_0x21560c[_0x7b31('0x24')]=qs['offset'](_0x35edf5[_0x7b31('0x37')][_0x7b31('0x24')]);}return _0x57b867['getAgents'](_0x21560c);}})['then'](function(_0x340003){if(_0x340003){return _0x340003?{'count':_0x2f05ea,'rows':_0x340003}:null;}})[_0x7b31('0x2b')](respondWithResult(_0x610cca,null))[_0x7b31('0x4c')](handleError(_0x610cca,null));};