Built motion from commit 936e8062.|2.5.33
[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 _0xc9bb=['status','end','json','offset','undefined','limit','count','set','Content-Range','apply','destroy','get','ChatQueues','UserProfileResource','stack','name','send','index','ChatQueue','rawAttributes','fieldName','type','key','query','keys','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','map','VIRTUAL','options','includeAll','show','filters','include','create','role','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','find','params','describe','getMembers','UserChatQueue','ChatQueueId','findAll','User','findAndCountAll','agent','chatPause','updatedAt','createdAt','rows','%s/%s','SIP','getTeams','findOne','Team','addTeams','Agents','voicePause','interface','flatMap','sequelize','transaction','each','findOrCreate','forEach','emit','userChatQueue:save','removeTeams','select','field','tq.TeamId','from','team_has_chat_queues','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','SELECT','every','includes','all','compact','value','isEmpty','removeAgents','userChatQueue:remove','addAgents','ids','omit','spread','isArray','getAgents','eml-format','rimraf','fast-json-patch','request-promise','moment','util','sox','to-csv','ejs','fs-extra','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','redis','defaults','localhost','register','jayson/promise','http','request','then','info','request\x20sent','debug','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','ChatQueue,\x20%s,\x20%s','catch','sendStatus'];(function(_0x631a3c,_0x1b61b6){var _0x2bdfa3=function(_0x21711b){while(--_0x21711b){_0x631a3c['push'](_0x631a3c['shift']());}};_0x2bdfa3(++_0x1b61b6);}(_0xc9bb,0x71));var _0xbc9b=function(_0x20d87e,_0x199ccd){_0x20d87e=_0x20d87e-0x0;var _0x293015=_0xc9bb[_0x20d87e];return _0x293015;};'use strict';var emlformat=require(_0xbc9b('0x0'));var rimraf=require(_0xbc9b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xbc9b('0x2'));var rp=require(_0xbc9b('0x3'));var moment=require(_0xbc9b('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xbc9b('0x5'));var path=require('path');var sox=require(_0xbc9b('0x6'));var csv=require(_0xbc9b('0x7'));var ejs=require(_0xbc9b('0x8'));var fs=require('fs');var fs_extra=require(_0xbc9b('0x9'));var _=require('lodash');var squel=require(_0xbc9b('0xa'));var crypto=require('crypto');var jsforce=require(_0xbc9b('0xb'));var deskjs=require(_0xbc9b('0xc'));var toCsv=require(_0xbc9b('0x7'));var querystring=require(_0xbc9b('0xd'));var Papa=require(_0xbc9b('0xe'));var Redis=require(_0xbc9b('0xf'));var authService=require(_0xbc9b('0x10'));var qs=require(_0xbc9b('0x11'));var as=require(_0xbc9b('0x12'));var hardwareService=require(_0xbc9b('0x13'));var logger=require(_0xbc9b('0x14'))(_0xbc9b('0x15'));var utils=require(_0xbc9b('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xbc9b('0x17'));var db=require('../../mysqldb')['db'];config[_0xbc9b('0x18')]=_[_0xbc9b('0x19')](config['redis'],{'host':_0xbc9b('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require('./chatQueue.socket')[_0xbc9b('0x1b')](socket);var jayson=require(_0xbc9b('0x1c'));var client=jayson['client'][_0xbc9b('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x3e54e2,_0x1379fa,_0x251e4c,_0x23f5d7){return new BPromise(function(_0x492aad,_0x3bd546){var _0x142828=_0x23f5d7||client;return _0x142828[_0xbc9b('0x1e')](_0x3e54e2,_0x251e4c)[_0xbc9b('0x1f')](function(_0x2a899e){logger[_0xbc9b('0x20')]('ChatQueue,\x20%s,\x20%s',_0x1379fa,_0xbc9b('0x21'));logger[_0xbc9b('0x22')](_0xbc9b('0x23'),_0x1379fa,'request\x20sent',JSON[_0xbc9b('0x24')](_0x2a899e));if(_0x2a899e[_0xbc9b('0x25')]){if(_0x2a899e['error'][_0xbc9b('0x26')]===0x1f4){logger[_0xbc9b('0x25')]('ChatQueue,\x20%s,\x20%s',_0x1379fa,_0x2a899e['error'][_0xbc9b('0x27')]);return _0x3bd546(_0x2a899e[_0xbc9b('0x25')]['message']);}logger[_0xbc9b('0x25')](_0xbc9b('0x28'),_0x1379fa,_0x2a899e[_0xbc9b('0x25')][_0xbc9b('0x27')]);return _0x492aad(_0x2a899e['error']['message']);}else{logger[_0xbc9b('0x20')]('ChatQueue,\x20%s,\x20%s',_0x1379fa,_0xbc9b('0x21'));_0x492aad(_0x2a899e['result'][_0xbc9b('0x27')]);}})[_0xbc9b('0x29')](function(_0x3bddd6){logger[_0xbc9b('0x25')](_0xbc9b('0x28'),_0x1379fa,_0x3bddd6);_0x3bd546(_0x3bddd6);});});}function respondWithStatusCode(_0x1b3059,_0x286c22){_0x286c22=_0x286c22||0xcc;return function(_0x3f1fbc){if(_0x3f1fbc){return _0x1b3059[_0xbc9b('0x2a')](_0x286c22);}return _0x1b3059[_0xbc9b('0x2b')](_0x286c22)[_0xbc9b('0x2c')]();};}function respondWithResult(_0x1ab824,_0x15642f){_0x15642f=_0x15642f||0xc8;return function(_0xbd0640){if(_0xbd0640){return _0x1ab824['status'](_0x15642f)[_0xbc9b('0x2d')](_0xbd0640);}};}function respondWithFilteredResult(_0x4a64bc,_0x3fdf2b){return function(_0x3bb698){if(_0x3bb698){var _0x6f8210=typeof _0x3fdf2b[_0xbc9b('0x2e')]===_0xbc9b('0x2f')&&typeof _0x3fdf2b[_0xbc9b('0x30')]===_0xbc9b('0x2f');var _0xc60568=_0x3bb698[_0xbc9b('0x31')];var _0x330a89=_0x6f8210?0x0:_0x3fdf2b['offset'];var _0x904d1b=_0x6f8210?_0x3bb698[_0xbc9b('0x31')]:_0x3fdf2b[_0xbc9b('0x2e')]+_0x3fdf2b[_0xbc9b('0x30')];var _0x4542e7;if(_0x904d1b>=_0xc60568){_0x904d1b=_0xc60568;_0x4542e7=0xc8;}else{_0x4542e7=0xce;}_0x4a64bc[_0xbc9b('0x2b')](_0x4542e7);return _0x4a64bc[_0xbc9b('0x32')](_0xbc9b('0x33'),_0x330a89+'-'+_0x904d1b+'/'+_0xc60568)[_0xbc9b('0x2d')](_0x3bb698);}return null;};}function patchUpdates(_0x84d7c4){return function(_0x3b79ab){try{jsonpatch[_0xbc9b('0x34')](_0x3b79ab,_0x84d7c4,!![]);}catch(_0x39a2da){return BPromise['reject'](_0x39a2da);}return _0x3b79ab['save']();};}function saveUpdates(_0x22fa5c,_0x4e545e){return function(_0x8a7465){if(_0x8a7465){return _0x8a7465['update'](_0x22fa5c)[_0xbc9b('0x1f')](function(_0xc0bb93){return _0xc0bb93;});}return null;};}function removeEntity(_0x44297d,_0x55ce23){return function(_0x56133b){if(_0x56133b){return _0x56133b[_0xbc9b('0x35')]()[_0xbc9b('0x1f')](function(){var _0x195d4f=_0x56133b[_0xbc9b('0x36')]({'plain':!![]});var _0x545ef0=_0xbc9b('0x37');return db[_0xbc9b('0x38')][_0xbc9b('0x35')]({'where':{'type':_0x545ef0,'resourceId':_0x195d4f['id']}})['then'](function(){return _0x56133b;});})[_0xbc9b('0x1f')](function(){_0x44297d['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x457bfc,_0x3ee406){return function(_0x5e13c0){if(!_0x5e13c0){_0x457bfc[_0xbc9b('0x2a')](0x194);}return _0x5e13c0;};}function handleError(_0x3a485a,_0x1bfe5e){_0x1bfe5e=_0x1bfe5e||0x1f4;return function(_0x242acf){logger['error'](_0x242acf[_0xbc9b('0x39')]);if(_0x242acf[_0xbc9b('0x3a')]){delete _0x242acf[_0xbc9b('0x3a')];}_0x3a485a['status'](_0x1bfe5e)[_0xbc9b('0x3b')](_0x242acf);};}exports[_0xbc9b('0x3c')]=function(_0x3be088,_0x5ab913){var _0x2e343a={},_0x30b35d={},_0x99286d={'count':0x0,'rows':[]};var _0x3f527d=_['map'](db[_0xbc9b('0x3d')][_0xbc9b('0x3e')],function(_0x56e51e){return{'name':_0x56e51e[_0xbc9b('0x3f')],'type':_0x56e51e[_0xbc9b('0x40')][_0xbc9b('0x41')]};});_0x30b35d['model']=_['map'](_0x3f527d,_0xbc9b('0x3a'));_0x30b35d[_0xbc9b('0x42')]=_[_0xbc9b('0x43')](_0x3be088['query']);_0x30b35d['filters']=_[_0xbc9b('0x44')](_0x30b35d[_0xbc9b('0x45')],_0x30b35d[_0xbc9b('0x42')]);_0x2e343a['attributes']=_['intersection'](_0x30b35d[_0xbc9b('0x45')],qs[_0xbc9b('0x46')](_0x3be088['query']['fields']));_0x2e343a[_0xbc9b('0x47')]=_0x2e343a['attributes'][_0xbc9b('0x48')]?_0x2e343a[_0xbc9b('0x47')]:_0x30b35d[_0xbc9b('0x45')];if(!_0x3be088['query'][_0xbc9b('0x49')](_0xbc9b('0x4a'))){_0x2e343a[_0xbc9b('0x30')]=qs['limit'](_0x3be088['query'][_0xbc9b('0x30')]);_0x2e343a['offset']=qs[_0xbc9b('0x2e')](_0x3be088[_0xbc9b('0x42')]['offset']);}_0x2e343a[_0xbc9b('0x4b')]=qs[_0xbc9b('0x4c')](_0x3be088[_0xbc9b('0x42')][_0xbc9b('0x4c')]);_0x2e343a[_0xbc9b('0x4d')]=qs['filters'](_[_0xbc9b('0x4e')](_0x3be088['query'],_0x30b35d['filters']),_0x3f527d);if(_0x3be088[_0xbc9b('0x42')][_0xbc9b('0x4f')]){_0x2e343a[_0xbc9b('0x4d')]=_[_0xbc9b('0x50')](_0x2e343a['where'],{'$or':_[_0xbc9b('0x51')](_0x3f527d,function(_0x15f53b){if(_0x15f53b[_0xbc9b('0x40')]!==_0xbc9b('0x52')){var _0x36a273={};_0x36a273[_0x15f53b['name']]={'$like':'%'+_0x3be088[_0xbc9b('0x42')][_0xbc9b('0x4f')]+'%'};return _0x36a273;}})});}_0x2e343a=_[_0xbc9b('0x50')]({},_0x2e343a,_0x3be088[_0xbc9b('0x53')]);var _0x59163d={'where':_0x2e343a[_0xbc9b('0x4d')]};return db[_0xbc9b('0x3d')][_0xbc9b('0x31')](_0x59163d)[_0xbc9b('0x1f')](function(_0x586412){_0x99286d[_0xbc9b('0x31')]=_0x586412;if(_0x3be088[_0xbc9b('0x42')][_0xbc9b('0x54')]){_0x2e343a['include']=[{'all':!![]}];}return db[_0xbc9b('0x3d')]['findAll'](_0x2e343a);})[_0xbc9b('0x1f')](function(_0x2b6898){_0x99286d['rows']=_0x2b6898;return _0x99286d;})[_0xbc9b('0x1f')](respondWithFilteredResult(_0x5ab913,_0x2e343a))[_0xbc9b('0x29')](handleError(_0x5ab913,null));};exports[_0xbc9b('0x55')]=function(_0x44e0a9,_0x41372d){var _0x47cb64={'raw':!![],'where':{'id':_0x44e0a9['params']['id']}},_0x22ec58={};_0x22ec58[_0xbc9b('0x45')]=_[_0xbc9b('0x43')](db['ChatQueue']['rawAttributes']);_0x22ec58['query']=_['keys'](_0x44e0a9[_0xbc9b('0x42')]);_0x22ec58[_0xbc9b('0x56')]=_['intersection'](_0x22ec58[_0xbc9b('0x45')],_0x22ec58['query']);_0x47cb64[_0xbc9b('0x47')]=_[_0xbc9b('0x44')](_0x22ec58[_0xbc9b('0x45')],qs[_0xbc9b('0x46')](_0x44e0a9[_0xbc9b('0x42')]['fields']));_0x47cb64[_0xbc9b('0x47')]=_0x47cb64[_0xbc9b('0x47')]['length']?_0x47cb64[_0xbc9b('0x47')]:_0x22ec58[_0xbc9b('0x45')];if(_0x44e0a9[_0xbc9b('0x42')][_0xbc9b('0x54')]){_0x47cb64[_0xbc9b('0x57')]=[{'all':!![]}];}_0x47cb64=_[_0xbc9b('0x50')]({},_0x47cb64,_0x44e0a9[_0xbc9b('0x53')]);return db[_0xbc9b('0x3d')]['find'](_0x47cb64)[_0xbc9b('0x1f')](handleEntityNotFound(_0x41372d,null))[_0xbc9b('0x1f')](respondWithResult(_0x41372d,null))['catch'](handleError(_0x41372d,null));};exports[_0xbc9b('0x58')]=function(_0x58f43a,_0x4e9e79){return db[_0xbc9b('0x3d')][_0xbc9b('0x58')](_0x58f43a['body'],{})['then'](function(_0x10df11){var _0x1d0a24=_0x58f43a['user'][_0xbc9b('0x36')]({'plain':!![]});if(!_0x1d0a24)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1d0a24[_0xbc9b('0x59')]===_0xbc9b('0x5a')){var _0x2e503f=_0x10df11['get']({'plain':!![]});var _0x4908ae=_0xbc9b('0x37');return db[_0xbc9b('0x5b')]['find']({'where':{'name':_0x4908ae,'userProfileId':_0x1d0a24[_0xbc9b('0x5c')]},'raw':!![]})[_0xbc9b('0x1f')](function(_0x168afb){if(_0x168afb&&_0x168afb[_0xbc9b('0x5d')]===0x0){return db[_0xbc9b('0x38')]['create']({'name':_0x2e503f[_0xbc9b('0x3a')],'resourceId':_0x2e503f['id'],'type':_0x168afb['name'],'sectionId':_0x168afb['id']},{})[_0xbc9b('0x1f')](function(){return _0x10df11;});}else{return _0x10df11;}})[_0xbc9b('0x29')](function(_0xaf0a7c){logger[_0xbc9b('0x25')](_0xbc9b('0x5e'),_0xaf0a7c);throw _0xaf0a7c;});}return _0x10df11;})['then'](respondWithResult(_0x4e9e79,0xc9))['catch'](handleError(_0x4e9e79,null));};exports[_0xbc9b('0x5f')]=function(_0x2665a5,_0x508df8){if(_0x2665a5[_0xbc9b('0x60')]['id']){delete _0x2665a5['body']['id'];}return db['ChatQueue'][_0xbc9b('0x61')]({'where':{'id':_0x2665a5[_0xbc9b('0x62')]['id']}})[_0xbc9b('0x1f')](handleEntityNotFound(_0x508df8,null))['then'](saveUpdates(_0x2665a5['body'],null))[_0xbc9b('0x1f')](respondWithResult(_0x508df8,null))['catch'](handleError(_0x508df8,null));};exports[_0xbc9b('0x35')]=function(_0x3de8b6,_0x104cbf){return db[_0xbc9b('0x3d')][_0xbc9b('0x61')]({'where':{'id':_0x3de8b6[_0xbc9b('0x62')]['id']}})[_0xbc9b('0x1f')](handleEntityNotFound(_0x104cbf,null))['then'](removeEntity(_0x104cbf,null))['catch'](handleError(_0x104cbf,null));};exports[_0xbc9b('0x63')]=function(_0x8188f9,_0x5dc030){return db[_0xbc9b('0x3d')]['describe']()[_0xbc9b('0x1f')](respondWithResult(_0x5dc030,null))[_0xbc9b('0x29')](handleError(_0x5dc030,null));};exports[_0xbc9b('0x64')]=function(_0x4709d4,_0x117ece,_0x4e63ab){var _0x2bc254={'raw':!![],'where':{}},_0x450baa={},_0x519dd8;return db['ChatQueue']['findOne']({'where':{'id':_0x4709d4[_0xbc9b('0x62')]['id']}})[_0xbc9b('0x1f')](handleEntityNotFound(_0x117ece,null))[_0xbc9b('0x1f')](function(_0x16e8a1){if(_0x16e8a1){_0x519dd8=_0x16e8a1[_0xbc9b('0x36')]({'plain':!![]});_0x450baa[_0xbc9b('0x45')]=_['keys'](db[_0xbc9b('0x65')]['rawAttributes']);_0x450baa[_0xbc9b('0x42')]=_[_0xbc9b('0x43')](_0x4709d4[_0xbc9b('0x42')]);_0x450baa[_0xbc9b('0x56')]=_[_0xbc9b('0x44')](_0x450baa['model'],_0x450baa[_0xbc9b('0x42')]);_0x2bc254['attributes']=_[_0xbc9b('0x44')](_0x450baa[_0xbc9b('0x45')],qs['fields'](_0x4709d4['query'][_0xbc9b('0x46')]));_0x2bc254[_0xbc9b('0x47')]=_0x2bc254[_0xbc9b('0x47')]['length']?_0x2bc254[_0xbc9b('0x47')]:_0x450baa[_0xbc9b('0x45')];if(!_0x4709d4[_0xbc9b('0x42')][_0xbc9b('0x49')](_0xbc9b('0x4a'))){_0x2bc254[_0xbc9b('0x30')]=qs[_0xbc9b('0x30')](_0x4709d4[_0xbc9b('0x42')]['limit']);_0x2bc254['offset']=qs['offset'](_0x4709d4[_0xbc9b('0x42')][_0xbc9b('0x2e')]);}_0x2bc254[_0xbc9b('0x4b')]=qs[_0xbc9b('0x4c')](_0x4709d4[_0xbc9b('0x42')][_0xbc9b('0x4c')]);_0x2bc254['where']=qs[_0xbc9b('0x56')](_[_0xbc9b('0x4e')](_0x4709d4[_0xbc9b('0x42')],_0x450baa['filters']));_0x2bc254[_0xbc9b('0x4d')][_0xbc9b('0x66')]=_0x16e8a1['id'];if(_0x4709d4[_0xbc9b('0x42')][_0xbc9b('0x4f')]){_0x2bc254[_0xbc9b('0x4d')]=_['merge'](_0x2bc254[_0xbc9b('0x4d')],{'$or':_[_0xbc9b('0x51')](_0x2bc254[_0xbc9b('0x47')],function(_0x9d8f4){var _0x214e2c={};_0x214e2c[_0x9d8f4]={'$like':'%'+_0x4709d4[_0xbc9b('0x42')][_0xbc9b('0x4f')]+'%'};return _0x214e2c;})});}_0x2bc254=_[_0xbc9b('0x50')]({},_0x2bc254,_0x4709d4[_0xbc9b('0x53')]);return db[_0xbc9b('0x65')][_0xbc9b('0x67')](_0x2bc254);}})[_0xbc9b('0x1f')](function(_0xb6fe34){if(_0xb6fe34){return db[_0xbc9b('0x68')][_0xbc9b('0x69')]({'where':{'id':_[_0xbc9b('0x51')](_0xb6fe34,'UserId'),'role':_0xbc9b('0x6a')},'attributes':['id',_0xbc9b('0x3a'),_0xbc9b('0x6b'),_0xbc9b('0x6c'),_0xbc9b('0x6d')]});}})[_0xbc9b('0x1f')](function(_0x17203a){if(_0x17203a){return{'count':_0x17203a[_0xbc9b('0x31')],'rows':_[_0xbc9b('0x51')](_0x17203a[_0xbc9b('0x6e')],function(_0x53d08d){return{'membername':_0x53d08d[_0xbc9b('0x3a')],'UserId':_0x53d08d['id'],'queue_name':_0x519dd8[_0xbc9b('0x3a')],'ChatQueueId':_0x519dd8['id'],'interface':util['format'](_0xbc9b('0x6f'),_0xbc9b('0x70'),_0x53d08d[_0xbc9b('0x3a')]),'penalty':0x0,'paused':_0x53d08d[_0xbc9b('0x6b')],'createdAt':_0x53d08d[_0xbc9b('0x6d')],'updatedAt':_0x53d08d[_0xbc9b('0x6c')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x117ece,_0x2bc254))[_0xbc9b('0x29')](handleError(_0x117ece,null));};exports[_0xbc9b('0x71')]=function(_0x4e187a,_0x57d83b,_0x7c2992){var _0x4bf6d={};var _0x6466c5={};var _0x994b5b;var _0x35b216;return db['ChatQueue'][_0xbc9b('0x72')]({'where':{'id':_0x4e187a[_0xbc9b('0x62')]['id']}})[_0xbc9b('0x1f')](handleEntityNotFound(_0x57d83b,null))[_0xbc9b('0x1f')](function(_0x1a2e3a){if(_0x1a2e3a){_0x994b5b=_0x1a2e3a;_0x6466c5[_0xbc9b('0x45')]=_[_0xbc9b('0x43')](db[_0xbc9b('0x73')][_0xbc9b('0x3e')]);_0x6466c5[_0xbc9b('0x42')]=_[_0xbc9b('0x43')](_0x4e187a['query']);_0x6466c5[_0xbc9b('0x56')]=_[_0xbc9b('0x44')](_0x6466c5['model'],_0x6466c5[_0xbc9b('0x42')]);_0x4bf6d['attributes']=_[_0xbc9b('0x44')](_0x6466c5[_0xbc9b('0x45')],qs['fields'](_0x4e187a[_0xbc9b('0x42')][_0xbc9b('0x46')]));_0x4bf6d['attributes']=_0x4bf6d['attributes'][_0xbc9b('0x48')]?_0x4bf6d['attributes']:_0x6466c5['model'];_0x4bf6d['order']=qs['sort'](_0x4e187a[_0xbc9b('0x42')]['sort']);_0x4bf6d['where']=qs['filters'](_[_0xbc9b('0x4e')](_0x4e187a[_0xbc9b('0x42')],_0x6466c5[_0xbc9b('0x56')]));if(_0x4e187a[_0xbc9b('0x42')][_0xbc9b('0x4f')]){_0x4bf6d[_0xbc9b('0x4d')]=_[_0xbc9b('0x50')](_0x4bf6d[_0xbc9b('0x4d')],{'$or':_[_0xbc9b('0x51')](_0x4bf6d[_0xbc9b('0x47')],function(_0x4d2707){var _0x568670={};_0x568670[_0x4d2707]={'$like':'%'+_0x4e187a[_0xbc9b('0x42')][_0xbc9b('0x4f')]+'%'};return _0x568670;})});}_0x4bf6d=_[_0xbc9b('0x50')]({},_0x4bf6d,_0x4e187a['options']);return _0x994b5b[_0xbc9b('0x71')](_0x4bf6d);}})[_0xbc9b('0x1f')](function(_0xf35f82){if(_0xf35f82){_0x35b216=_0xf35f82['length'];if(!_0x4e187a[_0xbc9b('0x42')]['hasOwnProperty'](_0xbc9b('0x4a'))){_0x4bf6d[_0xbc9b('0x30')]=qs[_0xbc9b('0x30')](_0x4e187a['query']['limit']);_0x4bf6d['offset']=qs[_0xbc9b('0x2e')](_0x4e187a['query'][_0xbc9b('0x2e')]);}return _0x994b5b[_0xbc9b('0x71')](_0x4bf6d);}})[_0xbc9b('0x1f')](function(_0x12fc48){if(_0x12fc48){return _0x12fc48?{'count':_0x35b216,'rows':_0x12fc48}:null;}})[_0xbc9b('0x1f')](respondWithResult(_0x57d83b,null))['catch'](handleError(_0x57d83b,null));};exports[_0xbc9b('0x74')]=function(_0x235fcf,_0x377d62,_0x1650ac){var _0xa83fc9=_0x235fcf[_0xbc9b('0x60')]['ids'];return db[_0xbc9b('0x73')][_0xbc9b('0x67')]({'where':{'id':_0xa83fc9},'attributes':['id'],'include':[{'model':db[_0xbc9b('0x68')],'as':_0xbc9b('0x75'),'attributes':['id',_0xbc9b('0x3a'),'online',_0xbc9b('0x76'),_0xbc9b('0x77')],'raw':!![]}]})['then'](function(_0x2cc7a6){if(_0x2cc7a6){var _0x2f375e=_[_0xbc9b('0x78')](_0x2cc7a6,function(_0x39daab){var _0x4c7a8a=_0x39daab[_0xbc9b('0x36')]({'plain':!![]});return _0x4c7a8a[_0xbc9b('0x75')];});return db[_0xbc9b('0x3d')][_0xbc9b('0x61')]({'where':{'id':_0x235fcf[_0xbc9b('0x62')]['id']}})[_0xbc9b('0x1f')](function(_0x4b0154){return db[_0xbc9b('0x79')][_0xbc9b('0x7a')](function(_0x243e51){return _0x4b0154['addTeams'](_0xa83fc9,{'transaction':_0x243e51})['then'](function(){return BPromise[_0xbc9b('0x7b')](_0x2f375e,function(_0x338673){return db['UserChatQueue'][_0xbc9b('0x7c')]({'where':{'UserId':_0x338673['id'],'ChatQueueId':_0x235fcf[_0xbc9b('0x62')]['id']},'transaction':_0x243e51});});})[_0xbc9b('0x1f')](function(){_0x2f375e[_0xbc9b('0x7d')](function(_0x24dac3){socket[_0xbc9b('0x7e')](_0xbc9b('0x7f'),{'UserId':_0x24dac3['id'],'ChatQueueId':_0x4b0154['id']});});});});});}})[_0xbc9b('0x1f')](respondWithStatusCode(_0x377d62,null))[_0xbc9b('0x29')](handleError(_0x377d62,null));};exports[_0xbc9b('0x80')]=function(_0x48373a,_0x276e71,_0x431663){return db[_0xbc9b('0x73')][_0xbc9b('0x67')]({'where':{'id':_0x48373a[_0xbc9b('0x42')]['ids']},'attributes':['id'],'include':[{'model':db[_0xbc9b('0x68')],'as':_0xbc9b('0x75'),'attributes':['id'],'raw':!![]}]})[_0xbc9b('0x1f')](handleEntityNotFound(_0x276e71,null))[_0xbc9b('0x1f')](function(_0x29394c){var _0x192b23=_[_0xbc9b('0x51')](_0x29394c,'id');var _0x674554=[];var _0x5c804f=[];var _0x5d2436=squel[_0xbc9b('0x81')]();_0x5d2436[_0xbc9b('0x82')](_0xbc9b('0x83'))[_0xbc9b('0x84')](_0xbc9b('0x85'),'tq')['join']('user_has_teams','ut',_0xbc9b('0x86'))['where'](_0xbc9b('0x87'),_0x48373a['params']['id']);for(var _0x2bed12=0x0;_0x2bed12<_0x29394c['length'];_0x2bed12+=0x1){let _0x22f031=_0x29394c[_0x2bed12];for(var _0x10379a=0x0;_0x10379a<_0x22f031[_0xbc9b('0x75')][_0xbc9b('0x48')];_0x10379a+=0x1){let _0x5064a4=_0x22f031[_0xbc9b('0x75')][_0x10379a];var _0x1b173f=_0x5d2436[_0xbc9b('0x88')]();_0x1b173f['where'](_0xbc9b('0x89'),_0x5064a4['id']);_0x5c804f[_0xbc9b('0x8a')](db[_0xbc9b('0x79')][_0xbc9b('0x42')](_0x1b173f[_0xbc9b('0x8b')](),{'type':db[_0xbc9b('0x79')][_0xbc9b('0x8c')][_0xbc9b('0x8d')]})[_0xbc9b('0x1f')](function(_0x39cd7d){if(_0x39cd7d[_0xbc9b('0x48')]===0x1){return _0x5064a4['id'];}else{var _0x1c1a31=_[_0xbc9b('0x8e')](_['map'](_0x39cd7d,'TeamId'),function(_0x31e869){return _[_0xbc9b('0x8f')](_0x192b23,_0x31e869);});if(_0x1c1a31){return _0x5064a4['id'];}}}));}}return BPromise[_0xbc9b('0x90')](_0x5c804f)[_0xbc9b('0x1f')](function(_0x4e105d){_0x674554=_(_0x674554)['union'](_0x4e105d)[_0xbc9b('0x91')]()[_0xbc9b('0x92')]();return db['ChatQueue'][_0xbc9b('0x61')]({'where':{'id':_0x48373a['params']['id']}})['then'](function(_0x254251){return db[_0xbc9b('0x79')][_0xbc9b('0x7a')](function(_0x278400){return _0x254251[_0xbc9b('0x80')](_0x48373a['query']['ids'],{'transaction':_0x278400})[_0xbc9b('0x1f')](function(){if(!_[_0xbc9b('0x93')](_0x674554)){return _0x254251[_0xbc9b('0x94')](_0x674554,{'transaction':_0x278400});}})['then'](function(){_0x674554[_0xbc9b('0x7d')](function(_0xdd56ff){socket[_0xbc9b('0x7e')](_0xbc9b('0x95'),{'UserId':_0xdd56ff,'ChatQueueId':_0x254251['id']});});});});});});})[_0xbc9b('0x1f')](respondWithStatusCode(_0x276e71,null))[_0xbc9b('0x29')](handleError(_0x276e71,null));};exports[_0xbc9b('0x96')]=function(_0x2c89f4,_0xf5dd54,_0xaa6110){return db[_0xbc9b('0x3d')][_0xbc9b('0x61')]({'where':{'id':_0x2c89f4[_0xbc9b('0x62')]['id']}})['then'](handleEntityNotFound(_0xf5dd54,null))[_0xbc9b('0x1f')](function(_0x467300){if(_0x467300){return _0x467300[_0xbc9b('0x96')](_0x2c89f4[_0xbc9b('0x60')][_0xbc9b('0x97')],_[_0xbc9b('0x98')](_0x2c89f4[_0xbc9b('0x60')],[_0xbc9b('0x97'),'id'])||{})[_0xbc9b('0x99')](function(_0x2bbb50){for(var _0x5c2d92=0x0;_0x5c2d92<_0x2c89f4[_0xbc9b('0x60')][_0xbc9b('0x97')]['length'];_0x5c2d92+=0x1){socket[_0xbc9b('0x7e')](_0xbc9b('0x7f'),{'UserId':Number(_0x2c89f4[_0xbc9b('0x60')][_0xbc9b('0x97')][_0x5c2d92]),'ChatQueueId':Number(_0x2c89f4[_0xbc9b('0x62')]['id'])});}return _0x2bbb50;});}})[_0xbc9b('0x1f')](respondWithResult(_0xf5dd54,null))[_0xbc9b('0x29')](handleError(_0xf5dd54,null));};exports[_0xbc9b('0x94')]=function(_0x367205,_0x4082de,_0x5d0590){return db[_0xbc9b('0x3d')][_0xbc9b('0x61')]({'where':{'id':_0x367205['params']['id']}})[_0xbc9b('0x1f')](handleEntityNotFound(_0x4082de,null))[_0xbc9b('0x1f')](function(_0x442b7f){if(_0x442b7f){return _0x442b7f['removeAgents'](_0x367205[_0xbc9b('0x42')]['ids'])[_0xbc9b('0x1f')](function(){if(_[_0xbc9b('0x9a')](_0x367205[_0xbc9b('0x42')]['ids'])){for(var _0x2b3d4a=0x0;_0x2b3d4a<_0x367205['query']['ids']['length'];_0x2b3d4a+=0x1){socket[_0xbc9b('0x7e')](_0xbc9b('0x95'),{'UserId':Number(_0x367205[_0xbc9b('0x42')][_0xbc9b('0x97')][_0x2b3d4a]),'ChatQueueId':Number(_0x367205[_0xbc9b('0x62')]['id'])});}}else{socket[_0xbc9b('0x7e')](_0xbc9b('0x95'),{'UserId':Number(_0x367205[_0xbc9b('0x42')][_0xbc9b('0x97')]),'ChatQueueId':Number(_0x367205[_0xbc9b('0x62')]['id'])});}});}})[_0xbc9b('0x1f')](respondWithStatusCode(_0x4082de,null))[_0xbc9b('0x29')](handleError(_0x4082de,null));};exports['getAgents']=function(_0x3b9d24,_0x1bd59d,_0x56b97e){var _0x387132={};var _0x13c975={};var _0x1a380f;var _0x17bd40;return db[_0xbc9b('0x3d')][_0xbc9b('0x72')]({'where':{'id':_0x3b9d24[_0xbc9b('0x62')]['id']}})[_0xbc9b('0x1f')](handleEntityNotFound(_0x1bd59d,null))[_0xbc9b('0x1f')](function(_0x40a60e){if(_0x40a60e){_0x1a380f=_0x40a60e;_0x13c975[_0xbc9b('0x45')]=_[_0xbc9b('0x43')](db[_0xbc9b('0x68')][_0xbc9b('0x3e')]);_0x13c975['query']=_[_0xbc9b('0x43')](_0x3b9d24[_0xbc9b('0x42')]);_0x13c975['filters']=_['intersection'](_0x13c975[_0xbc9b('0x45')],_0x13c975['query']);_0x387132[_0xbc9b('0x47')]=_[_0xbc9b('0x44')](_0x13c975['model'],qs[_0xbc9b('0x46')](_0x3b9d24['query'][_0xbc9b('0x46')]));_0x387132[_0xbc9b('0x47')]=_0x387132[_0xbc9b('0x47')]['length']?_0x387132[_0xbc9b('0x47')]:_0x13c975[_0xbc9b('0x45')];_0x387132[_0xbc9b('0x4b')]=qs[_0xbc9b('0x4c')](_0x3b9d24[_0xbc9b('0x42')][_0xbc9b('0x4c')]);_0x387132[_0xbc9b('0x4d')]=qs['filters'](_[_0xbc9b('0x4e')](_0x3b9d24[_0xbc9b('0x42')],_0x13c975['filters']));if(_0x3b9d24[_0xbc9b('0x42')][_0xbc9b('0x4f')]){_0x387132['where']=_[_0xbc9b('0x50')](_0x387132[_0xbc9b('0x4d')],{'$or':_[_0xbc9b('0x51')](_0x387132[_0xbc9b('0x47')],function(_0x3aa6ad){var _0x574b8c={};_0x574b8c[_0x3aa6ad]={'$like':'%'+_0x3b9d24[_0xbc9b('0x42')][_0xbc9b('0x4f')]+'%'};return _0x574b8c;})});}_0x387132=_[_0xbc9b('0x50')]({},_0x387132,_0x3b9d24['options']);return _0x1a380f[_0xbc9b('0x9b')](_0x387132);}})[_0xbc9b('0x1f')](function(_0x46e80e){if(_0x46e80e){_0x17bd40=_0x46e80e[_0xbc9b('0x48')];if(!_0x3b9d24[_0xbc9b('0x42')][_0xbc9b('0x49')]('nolimit')){_0x387132[_0xbc9b('0x30')]=qs[_0xbc9b('0x30')](_0x3b9d24['query']['limit']);_0x387132[_0xbc9b('0x2e')]=qs[_0xbc9b('0x2e')](_0x3b9d24['query'][_0xbc9b('0x2e')]);}return _0x1a380f['getAgents'](_0x387132);}})[_0xbc9b('0x1f')](function(_0x33c3ff){if(_0x33c3ff){return _0x33c3ff?{'count':_0x17bd40,'rows':_0x33c3ff}:null;}})[_0xbc9b('0x1f')](respondWithResult(_0x1bd59d,null))[_0xbc9b('0x29')](handleError(_0x1bd59d,null));};