Built motion from commit (unavailable).|2.5.4
[motion2.git] / server / api / chatQueue / chatQueue.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 _0xd10d=['rimraf','zip-dir','fast-json-patch','moment','bluebird','util','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','../../config/environment','defaults','redis','localhost','socket.io-emitter','register','jayson/promise','client','http','test','Sequelize','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','request','then','info','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','code','error','message','catch','sendStatus','status','json','count','offset','limit','set','Content-Range','apply','save','update','ChatQueues','destroy','end','stack','name','send','index','map','rawAttributes','fieldName','type','key','keys','filters','intersection','model','query','attributes','fields','length','hasOwnProperty','order','sort','filter','where','merge','options','ChatQueue','includeAll','include','findAll','rows','params','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','findOne','UserChatQueue','nolimit','pick','ChatQueueId','findAndCountAll','chatPause','updatedAt','createdAt','SIP','getTeams','addTeams','ids','Team','User','online','voicePause','interface','Agents','sequelize','findOrCreate','forEach','emit','userChatQueue:save','removeTeams','select','field','tq.TeamId','join','user_has_teams','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','QueryTypes','SELECT','every','includes','union','compact','value','transaction','isEmpty','removeAgents','userChatQueue:remove','addAgents','spread','isArray','getAgents','html-pdf','eml-format'];(function(_0x56c7c3,_0x4d21bf){var _0x5d2fb3=function(_0x62e04b){while(--_0x62e04b){_0x56c7c3['push'](_0x56c7c3['shift']());}};_0x5d2fb3(++_0x4d21bf);}(_0xd10d,0x94));var _0xdd10=function(_0x5c2cd5,_0x1c2fbb){_0x5c2cd5=_0x5c2cd5-0x0;var _0x5180e9=_0xd10d[_0x5c2cd5];return _0x5180e9;};'use strict';var pdf=require(_0xdd10('0x0'));var emlformat=require(_0xdd10('0x1'));var rimraf=require(_0xdd10('0x2'));var zipdir=require(_0xdd10('0x3'));var jsonpatch=require(_0xdd10('0x4'));var rp=require('request-promise');var moment=require(_0xdd10('0x5'));var BPromise=require(_0xdd10('0x6'));var Mustache=require('mustache');var util=require(_0xdd10('0x7'));var path=require('path');var sox=require(_0xdd10('0x8'));var csv=require(_0xdd10('0x9'));var ejs=require(_0xdd10('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0xdd10('0xb'));var crypto=require(_0xdd10('0xc'));var jsforce=require(_0xdd10('0xd'));var deskjs=require(_0xdd10('0xe'));var toCsv=require(_0xdd10('0x9'));var querystring=require(_0xdd10('0xf'));var Papa=require(_0xdd10('0x10'));var Redis=require(_0xdd10('0x11'));var authService=require(_0xdd10('0x12'));var qs=require(_0xdd10('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xdd10('0x14'))('api');var utils=require('../../config/utils');var config=require(_0xdd10('0x15'));var db=require('../../mysqldb')['db'];config['redis']=_[_0xdd10('0x16')](config[_0xdd10('0x17')],{'host':_0xdd10('0x18'),'port':0x18eb});var socket=require(_0xdd10('0x19'))(new Redis(config[_0xdd10('0x17')]));require('./chatQueue.socket')[_0xdd10('0x1a')](socket);var jayson=require(_0xdd10('0x1b'));var client=jayson[_0xdd10('0x1c')][_0xdd10('0x1d')]({'port':0x232a});function checkPasswordPattern(_0xbfb313,_0x2bc78f,_0x5f5c58){if(_0x5f5c58){var _0x298961=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x298961[_0xdd10('0x1e')](_0x2bc78f)){return _0xbfb313;}else{throw new db[(_0xdd10('0x1f'))][(_0xdd10('0x20'))](_0xdd10('0x21'));}}else{return _0xbfb313;}}function respondWithRpcPromise(_0x33b40b,_0x2aa5c2,_0x4b4100,_0x3d50a5){return new BPromise(function(_0x2ce377,_0x1600eb){var _0x41ec48=_0x3d50a5||client;return _0x41ec48[_0xdd10('0x22')](_0x33b40b,_0x4b4100)[_0xdd10('0x23')](function(_0x1522a5){logger[_0xdd10('0x24')](_0xdd10('0x25'),_0x2aa5c2,_0xdd10('0x26'));logger[_0xdd10('0x27')](_0xdd10('0x28'),_0x2aa5c2,_0xdd10('0x26'),JSON[_0xdd10('0x29')](_0x1522a5));if(_0x1522a5['error']){if(_0x1522a5['error'][_0xdd10('0x2a')]===0x1f4){logger[_0xdd10('0x2b')]('ChatQueue,\x20%s,\x20%s',_0x2aa5c2,_0x1522a5[_0xdd10('0x2b')][_0xdd10('0x2c')]);return _0x1600eb(_0x1522a5[_0xdd10('0x2b')][_0xdd10('0x2c')]);}logger[_0xdd10('0x2b')](_0xdd10('0x25'),_0x2aa5c2,_0x1522a5[_0xdd10('0x2b')][_0xdd10('0x2c')]);return _0x2ce377(_0x1522a5['error'][_0xdd10('0x2c')]);}else{logger['info']('ChatQueue,\x20%s,\x20%s',_0x2aa5c2,_0xdd10('0x26'));_0x2ce377(_0x1522a5['result'][_0xdd10('0x2c')]);}})[_0xdd10('0x2d')](function(_0x285f25){logger[_0xdd10('0x2b')](_0xdd10('0x25'),_0x2aa5c2,_0x285f25);_0x1600eb(_0x285f25);});});}function respondWithStatusCode(_0x48afb1,_0x47c57f){_0x47c57f=_0x47c57f||0xcc;return function(_0x4bd81f){if(_0x4bd81f){return _0x48afb1[_0xdd10('0x2e')](_0x47c57f);}return _0x48afb1['status'](_0x47c57f)['end']();};}function respondWithResult(_0x33b394,_0x5083fb){_0x5083fb=_0x5083fb||0xc8;return function(_0x3c8fc0){if(_0x3c8fc0){return _0x33b394[_0xdd10('0x2f')](_0x5083fb)[_0xdd10('0x30')](_0x3c8fc0);}};}function respondWithFilteredResult(_0x23e62a,_0x35d269){return function(_0xbfb08a){if(_0xbfb08a){var _0x48c27d=_0xbfb08a[_0xdd10('0x31')],_0x392094=_0x35d269[_0xdd10('0x32')],_0x20e23d=_0x35d269[_0xdd10('0x32')]+_0x35d269[_0xdd10('0x33')],_0x1fea11;if(_0x20e23d>=_0x48c27d){_0x20e23d=_0x48c27d;_0x1fea11=0xc8;}else{_0x1fea11=0xce;}_0x23e62a[_0xdd10('0x2f')](_0x1fea11);return _0x23e62a[_0xdd10('0x34')](_0xdd10('0x35'),_0x392094+'-'+_0x20e23d+'/'+_0x48c27d)['json'](_0xbfb08a);}return null;};}function patchUpdates(_0x2e9b61){return function(_0x3407ec){try{jsonpatch[_0xdd10('0x36')](_0x3407ec,_0x2e9b61,!![]);}catch(_0x497fc0){return BPromise['reject'](_0x497fc0);}return _0x3407ec[_0xdd10('0x37')]();};}function saveUpdates(_0x4ae703,_0x211e91){return function(_0x5bf956){if(_0x5bf956){return _0x5bf956[_0xdd10('0x38')](_0x4ae703)[_0xdd10('0x23')](function(_0x29d563){return _0x29d563;});}return null;};}function removeEntity(_0x2f4225,_0xebb554){return function(_0x413bda){if(_0x413bda){return _0x413bda['destroy']()[_0xdd10('0x23')](function(){var _0x21eb67=_0x413bda['get']({'plain':!![]});var _0x33d15d=_0xdd10('0x39');return db['UserProfileResource'][_0xdd10('0x3a')]({'where':{'type':_0x33d15d,'resourceId':_0x21eb67['id']}})[_0xdd10('0x23')](function(){return _0x413bda;});})['then'](function(){_0x2f4225['status'](0xcc)[_0xdd10('0x3b')]();});}};}function handleEntityNotFound(_0x3ce334,_0x424cc8){return function(_0x137824){if(!_0x137824){_0x3ce334[_0xdd10('0x2e')](0x194);}return _0x137824;};}function handleError(_0x10187d,_0x552da1){_0x552da1=_0x552da1||0x1f4;return function(_0x36484f){logger['error'](_0x36484f[_0xdd10('0x3c')]);if(_0x36484f[_0xdd10('0x3d')]){delete _0x36484f[_0xdd10('0x3d')];}_0x10187d['status'](_0x552da1)[_0xdd10('0x3e')](_0x36484f);};}exports[_0xdd10('0x3f')]=function(_0x51f39d,_0x497381){var _0x5c19de={},_0xd8f20={},_0x45a97b={'count':0x0,'rows':[]};var _0x4bf531=_[_0xdd10('0x40')](db['ChatQueue'][_0xdd10('0x41')],function(_0x375c0a){return{'name':_0x375c0a[_0xdd10('0x42')],'type':_0x375c0a[_0xdd10('0x43')][_0xdd10('0x44')]};});_0xd8f20['model']=_[_0xdd10('0x40')](_0x4bf531,_0xdd10('0x3d'));_0xd8f20['query']=_[_0xdd10('0x45')](_0x51f39d['query']);_0xd8f20[_0xdd10('0x46')]=_[_0xdd10('0x47')](_0xd8f20[_0xdd10('0x48')],_0xd8f20[_0xdd10('0x49')]);_0x5c19de[_0xdd10('0x4a')]=_['intersection'](_0xd8f20[_0xdd10('0x48')],qs[_0xdd10('0x4b')](_0x51f39d[_0xdd10('0x49')][_0xdd10('0x4b')]));_0x5c19de[_0xdd10('0x4a')]=_0x5c19de[_0xdd10('0x4a')][_0xdd10('0x4c')]?_0x5c19de[_0xdd10('0x4a')]:_0xd8f20[_0xdd10('0x48')];if(!_0x51f39d[_0xdd10('0x49')][_0xdd10('0x4d')]('nolimit')){_0x5c19de[_0xdd10('0x33')]=qs[_0xdd10('0x33')](_0x51f39d['query'][_0xdd10('0x33')]);_0x5c19de['offset']=qs[_0xdd10('0x32')](_0x51f39d['query']['offset']);}_0x5c19de[_0xdd10('0x4e')]=qs[_0xdd10('0x4f')](_0x51f39d['query']['sort']);_0x5c19de['where']=qs[_0xdd10('0x46')](_['pick'](_0x51f39d[_0xdd10('0x49')],_0xd8f20['filters']),_0x4bf531);if(_0x51f39d['query'][_0xdd10('0x50')]){_0x5c19de[_0xdd10('0x51')]=_[_0xdd10('0x52')](_0x5c19de['where'],{'$or':_[_0xdd10('0x40')](_0x4bf531,function(_0x57843a){if(_0x57843a[_0xdd10('0x43')]!=='VIRTUAL'){var _0x16e432={};_0x16e432[_0x57843a[_0xdd10('0x3d')]]={'$like':'%'+_0x51f39d[_0xdd10('0x49')][_0xdd10('0x50')]+'%'};return _0x16e432;}})});}_0x5c19de=_[_0xdd10('0x52')]({},_0x5c19de,_0x51f39d[_0xdd10('0x53')]);var _0x2f445c={'where':_0x5c19de['where']};return db[_0xdd10('0x54')][_0xdd10('0x31')](_0x2f445c)['then'](function(_0x1ad47f){_0x45a97b[_0xdd10('0x31')]=_0x1ad47f;if(_0x51f39d[_0xdd10('0x49')][_0xdd10('0x55')]){_0x5c19de[_0xdd10('0x56')]=[{'all':!![]}];}return db[_0xdd10('0x54')][_0xdd10('0x57')](_0x5c19de);})[_0xdd10('0x23')](function(_0x4b7680){_0x45a97b[_0xdd10('0x58')]=_0x4b7680;return _0x45a97b;})['then'](respondWithFilteredResult(_0x497381,_0x5c19de))[_0xdd10('0x2d')](handleError(_0x497381,null));};exports['show']=function(_0x2b0bc8,_0x18631c){var _0x1a8b1f={'raw':!![],'where':{'id':_0x2b0bc8[_0xdd10('0x59')]['id']}},_0x2bfee3={};_0x2bfee3[_0xdd10('0x48')]=_[_0xdd10('0x45')](db[_0xdd10('0x54')]['rawAttributes']);_0x2bfee3['query']=_['keys'](_0x2b0bc8[_0xdd10('0x49')]);_0x2bfee3[_0xdd10('0x46')]=_[_0xdd10('0x47')](_0x2bfee3[_0xdd10('0x48')],_0x2bfee3[_0xdd10('0x49')]);_0x1a8b1f[_0xdd10('0x4a')]=_['intersection'](_0x2bfee3['model'],qs['fields'](_0x2b0bc8[_0xdd10('0x49')][_0xdd10('0x4b')]));_0x1a8b1f[_0xdd10('0x4a')]=_0x1a8b1f[_0xdd10('0x4a')]['length']?_0x1a8b1f[_0xdd10('0x4a')]:_0x2bfee3['model'];if(_0x2b0bc8[_0xdd10('0x49')][_0xdd10('0x55')]){_0x1a8b1f[_0xdd10('0x56')]=[{'all':!![]}];}_0x1a8b1f=_[_0xdd10('0x52')]({},_0x1a8b1f,_0x2b0bc8['options']);return db['ChatQueue']['find'](_0x1a8b1f)[_0xdd10('0x23')](handleEntityNotFound(_0x18631c,null))[_0xdd10('0x23')](respondWithResult(_0x18631c,null))[_0xdd10('0x2d')](handleError(_0x18631c,null));};exports['create']=function(_0x4bd7a3,_0x1bbdc3){return db[_0xdd10('0x54')][_0xdd10('0x5a')](_0x4bd7a3[_0xdd10('0x5b')],{})[_0xdd10('0x23')](function(_0x4c592f){var _0xea4639=_0x4bd7a3[_0xdd10('0x5c')][_0xdd10('0x5d')]({'plain':!![]});if(!_0xea4639)throw new Error(_0xdd10('0x5e'));if(_0xea4639['role']===_0xdd10('0x5c')){var _0x564c24=_0x4c592f[_0xdd10('0x5d')]({'plain':!![]});var _0x13b463=_0xdd10('0x39');return db[_0xdd10('0x5f')][_0xdd10('0x60')]({'where':{'name':_0x13b463,'userProfileId':_0xea4639['userProfileId']},'raw':!![]})['then'](function(_0x2f496a){if(_0x2f496a&&_0x2f496a[_0xdd10('0x61')]===0x0){return db[_0xdd10('0x62')]['create']({'name':_0x564c24[_0xdd10('0x3d')],'resourceId':_0x564c24['id'],'type':_0x2f496a[_0xdd10('0x3d')],'sectionId':_0x2f496a['id']},{})[_0xdd10('0x23')](function(){return _0x4c592f;});}else{return _0x4c592f;}})[_0xdd10('0x2d')](function(_0x802f8){logger[_0xdd10('0x2b')](_0xdd10('0x63'),_0x802f8);throw _0x802f8;});}return _0x4c592f;})[_0xdd10('0x23')](respondWithResult(_0x1bbdc3,0xc9))[_0xdd10('0x2d')](handleError(_0x1bbdc3,null));};exports['update']=function(_0xf95b6b,_0x4662a5){if(_0xf95b6b[_0xdd10('0x5b')]['id']){delete _0xf95b6b[_0xdd10('0x5b')]['id'];}return db[_0xdd10('0x54')]['find']({'where':{'id':_0xf95b6b[_0xdd10('0x59')]['id']}})['then'](handleEntityNotFound(_0x4662a5,null))[_0xdd10('0x23')](saveUpdates(_0xf95b6b[_0xdd10('0x5b')],null))[_0xdd10('0x23')](respondWithResult(_0x4662a5,null))[_0xdd10('0x2d')](handleError(_0x4662a5,null));};exports['destroy']=function(_0x5ccf42,_0x45a431){return db[_0xdd10('0x54')][_0xdd10('0x60')]({'where':{'id':_0x5ccf42[_0xdd10('0x59')]['id']}})[_0xdd10('0x23')](handleEntityNotFound(_0x45a431,null))[_0xdd10('0x23')](removeEntity(_0x45a431,null))[_0xdd10('0x2d')](handleError(_0x45a431,null));};exports[_0xdd10('0x64')]=function(_0x3cd438,_0x394fb6){return db[_0xdd10('0x54')][_0xdd10('0x64')]()[_0xdd10('0x23')](respondWithResult(_0x394fb6,null))['catch'](handleError(_0x394fb6,null));};exports['getMembers']=function(_0x4cab6f,_0x5b363d,_0x4286fa){var _0x561d81={'raw':!![],'where':{}},_0x56e7a8={},_0x1a96cc;return db['ChatQueue'][_0xdd10('0x65')]({'where':{'id':_0x4cab6f['params']['id']}})[_0xdd10('0x23')](handleEntityNotFound(_0x5b363d,null))[_0xdd10('0x23')](function(_0x4e8d90){if(_0x4e8d90){_0x1a96cc=_0x4e8d90[_0xdd10('0x5d')]({'plain':!![]});_0x56e7a8[_0xdd10('0x48')]=_[_0xdd10('0x45')](db[_0xdd10('0x66')][_0xdd10('0x41')]);_0x56e7a8[_0xdd10('0x49')]=_[_0xdd10('0x45')](_0x4cab6f[_0xdd10('0x49')]);_0x56e7a8[_0xdd10('0x46')]=_[_0xdd10('0x47')](_0x56e7a8[_0xdd10('0x48')],_0x56e7a8['query']);_0x561d81[_0xdd10('0x4a')]=_[_0xdd10('0x47')](_0x56e7a8['model'],qs[_0xdd10('0x4b')](_0x4cab6f['query']['fields']));_0x561d81[_0xdd10('0x4a')]=_0x561d81['attributes'][_0xdd10('0x4c')]?_0x561d81['attributes']:_0x56e7a8['model'];if(!_0x4cab6f['query'][_0xdd10('0x4d')](_0xdd10('0x67'))){_0x561d81['limit']=qs[_0xdd10('0x33')](_0x4cab6f[_0xdd10('0x49')]['limit']);_0x561d81[_0xdd10('0x32')]=qs[_0xdd10('0x32')](_0x4cab6f['query'][_0xdd10('0x32')]);}_0x561d81[_0xdd10('0x4e')]=qs[_0xdd10('0x4f')](_0x4cab6f['query']['sort']);_0x561d81[_0xdd10('0x51')]=qs[_0xdd10('0x46')](_[_0xdd10('0x68')](_0x4cab6f[_0xdd10('0x49')],_0x56e7a8['filters']));_0x561d81[_0xdd10('0x51')][_0xdd10('0x69')]=_0x4e8d90['id'];if(_0x4cab6f[_0xdd10('0x49')][_0xdd10('0x50')]){_0x561d81[_0xdd10('0x51')]=_[_0xdd10('0x52')](_0x561d81[_0xdd10('0x51')],{'$or':_['map'](_0x561d81['attributes'],function(_0xeacdac){var _0x2e4869={};_0x2e4869[_0xeacdac]={'$like':'%'+_0x4cab6f[_0xdd10('0x49')][_0xdd10('0x50')]+'%'};return _0x2e4869;})});}_0x561d81=_[_0xdd10('0x52')]({},_0x561d81,_0x4cab6f[_0xdd10('0x53')]);return db['UserChatQueue'][_0xdd10('0x57')](_0x561d81);}})[_0xdd10('0x23')](function(_0x1f31fd){if(_0x1f31fd){return db['User'][_0xdd10('0x6a')]({'where':{'id':_[_0xdd10('0x40')](_0x1f31fd,'UserId'),'role':'agent'},'attributes':['id',_0xdd10('0x3d'),_0xdd10('0x6b'),_0xdd10('0x6c'),_0xdd10('0x6d')]});}})[_0xdd10('0x23')](function(_0x4733f7){if(_0x4733f7){return{'count':_0x4733f7[_0xdd10('0x31')],'rows':_['map'](_0x4733f7['rows'],function(_0x45fe0f){return{'membername':_0x45fe0f[_0xdd10('0x3d')],'UserId':_0x45fe0f['id'],'queue_name':_0x1a96cc['name'],'ChatQueueId':_0x1a96cc['id'],'interface':util['format']('%s/%s',_0xdd10('0x6e'),_0x45fe0f[_0xdd10('0x3d')]),'penalty':0x0,'paused':_0x45fe0f['chatPause'],'createdAt':_0x45fe0f[_0xdd10('0x6d')],'updatedAt':_0x45fe0f[_0xdd10('0x6c')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xdd10('0x23')](respondWithFilteredResult(_0x5b363d,_0x561d81))[_0xdd10('0x2d')](handleError(_0x5b363d,null));};exports[_0xdd10('0x6f')]=function(_0x5287d2,_0xb8b0a,_0x38e0f2){var _0x5d7b04={};var _0x3dcb7d={};var _0x3dbf51;var _0x36e7e4;return db[_0xdd10('0x54')]['findOne']({'where':{'id':_0x5287d2[_0xdd10('0x59')]['id']}})['then'](handleEntityNotFound(_0xb8b0a,null))[_0xdd10('0x23')](function(_0x15b5ba){if(_0x15b5ba){_0x3dbf51=_0x15b5ba;_0x3dcb7d[_0xdd10('0x48')]=_[_0xdd10('0x45')](db['Team'][_0xdd10('0x41')]);_0x3dcb7d['query']=_['keys'](_0x5287d2[_0xdd10('0x49')]);_0x3dcb7d[_0xdd10('0x46')]=_[_0xdd10('0x47')](_0x3dcb7d[_0xdd10('0x48')],_0x3dcb7d[_0xdd10('0x49')]);_0x5d7b04[_0xdd10('0x4a')]=_['intersection'](_0x3dcb7d['model'],qs[_0xdd10('0x4b')](_0x5287d2[_0xdd10('0x49')][_0xdd10('0x4b')]));_0x5d7b04[_0xdd10('0x4a')]=_0x5d7b04[_0xdd10('0x4a')]['length']?_0x5d7b04[_0xdd10('0x4a')]:_0x3dcb7d[_0xdd10('0x48')];_0x5d7b04['order']=qs[_0xdd10('0x4f')](_0x5287d2[_0xdd10('0x49')][_0xdd10('0x4f')]);_0x5d7b04['where']=qs[_0xdd10('0x46')](_['pick'](_0x5287d2[_0xdd10('0x49')],_0x3dcb7d[_0xdd10('0x46')]));if(_0x5287d2['query'][_0xdd10('0x50')]){_0x5d7b04[_0xdd10('0x51')]=_[_0xdd10('0x52')](_0x5d7b04['where'],{'$or':_[_0xdd10('0x40')](_0x5d7b04[_0xdd10('0x4a')],function(_0x5d9013){var _0x8f02b9={};_0x8f02b9[_0x5d9013]={'$like':'%'+_0x5287d2[_0xdd10('0x49')][_0xdd10('0x50')]+'%'};return _0x8f02b9;})});}_0x5d7b04=_[_0xdd10('0x52')]({},_0x5d7b04,_0x5287d2['options']);return _0x3dbf51['getTeams'](_0x5d7b04);}})[_0xdd10('0x23')](function(_0x4ec3b6){if(_0x4ec3b6){_0x36e7e4=_0x4ec3b6[_0xdd10('0x4c')];if(!_0x5287d2[_0xdd10('0x49')][_0xdd10('0x4d')](_0xdd10('0x67'))){_0x5d7b04[_0xdd10('0x33')]=qs['limit'](_0x5287d2[_0xdd10('0x49')]['limit']);_0x5d7b04[_0xdd10('0x32')]=qs['offset'](_0x5287d2[_0xdd10('0x49')]['offset']);}return _0x3dbf51[_0xdd10('0x6f')](_0x5d7b04);}})[_0xdd10('0x23')](function(_0x3faf41){if(_0x3faf41){return _0x3faf41?{'count':_0x36e7e4,'rows':_0x3faf41}:null;}})['then'](respondWithResult(_0xb8b0a,null))['catch'](handleError(_0xb8b0a,null));};exports[_0xdd10('0x70')]=function(_0x1cb82b,_0x427acb,_0x6cc512){var _0x1121de=_0x1cb82b[_0xdd10('0x5b')][_0xdd10('0x71')];return db[_0xdd10('0x72')][_0xdd10('0x57')]({'where':{'id':_0x1121de},'attributes':['id'],'include':[{'model':db[_0xdd10('0x73')],'as':'Agents','attributes':['id',_0xdd10('0x3d'),_0xdd10('0x74'),_0xdd10('0x75'),_0xdd10('0x76')],'raw':!![]}]})[_0xdd10('0x23')](function(_0x3c18ab){if(_0x3c18ab){var _0x435fcc=_['flatMap'](_0x3c18ab,function(_0x55122e){var _0x4d294c=_0x55122e['get']({'plain':!![]});return _0x4d294c[_0xdd10('0x77')];});return db[_0xdd10('0x54')][_0xdd10('0x60')]({'where':{'id':_0x1cb82b[_0xdd10('0x59')]['id']}})[_0xdd10('0x23')](function(_0x384b23){return db[_0xdd10('0x78')]['transaction'](function(_0x514d1f){return _0x384b23[_0xdd10('0x70')](_0x1121de,{'transaction':_0x514d1f})[_0xdd10('0x23')](function(){return BPromise['each'](_0x435fcc,function(_0x161065){return db[_0xdd10('0x66')][_0xdd10('0x79')]({'where':{'UserId':_0x161065['id'],'ChatQueueId':_0x1cb82b[_0xdd10('0x59')]['id']},'transaction':_0x514d1f});});})['then'](function(){_0x435fcc[_0xdd10('0x7a')](function(_0x4b456a){socket[_0xdd10('0x7b')](_0xdd10('0x7c'),{'UserId':_0x4b456a['id'],'ChatQueueId':_0x384b23['id']});});});});});}})[_0xdd10('0x23')](respondWithStatusCode(_0x427acb,null))[_0xdd10('0x2d')](handleError(_0x427acb,null));};exports[_0xdd10('0x7d')]=function(_0x3d565a,_0x2bf7bc,_0x49a2a3){return db[_0xdd10('0x72')][_0xdd10('0x57')]({'where':{'id':_0x3d565a[_0xdd10('0x49')][_0xdd10('0x71')]},'attributes':['id'],'include':[{'model':db[_0xdd10('0x73')],'as':_0xdd10('0x77'),'attributes':['id'],'raw':!![]}]})[_0xdd10('0x23')](handleEntityNotFound(_0x2bf7bc,null))[_0xdd10('0x23')](function(_0x4b0539){var _0x41bacc=_['map'](_0x4b0539,'id');var _0x160416=[];var _0x4be893=[];var _0x528f8e=squel[_0xdd10('0x7e')]();_0x528f8e[_0xdd10('0x7f')](_0xdd10('0x80'))['from']('team_has_chat_queues','tq')[_0xdd10('0x81')](_0xdd10('0x82'),'ut','ut.TeamId\x20=\x20tq.TeamId')['where'](_0xdd10('0x83'),_0x3d565a[_0xdd10('0x59')]['id']);for(var _0x55eede=0x0;_0x55eede<_0x4b0539[_0xdd10('0x4c')];_0x55eede+=0x1){let _0x5135ac=_0x4b0539[_0x55eede];for(var _0x4d8133=0x0;_0x4d8133<_0x5135ac[_0xdd10('0x77')]['length'];_0x4d8133+=0x1){let _0x3650b1=_0x5135ac['Agents'][_0x4d8133];var _0x3b78f2=_0x528f8e[_0xdd10('0x84')]();_0x3b78f2[_0xdd10('0x51')](_0xdd10('0x85'),_0x3650b1['id']);_0x4be893[_0xdd10('0x86')](db[_0xdd10('0x78')][_0xdd10('0x49')](_0x3b78f2['toString'](),{'type':db[_0xdd10('0x78')][_0xdd10('0x87')][_0xdd10('0x88')]})[_0xdd10('0x23')](function(_0x47403d){if(_0x47403d[_0xdd10('0x4c')]===0x1){return _0x3650b1['id'];}else{var _0x1db08e=_[_0xdd10('0x89')](_[_0xdd10('0x40')](_0x47403d,'TeamId'),function(_0x1b3f3e){return _[_0xdd10('0x8a')](_0x41bacc,_0x1b3f3e);});if(_0x1db08e){return _0x3650b1['id'];}}}));}}return BPromise['all'](_0x4be893)[_0xdd10('0x23')](function(_0x3f67a3){_0x160416=_(_0x160416)[_0xdd10('0x8b')](_0x3f67a3)[_0xdd10('0x8c')]()[_0xdd10('0x8d')]();return db[_0xdd10('0x54')]['find']({'where':{'id':_0x3d565a[_0xdd10('0x59')]['id']}})[_0xdd10('0x23')](function(_0x319332){return db[_0xdd10('0x78')][_0xdd10('0x8e')](function(_0x37b7d6){return _0x319332[_0xdd10('0x7d')](_0x3d565a[_0xdd10('0x49')][_0xdd10('0x71')],{'transaction':_0x37b7d6})['then'](function(){if(!_[_0xdd10('0x8f')](_0x160416)){return _0x319332[_0xdd10('0x90')](_0x160416,{'transaction':_0x37b7d6});}})[_0xdd10('0x23')](function(){_0x160416['forEach'](function(_0x2b88ba){socket[_0xdd10('0x7b')](_0xdd10('0x91'),{'UserId':_0x2b88ba,'ChatQueueId':_0x319332['id']});});});});});});})[_0xdd10('0x23')](respondWithStatusCode(_0x2bf7bc,null))[_0xdd10('0x2d')](handleError(_0x2bf7bc,null));};exports[_0xdd10('0x92')]=function(_0xbde5fc,_0x343342,_0x50565a){return db[_0xdd10('0x54')][_0xdd10('0x60')]({'where':{'id':_0xbde5fc[_0xdd10('0x59')]['id']}})[_0xdd10('0x23')](handleEntityNotFound(_0x343342,null))[_0xdd10('0x23')](function(_0x1ecdce){if(_0x1ecdce){return _0x1ecdce['addAgents'](_0xbde5fc['body'][_0xdd10('0x71')],_['omit'](_0xbde5fc['body'],[_0xdd10('0x71'),'id'])||{})[_0xdd10('0x93')](function(_0x144564){for(var _0x4c9042=0x0;_0x4c9042<_0xbde5fc['body'][_0xdd10('0x71')][_0xdd10('0x4c')];_0x4c9042+=0x1){socket['emit'](_0xdd10('0x7c'),{'UserId':_0xbde5fc[_0xdd10('0x5b')][_0xdd10('0x71')][_0x4c9042],'ChatQueueId':_0xbde5fc['params']['id']});}return _0x144564;});}})[_0xdd10('0x23')](respondWithResult(_0x343342,null))['catch'](handleError(_0x343342,null));};exports['removeAgents']=function(_0x679649,_0x497fb1,_0x331b7c){return db[_0xdd10('0x54')][_0xdd10('0x60')]({'where':{'id':_0x679649[_0xdd10('0x59')]['id']}})[_0xdd10('0x23')](handleEntityNotFound(_0x497fb1,null))[_0xdd10('0x23')](function(_0x4fa454){if(_0x4fa454){return _0x4fa454[_0xdd10('0x90')](_0x679649[_0xdd10('0x49')]['ids'])[_0xdd10('0x23')](function(){if(_[_0xdd10('0x94')](_0x679649['query'][_0xdd10('0x71')])){for(var _0x3731e8=0x0;_0x3731e8<_0x679649[_0xdd10('0x49')][_0xdd10('0x71')]['length'];_0x3731e8+=0x1){socket['emit'](_0xdd10('0x91'),{'UserId':Number(_0x679649[_0xdd10('0x49')][_0xdd10('0x71')][_0x3731e8]),'ChatQueueId':Number(_0x679649[_0xdd10('0x59')]['id'])});}}else{socket[_0xdd10('0x7b')](_0xdd10('0x91'),{'UserId':Number(_0x679649[_0xdd10('0x49')][_0xdd10('0x71')]),'ChatQueueId':Number(_0x679649[_0xdd10('0x59')]['id'])});}});}})[_0xdd10('0x23')](respondWithStatusCode(_0x497fb1,null))[_0xdd10('0x2d')](handleError(_0x497fb1,null));};exports[_0xdd10('0x95')]=function(_0x30d176,_0x18a08e,_0x2cb86e){var _0x304e63={};var _0x9eae9c={};var _0x28b638;var _0x4b4f45;return db[_0xdd10('0x54')]['findOne']({'where':{'id':_0x30d176[_0xdd10('0x59')]['id']}})[_0xdd10('0x23')](handleEntityNotFound(_0x18a08e,null))[_0xdd10('0x23')](function(_0x104c76){if(_0x104c76){_0x28b638=_0x104c76;_0x9eae9c[_0xdd10('0x48')]=_[_0xdd10('0x45')](db[_0xdd10('0x73')]['rawAttributes']);_0x9eae9c[_0xdd10('0x49')]=_['keys'](_0x30d176[_0xdd10('0x49')]);_0x9eae9c[_0xdd10('0x46')]=_['intersection'](_0x9eae9c['model'],_0x9eae9c[_0xdd10('0x49')]);_0x304e63[_0xdd10('0x4a')]=_[_0xdd10('0x47')](_0x9eae9c[_0xdd10('0x48')],qs[_0xdd10('0x4b')](_0x30d176['query'][_0xdd10('0x4b')]));_0x304e63[_0xdd10('0x4a')]=_0x304e63[_0xdd10('0x4a')][_0xdd10('0x4c')]?_0x304e63[_0xdd10('0x4a')]:_0x9eae9c['model'];_0x304e63[_0xdd10('0x4e')]=qs[_0xdd10('0x4f')](_0x30d176['query']['sort']);_0x304e63[_0xdd10('0x51')]=qs[_0xdd10('0x46')](_[_0xdd10('0x68')](_0x30d176['query'],_0x9eae9c['filters']));if(_0x30d176[_0xdd10('0x49')][_0xdd10('0x50')]){_0x304e63['where']=_[_0xdd10('0x52')](_0x304e63[_0xdd10('0x51')],{'$or':_[_0xdd10('0x40')](_0x304e63[_0xdd10('0x4a')],function(_0x1ed891){var _0x3337a7={};_0x3337a7[_0x1ed891]={'$like':'%'+_0x30d176[_0xdd10('0x49')][_0xdd10('0x50')]+'%'};return _0x3337a7;})});}_0x304e63=_[_0xdd10('0x52')]({},_0x304e63,_0x30d176[_0xdd10('0x53')]);return _0x28b638['getAgents'](_0x304e63);}})[_0xdd10('0x23')](function(_0x2a1b37){if(_0x2a1b37){_0x4b4f45=_0x2a1b37[_0xdd10('0x4c')];if(!_0x30d176[_0xdd10('0x49')]['hasOwnProperty'](_0xdd10('0x67'))){_0x304e63['limit']=qs[_0xdd10('0x33')](_0x30d176[_0xdd10('0x49')]['limit']);_0x304e63['offset']=qs[_0xdd10('0x32')](_0x30d176['query'][_0xdd10('0x32')]);}return _0x28b638[_0xdd10('0x95')](_0x304e63);}})[_0xdd10('0x23')](function(_0x17aa47){if(_0x17aa47){return _0x17aa47?{'count':_0x4b4f45,'rows':_0x17aa47}:null;}})['then'](respondWithResult(_0x18a08e,null))[_0xdd10('0x2d')](handleError(_0x18a08e,null));};