cde92586b1f3dd4dbfa4d150b72410618a4b2307
[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 _0x9de1=['keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','filter','merge','VIRTUAL','options','count','includeAll','include','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','autoAssociation','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','findOne','UserChatQueue','pick','ChatQueueId','User','UserId','chatPause','updatedAt','createdAt','format','%s/%s','SIP','getTeams','Team','hasOwnProperty','ids','online','voicePause','interface','flatMap','sequelize','transaction','each','findOrCreate','forEach','userChatQueue:save','removeTeams','Agents','select','field','tq.TeamId','from','team_has_chat_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ut.UserId\x20=\x20?','push','QueryTypes','every','TeamId','union','compact','removeAgents','emit','userChatQueue:remove','addAgents','omit','spread','isArray','getAgents','html-pdf','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','redis','defaults','localhost','socket.io-emitter','register','client','http','test','Sequelize','ValidationError','info','ChatQueue,\x20%s,\x20%s','ChatQueue,\x20%s,\x20%s,\x20%s','request\x20sent','error','message','result','sendStatus','end','status','json','offset','limit','set','Content-Range','reject','save','update','then','destroy','get','ChatQueues','UserProfileResource','stack','name','send','index','ChatQueue','rawAttributes','fieldName','type','key','model','map','query'];(function(_0x24ff13,_0x27f278){var _0x4e2ea2=function(_0x4613fe){while(--_0x4613fe){_0x24ff13['push'](_0x24ff13['shift']());}};_0x4e2ea2(++_0x27f278);}(_0x9de1,0x178));var _0x19de=function(_0x216f34,_0x108f08){_0x216f34=_0x216f34-0x0;var _0x44a641=_0x9de1[_0x216f34];return _0x44a641;};'use strict';var pdf=require(_0x19de('0x0'));var emlformat=require(_0x19de('0x1'));var rimraf=require(_0x19de('0x2'));var zipdir=require(_0x19de('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x19de('0x4'));var moment=require('moment');var BPromise=require(_0x19de('0x5'));var Mustache=require(_0x19de('0x6'));var util=require(_0x19de('0x7'));var path=require(_0x19de('0x8'));var sox=require(_0x19de('0x9'));var csv=require(_0x19de('0xa'));var ejs=require(_0x19de('0xb'));var fs=require('fs');var _=require(_0x19de('0xc'));var squel=require(_0x19de('0xd'));var crypto=require('crypto');var jsforce=require(_0x19de('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x19de('0xa'));var querystring=require(_0x19de('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x19de('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x19de('0x11'));var hardwareService=require(_0x19de('0x12'));var logger=require(_0x19de('0x13'))(_0x19de('0x14'));var utils=require(_0x19de('0x15'));var config=require(_0x19de('0x16'));var db=require('../../mysqldb')['db'];config[_0x19de('0x17')]=_[_0x19de('0x18')](config[_0x19de('0x17')],{'host':_0x19de('0x19'),'port':0x18eb});var socket=require(_0x19de('0x1a'))(new Redis(config[_0x19de('0x17')]));require('./chatQueue.socket')[_0x19de('0x1b')](socket);var jayson=require('jayson/promise');var client=jayson[_0x19de('0x1c')][_0x19de('0x1d')]({'port':0x232a});function checkPasswordPattern(_0xf706b8,_0x359d66,_0x23f164){if(_0x23f164){var _0x2b141b=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x2b141b[_0x19de('0x1e')](_0x359d66)){return _0xf706b8;}else{throw new db[(_0x19de('0x1f'))][(_0x19de('0x20'))]('The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.');}}else{return _0xf706b8;}}function respondWithRpcPromise(_0x4ce0a8,_0x37b1ef,_0x127265,_0x1939c5){return new BPromise(function(_0x2fe902,_0x43af89){var _0x21387b=_0x1939c5||client;return _0x21387b['request'](_0x4ce0a8,_0x127265)['then'](function(_0x144fdb){logger[_0x19de('0x21')](_0x19de('0x22'),_0x37b1ef,'request\x20sent');logger['debug'](_0x19de('0x23'),_0x37b1ef,_0x19de('0x24'),JSON['stringify'](_0x144fdb));if(_0x144fdb[_0x19de('0x25')]){if(_0x144fdb[_0x19de('0x25')]['code']===0x1f4){logger[_0x19de('0x25')](_0x19de('0x22'),_0x37b1ef,_0x144fdb[_0x19de('0x25')][_0x19de('0x26')]);return _0x43af89(_0x144fdb[_0x19de('0x25')]['message']);}logger[_0x19de('0x25')]('ChatQueue,\x20%s,\x20%s',_0x37b1ef,_0x144fdb[_0x19de('0x25')][_0x19de('0x26')]);return _0x2fe902(_0x144fdb[_0x19de('0x25')]['message']);}else{logger[_0x19de('0x21')](_0x19de('0x22'),_0x37b1ef,_0x19de('0x24'));_0x2fe902(_0x144fdb[_0x19de('0x27')]['message']);}})['catch'](function(_0x1d26b1){logger['error'](_0x19de('0x22'),_0x37b1ef,_0x1d26b1);_0x43af89(_0x1d26b1);});});}function respondWithStatusCode(_0x5e5c7a,_0x25efc7){_0x25efc7=_0x25efc7||0xcc;return function(_0x39c2bd){if(_0x39c2bd){return _0x5e5c7a[_0x19de('0x28')](_0x25efc7);}return _0x5e5c7a['status'](_0x25efc7)[_0x19de('0x29')]();};}function respondWithResult(_0x1b48d5,_0x285f20){_0x285f20=_0x285f20||0xc8;return function(_0x450342){if(_0x450342){return _0x1b48d5[_0x19de('0x2a')](_0x285f20)[_0x19de('0x2b')](_0x450342);}};}function respondWithFilteredResult(_0x5a05dd,_0x1b4dc9){return function(_0x7a730e){if(_0x7a730e){var _0x6408e8=_0x7a730e['count'],_0x21aa96=_0x1b4dc9['offset'],_0x525239=_0x1b4dc9[_0x19de('0x2c')]+_0x1b4dc9[_0x19de('0x2d')],_0x351635;if(_0x525239>=_0x6408e8){_0x525239=_0x6408e8;_0x351635=0xc8;}else{_0x351635=0xce;}_0x5a05dd[_0x19de('0x2a')](_0x351635);return _0x5a05dd[_0x19de('0x2e')](_0x19de('0x2f'),_0x21aa96+'-'+_0x525239+'/'+_0x6408e8)['json'](_0x7a730e);}return null;};}function patchUpdates(_0x5c40a8){return function(_0x4e870d){try{jsonpatch['apply'](_0x4e870d,_0x5c40a8,!![]);}catch(_0x35696f){return BPromise[_0x19de('0x30')](_0x35696f);}return _0x4e870d[_0x19de('0x31')]();};}function saveUpdates(_0x8abfa5,_0x37c56e){return function(_0x1e4d64){if(_0x1e4d64){return _0x1e4d64[_0x19de('0x32')](_0x8abfa5)[_0x19de('0x33')](function(_0x52b06e){return _0x52b06e;});}return null;};}function removeEntity(_0xb5a0bd,_0x306348){return function(_0x20939e){if(_0x20939e){return _0x20939e[_0x19de('0x34')]()['then'](function(){var _0x508b66=_0x20939e[_0x19de('0x35')]({'plain':!![]});var _0x56dd0f=_0x19de('0x36');return db[_0x19de('0x37')][_0x19de('0x34')]({'where':{'type':_0x56dd0f,'resourceId':_0x508b66['id']}})[_0x19de('0x33')](function(){return _0x20939e;});})[_0x19de('0x33')](function(){_0xb5a0bd[_0x19de('0x2a')](0xcc)[_0x19de('0x29')]();});}};}function handleEntityNotFound(_0x5d9b76,_0x5763e9){return function(_0x401c5e){if(!_0x401c5e){_0x5d9b76[_0x19de('0x28')](0x194);}return _0x401c5e;};}function handleError(_0x2f7239,_0x885f53){_0x885f53=_0x885f53||0x1f4;return function(_0x5c73cf){logger['error'](_0x5c73cf[_0x19de('0x38')]);if(_0x5c73cf[_0x19de('0x39')]){delete _0x5c73cf['name'];}_0x2f7239['status'](_0x885f53)[_0x19de('0x3a')](_0x5c73cf);};}exports[_0x19de('0x3b')]=function(_0x2c9328,_0x29cfb5){var _0x56b54e={},_0x1a7bae={},_0x5e8cb8={'count':0x0,'rows':[]};var _0x5f22ce=_['map'](db[_0x19de('0x3c')][_0x19de('0x3d')],function(_0x20a78b){return{'name':_0x20a78b[_0x19de('0x3e')],'type':_0x20a78b[_0x19de('0x3f')][_0x19de('0x40')]};});_0x1a7bae[_0x19de('0x41')]=_[_0x19de('0x42')](_0x5f22ce,_0x19de('0x39'));_0x1a7bae[_0x19de('0x43')]=_[_0x19de('0x44')](_0x2c9328[_0x19de('0x43')]);_0x1a7bae[_0x19de('0x45')]=_[_0x19de('0x46')](_0x1a7bae[_0x19de('0x41')],_0x1a7bae[_0x19de('0x43')]);_0x56b54e[_0x19de('0x47')]=_[_0x19de('0x46')](_0x1a7bae[_0x19de('0x41')],qs[_0x19de('0x48')](_0x2c9328[_0x19de('0x43')][_0x19de('0x48')]));_0x56b54e[_0x19de('0x47')]=_0x56b54e[_0x19de('0x47')][_0x19de('0x49')]?_0x56b54e[_0x19de('0x47')]:_0x1a7bae[_0x19de('0x41')];if(!_0x2c9328[_0x19de('0x43')]['hasOwnProperty'](_0x19de('0x4a'))){_0x56b54e['limit']=qs[_0x19de('0x2d')](_0x2c9328[_0x19de('0x43')][_0x19de('0x2d')]);_0x56b54e[_0x19de('0x2c')]=qs[_0x19de('0x2c')](_0x2c9328[_0x19de('0x43')][_0x19de('0x2c')]);}_0x56b54e[_0x19de('0x4b')]=qs[_0x19de('0x4c')](_0x2c9328[_0x19de('0x43')]['sort']);_0x56b54e[_0x19de('0x4d')]=qs[_0x19de('0x45')](_['pick'](_0x2c9328['query'],_0x1a7bae['filters']),_0x5f22ce);if(_0x2c9328[_0x19de('0x43')][_0x19de('0x4e')]){_0x56b54e[_0x19de('0x4d')]=_[_0x19de('0x4f')](_0x56b54e[_0x19de('0x4d')],{'$or':_['map'](_0x5f22ce,function(_0x39c17a){if(_0x39c17a[_0x19de('0x3f')]!==_0x19de('0x50')){var _0x3c701f={};_0x3c701f[_0x39c17a[_0x19de('0x39')]]={'$like':'%'+_0x2c9328[_0x19de('0x43')]['filter']+'%'};return _0x3c701f;}})});}_0x56b54e=_[_0x19de('0x4f')]({},_0x56b54e,_0x2c9328[_0x19de('0x51')]);var _0x242bcc={'where':_0x56b54e[_0x19de('0x4d')]};return db[_0x19de('0x3c')]['count'](_0x242bcc)[_0x19de('0x33')](function(_0x323a0e){_0x5e8cb8[_0x19de('0x52')]=_0x323a0e;if(_0x2c9328[_0x19de('0x43')][_0x19de('0x53')]){_0x56b54e[_0x19de('0x54')]=[{'all':!![]}];}return db[_0x19de('0x3c')]['findAll'](_0x56b54e);})[_0x19de('0x33')](function(_0x108c9a){_0x5e8cb8['rows']=_0x108c9a;return _0x5e8cb8;})[_0x19de('0x33')](respondWithFilteredResult(_0x29cfb5,_0x56b54e))['catch'](handleError(_0x29cfb5,null));};exports['show']=function(_0x48c9b4,_0x4d9f79){var _0x3b6ab5={'raw':!![],'where':{'id':_0x48c9b4[_0x19de('0x55')]['id']}},_0x10b297={};_0x10b297['model']=_['keys'](db[_0x19de('0x3c')][_0x19de('0x3d')]);_0x10b297[_0x19de('0x43')]=_[_0x19de('0x44')](_0x48c9b4[_0x19de('0x43')]);_0x10b297[_0x19de('0x45')]=_[_0x19de('0x46')](_0x10b297[_0x19de('0x41')],_0x10b297[_0x19de('0x43')]);_0x3b6ab5['attributes']=_[_0x19de('0x46')](_0x10b297[_0x19de('0x41')],qs[_0x19de('0x48')](_0x48c9b4[_0x19de('0x43')][_0x19de('0x48')]));_0x3b6ab5['attributes']=_0x3b6ab5['attributes'][_0x19de('0x49')]?_0x3b6ab5[_0x19de('0x47')]:_0x10b297[_0x19de('0x41')];if(_0x48c9b4['query']['includeAll']){_0x3b6ab5['include']=[{'all':!![]}];}_0x3b6ab5=_[_0x19de('0x4f')]({},_0x3b6ab5,_0x48c9b4[_0x19de('0x51')]);return db['ChatQueue'][_0x19de('0x56')](_0x3b6ab5)['then'](handleEntityNotFound(_0x4d9f79,null))[_0x19de('0x33')](respondWithResult(_0x4d9f79,null))['catch'](handleError(_0x4d9f79,null));};exports['create']=function(_0x18e362,_0x40ebd5){return db[_0x19de('0x3c')][_0x19de('0x57')](_0x18e362[_0x19de('0x58')],{})[_0x19de('0x33')](function(_0x55d85a){var _0x4b5e94=_0x18e362[_0x19de('0x59')][_0x19de('0x35')]({'plain':!![]});if(!_0x4b5e94)throw new Error(_0x19de('0x5a'));if(_0x4b5e94['role']===_0x19de('0x59')){var _0x28027d=_0x55d85a[_0x19de('0x35')]({'plain':!![]});var _0x41d98e=_0x19de('0x36');return db[_0x19de('0x5b')][_0x19de('0x56')]({'where':{'name':_0x41d98e,'userProfileId':_0x4b5e94['userProfileId']},'raw':!![]})[_0x19de('0x33')](function(_0x26f512){if(_0x26f512&&_0x26f512[_0x19de('0x5c')]===0x0){return db[_0x19de('0x37')][_0x19de('0x57')]({'name':_0x28027d[_0x19de('0x39')],'resourceId':_0x28027d['id'],'type':_0x26f512[_0x19de('0x39')],'sectionId':_0x26f512['id']},{})[_0x19de('0x33')](function(){return _0x55d85a;});}else{return _0x55d85a;}})[_0x19de('0x5d')](function(_0x3471e7){logger[_0x19de('0x25')](_0x19de('0x5e'),_0x3471e7);throw _0x3471e7;});}return _0x55d85a;})[_0x19de('0x33')](respondWithResult(_0x40ebd5,0xc9))[_0x19de('0x5d')](handleError(_0x40ebd5,null));};exports[_0x19de('0x32')]=function(_0x447abc,_0x5737ee){if(_0x447abc[_0x19de('0x58')]['id']){delete _0x447abc['body']['id'];}return db['ChatQueue'][_0x19de('0x56')]({'where':{'id':_0x447abc['params']['id']}})['then'](handleEntityNotFound(_0x5737ee,null))[_0x19de('0x33')](saveUpdates(_0x447abc[_0x19de('0x58')],null))['then'](respondWithResult(_0x5737ee,null))[_0x19de('0x5d')](handleError(_0x5737ee,null));};exports[_0x19de('0x34')]=function(_0x1c506d,_0x2b982a){return db[_0x19de('0x3c')]['find']({'where':{'id':_0x1c506d[_0x19de('0x55')]['id']}})[_0x19de('0x33')](handleEntityNotFound(_0x2b982a,null))['then'](removeEntity(_0x2b982a,null))[_0x19de('0x5d')](handleError(_0x2b982a,null));};exports[_0x19de('0x5f')]=function(_0x4c1feb,_0x1f5bb0){return db[_0x19de('0x3c')][_0x19de('0x5f')]()['then'](respondWithResult(_0x1f5bb0,null))[_0x19de('0x5d')](handleError(_0x1f5bb0,null));};exports[_0x19de('0x60')]=function(_0x3e2bea,_0x3aaa05,_0xa75d03){var _0x175b7d={'raw':!![],'where':{}},_0xcbcc16={},_0x3f3b4d;return db[_0x19de('0x3c')][_0x19de('0x61')]({'where':{'id':_0x3e2bea[_0x19de('0x55')]['id']}})['then'](handleEntityNotFound(_0x3aaa05,null))['then'](function(_0x4d4b65){if(_0x4d4b65){_0x3f3b4d=_0x4d4b65[_0x19de('0x35')]({'plain':!![]});_0xcbcc16[_0x19de('0x41')]=_[_0x19de('0x44')](db[_0x19de('0x62')][_0x19de('0x3d')]);_0xcbcc16[_0x19de('0x43')]=_[_0x19de('0x44')](_0x3e2bea[_0x19de('0x43')]);_0xcbcc16['filters']=_[_0x19de('0x46')](_0xcbcc16[_0x19de('0x41')],_0xcbcc16[_0x19de('0x43')]);_0x175b7d['attributes']=_['intersection'](_0xcbcc16[_0x19de('0x41')],qs['fields'](_0x3e2bea['query'][_0x19de('0x48')]));_0x175b7d[_0x19de('0x47')]=_0x175b7d[_0x19de('0x47')][_0x19de('0x49')]?_0x175b7d[_0x19de('0x47')]:_0xcbcc16[_0x19de('0x41')];if(!_0x3e2bea[_0x19de('0x43')]['hasOwnProperty'](_0x19de('0x4a'))){_0x175b7d[_0x19de('0x2d')]=qs['limit'](_0x3e2bea[_0x19de('0x43')][_0x19de('0x2d')]);_0x175b7d[_0x19de('0x2c')]=qs[_0x19de('0x2c')](_0x3e2bea[_0x19de('0x43')][_0x19de('0x2c')]);}_0x175b7d['order']=qs['sort'](_0x3e2bea[_0x19de('0x43')]['sort']);_0x175b7d[_0x19de('0x4d')]=qs[_0x19de('0x45')](_[_0x19de('0x63')](_0x3e2bea[_0x19de('0x43')],_0xcbcc16[_0x19de('0x45')]));_0x175b7d[_0x19de('0x4d')][_0x19de('0x64')]=_0x4d4b65['id'];if(_0x3e2bea[_0x19de('0x43')][_0x19de('0x4e')]){_0x175b7d[_0x19de('0x4d')]=_[_0x19de('0x4f')](_0x175b7d[_0x19de('0x4d')],{'$or':_[_0x19de('0x42')](_0x175b7d[_0x19de('0x47')],function(_0xde7415){var _0x2a9388={};_0x2a9388[_0xde7415]={'$like':'%'+_0x3e2bea['query']['filter']+'%'};return _0x2a9388;})});}_0x175b7d=_[_0x19de('0x4f')]({},_0x175b7d,_0x3e2bea[_0x19de('0x51')]);return db[_0x19de('0x62')]['findAll'](_0x175b7d);}})[_0x19de('0x33')](function(_0x46b3f1){if(_0x46b3f1){return db[_0x19de('0x65')]['findAndCountAll']({'where':{'id':_[_0x19de('0x42')](_0x46b3f1,_0x19de('0x66')),'role':'agent'},'attributes':['id',_0x19de('0x39'),_0x19de('0x67'),_0x19de('0x68'),_0x19de('0x69')]});}})[_0x19de('0x33')](function(_0x20ad6a){if(_0x20ad6a){return{'count':_0x20ad6a[_0x19de('0x52')],'rows':_[_0x19de('0x42')](_0x20ad6a['rows'],function(_0x21cc1f){return{'membername':_0x21cc1f[_0x19de('0x39')],'UserId':_0x21cc1f['id'],'queue_name':_0x3f3b4d[_0x19de('0x39')],'ChatQueueId':_0x3f3b4d['id'],'interface':util[_0x19de('0x6a')](_0x19de('0x6b'),_0x19de('0x6c'),_0x21cc1f[_0x19de('0x39')]),'penalty':0x0,'paused':_0x21cc1f[_0x19de('0x67')],'createdAt':_0x21cc1f[_0x19de('0x69')],'updatedAt':_0x21cc1f[_0x19de('0x68')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x19de('0x33')](respondWithFilteredResult(_0x3aaa05,_0x175b7d))[_0x19de('0x5d')](handleError(_0x3aaa05,null));};exports[_0x19de('0x6d')]=function(_0x2559bc,_0x5a3762,_0x590765){var _0x4d94a1={};var _0x1bc15c={};var _0x26ce51;var _0x1a870f;return db[_0x19de('0x3c')][_0x19de('0x61')]({'where':{'id':_0x2559bc[_0x19de('0x55')]['id']}})[_0x19de('0x33')](handleEntityNotFound(_0x5a3762,null))[_0x19de('0x33')](function(_0x30cf86){if(_0x30cf86){_0x26ce51=_0x30cf86;_0x1bc15c['model']=_[_0x19de('0x44')](db[_0x19de('0x6e')][_0x19de('0x3d')]);_0x1bc15c['query']=_[_0x19de('0x44')](_0x2559bc['query']);_0x1bc15c['filters']=_[_0x19de('0x46')](_0x1bc15c['model'],_0x1bc15c[_0x19de('0x43')]);_0x4d94a1[_0x19de('0x47')]=_[_0x19de('0x46')](_0x1bc15c[_0x19de('0x41')],qs[_0x19de('0x48')](_0x2559bc[_0x19de('0x43')]['fields']));_0x4d94a1['attributes']=_0x4d94a1[_0x19de('0x47')][_0x19de('0x49')]?_0x4d94a1[_0x19de('0x47')]:_0x1bc15c[_0x19de('0x41')];_0x4d94a1['order']=qs[_0x19de('0x4c')](_0x2559bc[_0x19de('0x43')]['sort']);_0x4d94a1[_0x19de('0x4d')]=qs[_0x19de('0x45')](_['pick'](_0x2559bc['query'],_0x1bc15c[_0x19de('0x45')]));if(_0x2559bc[_0x19de('0x43')][_0x19de('0x4e')]){_0x4d94a1['where']=_[_0x19de('0x4f')](_0x4d94a1['where'],{'$or':_[_0x19de('0x42')](_0x4d94a1['attributes'],function(_0x8d6f5a){var _0xaae0db={};_0xaae0db[_0x8d6f5a]={'$like':'%'+_0x2559bc[_0x19de('0x43')]['filter']+'%'};return _0xaae0db;})});}_0x4d94a1=_['merge']({},_0x4d94a1,_0x2559bc['options']);return _0x26ce51[_0x19de('0x6d')](_0x4d94a1);}})[_0x19de('0x33')](function(_0x2d8326){if(_0x2d8326){_0x1a870f=_0x2d8326[_0x19de('0x49')];if(!_0x2559bc[_0x19de('0x43')][_0x19de('0x6f')](_0x19de('0x4a'))){_0x4d94a1[_0x19de('0x2d')]=qs[_0x19de('0x2d')](_0x2559bc[_0x19de('0x43')]['limit']);_0x4d94a1[_0x19de('0x2c')]=qs[_0x19de('0x2c')](_0x2559bc[_0x19de('0x43')][_0x19de('0x2c')]);}return _0x26ce51[_0x19de('0x6d')](_0x4d94a1);}})[_0x19de('0x33')](function(_0x1890ed){if(_0x1890ed){return _0x1890ed?{'count':_0x1a870f,'rows':_0x1890ed}:null;}})['then'](respondWithResult(_0x5a3762,null))['catch'](handleError(_0x5a3762,null));};exports['addTeams']=function(_0x47aa5c,_0x564c3e,_0x4ac2a1){var _0x4d673f=_0x47aa5c[_0x19de('0x58')][_0x19de('0x70')];return db[_0x19de('0x6e')]['findAll']({'where':{'id':_0x4d673f},'attributes':['id'],'include':[{'model':db[_0x19de('0x65')],'as':'Agents','attributes':['id',_0x19de('0x39'),_0x19de('0x71'),_0x19de('0x72'),_0x19de('0x73')],'raw':!![]}]})[_0x19de('0x33')](function(_0x555455){if(_0x555455){var _0x3376f9=_[_0x19de('0x74')](_0x555455,function(_0x241ab1){var _0x5dba31=_0x241ab1[_0x19de('0x35')]({'plain':!![]});return _0x5dba31['Agents'];});return db[_0x19de('0x3c')][_0x19de('0x56')]({'where':{'id':_0x47aa5c[_0x19de('0x55')]['id']}})[_0x19de('0x33')](function(_0x59c490){return db[_0x19de('0x75')][_0x19de('0x76')](function(_0x4098cd){return _0x59c490['addTeams'](_0x4d673f,{'transaction':_0x4098cd})[_0x19de('0x33')](function(){return BPromise[_0x19de('0x77')](_0x3376f9,function(_0x3a6acc){return db[_0x19de('0x62')][_0x19de('0x78')]({'where':{'UserId':_0x3a6acc['id'],'ChatQueueId':_0x47aa5c[_0x19de('0x55')]['id']},'transaction':_0x4098cd});});})['then'](function(){_0x3376f9[_0x19de('0x79')](function(_0x559c37){socket['emit'](_0x19de('0x7a'),{'UserId':_0x559c37['id'],'ChatQueueId':_0x59c490['id']});});});});});}})['then'](respondWithStatusCode(_0x564c3e,null))[_0x19de('0x5d')](handleError(_0x564c3e,null));};exports[_0x19de('0x7b')]=function(_0x1c497,_0x43115a,_0x2bfa6c){return db[_0x19de('0x6e')]['findAll']({'where':{'id':_0x1c497[_0x19de('0x43')]['ids']},'attributes':['id'],'include':[{'model':db[_0x19de('0x65')],'as':_0x19de('0x7c'),'attributes':['id'],'raw':!![]}]})[_0x19de('0x33')](handleEntityNotFound(_0x43115a,null))[_0x19de('0x33')](function(_0x4f99df){var _0x197649=_[_0x19de('0x42')](_0x4f99df,'id');var _0x2aa8cf=[];var _0x31bf34=[];var _0x3588bc=squel[_0x19de('0x7d')]();_0x3588bc[_0x19de('0x7e')](_0x19de('0x7f'))[_0x19de('0x80')](_0x19de('0x81'),'tq')[_0x19de('0x82')](_0x19de('0x83'),'ut',_0x19de('0x84'))[_0x19de('0x4d')]('ChatQueueId\x20=\x20?',_0x1c497[_0x19de('0x55')]['id']);for(var _0x87a45c=0x0;_0x87a45c<_0x4f99df[_0x19de('0x49')];_0x87a45c+=0x1){let _0x46fa32=_0x4f99df[_0x87a45c];for(var _0x3baabb=0x0;_0x3baabb<_0x46fa32['Agents'][_0x19de('0x49')];_0x3baabb+=0x1){let _0x241e20=_0x46fa32['Agents'][_0x3baabb];var _0x53fedc=_0x3588bc['clone']();_0x53fedc[_0x19de('0x4d')](_0x19de('0x85'),_0x241e20['id']);_0x31bf34[_0x19de('0x86')](db['sequelize'][_0x19de('0x43')](_0x53fedc['toString'](),{'type':db['sequelize'][_0x19de('0x87')]['SELECT']})[_0x19de('0x33')](function(_0x5e6a73){if(_0x5e6a73['length']===0x1){return _0x241e20['id'];}else{var _0x26f543=_[_0x19de('0x88')](_[_0x19de('0x42')](_0x5e6a73,_0x19de('0x89')),function(_0x33802c){return _['includes'](_0x197649,_0x33802c);});if(_0x26f543){return _0x241e20['id'];}}}));}}return BPromise['all'](_0x31bf34)['then'](function(_0x383509){_0x2aa8cf=_(_0x2aa8cf)[_0x19de('0x8a')](_0x383509)[_0x19de('0x8b')]()['value']();return db[_0x19de('0x3c')]['find']({'where':{'id':_0x1c497['params']['id']}})['then'](function(_0x2e2f6c){return db['sequelize'][_0x19de('0x76')](function(_0x1d9739){return _0x2e2f6c['removeTeams'](_0x1c497[_0x19de('0x43')][_0x19de('0x70')],{'transaction':_0x1d9739})['then'](function(){if(!_['isEmpty'](_0x2aa8cf)){return _0x2e2f6c[_0x19de('0x8c')](_0x2aa8cf,{'transaction':_0x1d9739});}})[_0x19de('0x33')](function(){_0x2aa8cf[_0x19de('0x79')](function(_0x1a6a0b){socket[_0x19de('0x8d')](_0x19de('0x8e'),{'UserId':_0x1a6a0b,'ChatQueueId':_0x2e2f6c['id']});});});});});});})[_0x19de('0x33')](respondWithStatusCode(_0x43115a,null))[_0x19de('0x5d')](handleError(_0x43115a,null));};exports[_0x19de('0x8f')]=function(_0x4129f3,_0x55932a,_0x25851e){return db[_0x19de('0x3c')][_0x19de('0x56')]({'where':{'id':_0x4129f3[_0x19de('0x55')]['id']}})[_0x19de('0x33')](handleEntityNotFound(_0x55932a,null))[_0x19de('0x33')](function(_0x2b9911){if(_0x2b9911){return _0x2b9911[_0x19de('0x8f')](_0x4129f3[_0x19de('0x58')][_0x19de('0x70')],_[_0x19de('0x90')](_0x4129f3[_0x19de('0x58')],[_0x19de('0x70'),'id'])||{})[_0x19de('0x91')](function(_0x3241d4){for(var _0x36b379=0x0;_0x36b379<_0x4129f3[_0x19de('0x58')]['ids'][_0x19de('0x49')];_0x36b379+=0x1){socket['emit'](_0x19de('0x7a'),{'UserId':_0x4129f3[_0x19de('0x58')][_0x19de('0x70')][_0x36b379],'ChatQueueId':_0x4129f3[_0x19de('0x55')]['id']});}return _0x3241d4;});}})[_0x19de('0x33')](respondWithResult(_0x55932a,null))[_0x19de('0x5d')](handleError(_0x55932a,null));};exports['removeAgents']=function(_0x3f41da,_0x3d0c1c,_0x37c76f){return db['ChatQueue'][_0x19de('0x56')]({'where':{'id':_0x3f41da[_0x19de('0x55')]['id']}})[_0x19de('0x33')](handleEntityNotFound(_0x3d0c1c,null))['then'](function(_0x15969b){if(_0x15969b){return _0x15969b[_0x19de('0x8c')](_0x3f41da[_0x19de('0x43')][_0x19de('0x70')])['then'](function(){if(_[_0x19de('0x92')](_0x3f41da[_0x19de('0x43')][_0x19de('0x70')])){for(var _0x2c74d7=0x0;_0x2c74d7<_0x3f41da[_0x19de('0x43')][_0x19de('0x70')]['length'];_0x2c74d7+=0x1){socket[_0x19de('0x8d')]('userChatQueue:remove',{'UserId':Number(_0x3f41da[_0x19de('0x43')][_0x19de('0x70')][_0x2c74d7]),'ChatQueueId':Number(_0x3f41da['params']['id'])});}}else{socket[_0x19de('0x8d')](_0x19de('0x8e'),{'UserId':Number(_0x3f41da[_0x19de('0x43')][_0x19de('0x70')]),'ChatQueueId':Number(_0x3f41da[_0x19de('0x55')]['id'])});}});}})[_0x19de('0x33')](respondWithStatusCode(_0x3d0c1c,null))[_0x19de('0x5d')](handleError(_0x3d0c1c,null));};exports[_0x19de('0x93')]=function(_0x5004b6,_0x1752a2,_0x4f4f35){var _0x4233ac={};var _0x3afaaa={};var _0x400de5;var _0x5e64d9;return db[_0x19de('0x3c')][_0x19de('0x61')]({'where':{'id':_0x5004b6['params']['id']}})[_0x19de('0x33')](handleEntityNotFound(_0x1752a2,null))[_0x19de('0x33')](function(_0x165cf5){if(_0x165cf5){_0x400de5=_0x165cf5;_0x3afaaa[_0x19de('0x41')]=_[_0x19de('0x44')](db['User'][_0x19de('0x3d')]);_0x3afaaa[_0x19de('0x43')]=_[_0x19de('0x44')](_0x5004b6[_0x19de('0x43')]);_0x3afaaa[_0x19de('0x45')]=_['intersection'](_0x3afaaa[_0x19de('0x41')],_0x3afaaa['query']);_0x4233ac[_0x19de('0x47')]=_['intersection'](_0x3afaaa[_0x19de('0x41')],qs[_0x19de('0x48')](_0x5004b6['query'][_0x19de('0x48')]));_0x4233ac['attributes']=_0x4233ac[_0x19de('0x47')][_0x19de('0x49')]?_0x4233ac[_0x19de('0x47')]:_0x3afaaa['model'];_0x4233ac[_0x19de('0x4b')]=qs[_0x19de('0x4c')](_0x5004b6[_0x19de('0x43')][_0x19de('0x4c')]);_0x4233ac['where']=qs[_0x19de('0x45')](_['pick'](_0x5004b6[_0x19de('0x43')],_0x3afaaa['filters']));if(_0x5004b6['query'][_0x19de('0x4e')]){_0x4233ac[_0x19de('0x4d')]=_[_0x19de('0x4f')](_0x4233ac[_0x19de('0x4d')],{'$or':_[_0x19de('0x42')](_0x4233ac['attributes'],function(_0x409fb7){var _0x1ec336={};_0x1ec336[_0x409fb7]={'$like':'%'+_0x5004b6[_0x19de('0x43')][_0x19de('0x4e')]+'%'};return _0x1ec336;})});}_0x4233ac=_[_0x19de('0x4f')]({},_0x4233ac,_0x5004b6[_0x19de('0x51')]);return _0x400de5[_0x19de('0x93')](_0x4233ac);}})['then'](function(_0x227c26){if(_0x227c26){_0x5e64d9=_0x227c26[_0x19de('0x49')];if(!_0x5004b6[_0x19de('0x43')][_0x19de('0x6f')](_0x19de('0x4a'))){_0x4233ac['limit']=qs['limit'](_0x5004b6[_0x19de('0x43')][_0x19de('0x2d')]);_0x4233ac[_0x19de('0x2c')]=qs[_0x19de('0x2c')](_0x5004b6['query'][_0x19de('0x2c')]);}return _0x400de5[_0x19de('0x93')](_0x4233ac);}})['then'](function(_0x21e07a){if(_0x21e07a){return _0x21e07a?{'count':_0x5e64d9,'rows':_0x21e07a}:null;}})['then'](respondWithResult(_0x1752a2,null))['catch'](handleError(_0x1752a2,null));};