424743eb02b94f12940d14de71a1706accfb1672
[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 _0xf97a=['where','merge','VIRTUAL','name','options','includeAll','rows','params','fields','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','describe','getMembers','findOne','hasOwnProperty','sort','UserChatQueue','findAll','findAndCountAll','agent','chatPause','updatedAt','SIP','createdAt','getTeams','Team','ids','User','Agents','online','voicePause','interface','sequelize','transaction','addTeams','each','findOrCreate','emit','userChatQueue:save','removeTeams','select','tq.TeamId','team_has_chat_queues','join','user_has_teams','ChatQueueId\x20=\x20?','ut.UserId\x20=\x20?','push','toString','QueryTypes','SELECT','every','TeamId','includes','all','union','compact','value','isEmpty','forEach','userChatQueue:remove','addAgents','omit','removeAgents','isArray','getAgents','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','redis','socket.io-emitter','./chatQueue.socket','register','jayson/promise','client','then','info','ChatQueue,\x20%s,\x20%s','request\x20sent','ChatQueue,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','save','update','destroy','get','ChatQueues','UserProfileResource','stack','send','index','map','ChatQueue','rawAttributes','fieldName','type','key','model','keys','query','filters','attributes','intersection','length','nolimit','order','pick','filter'];(function(_0x51020b,_0x38c2c7){var _0x371e47=function(_0x2a538f){while(--_0x2a538f){_0x51020b['push'](_0x51020b['shift']());}};_0x371e47(++_0x38c2c7);}(_0xf97a,0xdc));var _0xaf97=function(_0x466ea7,_0x22db06){_0x466ea7=_0x466ea7-0x0;var _0xa2f4ac=_0xf97a[_0x466ea7];return _0xa2f4ac;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xaf97('0x0'));var zipdir=require(_0xaf97('0x1'));var jsonpatch=require(_0xaf97('0x2'));var rp=require(_0xaf97('0x3'));var moment=require(_0xaf97('0x4'));var BPromise=require(_0xaf97('0x5'));var Mustache=require(_0xaf97('0x6'));var util=require(_0xaf97('0x7'));var path=require(_0xaf97('0x8'));var sox=require(_0xaf97('0x9'));var csv=require(_0xaf97('0xa'));var ejs=require(_0xaf97('0xb'));var fs=require('fs');var fs_extra=require(_0xaf97('0xc'));var _=require('lodash');var squel=require(_0xaf97('0xd'));var crypto=require(_0xaf97('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xaf97('0xf'));var toCsv=require(_0xaf97('0xa'));var querystring=require(_0xaf97('0x10'));var Papa=require(_0xaf97('0x11'));var Redis=require(_0xaf97('0x12'));var authService=require('../../components/auth/service');var qs=require(_0xaf97('0x13'));var as=require(_0xaf97('0x14'));var hardwareService=require(_0xaf97('0x15'));var logger=require('../../config/logger')(_0xaf97('0x16'));var utils=require('../../config/utils');var config=require(_0xaf97('0x17'));var licenseUtil=require(_0xaf97('0x18'));var db=require('../../mysqldb')['db'];config[_0xaf97('0x19')]=_['defaults'](config[_0xaf97('0x19')],{'host':'localhost','port':0x18eb});var socket=require(_0xaf97('0x1a'))(new Redis(config[_0xaf97('0x19')]));require(_0xaf97('0x1b'))[_0xaf97('0x1c')](socket);var jayson=require(_0xaf97('0x1d'));var client=jayson[_0xaf97('0x1e')]['http']({'port':0x232a});function respondWithRpcPromise(_0x92a556,_0xb84d2c,_0x3f1a20,_0x2c0318){return new BPromise(function(_0x3fd2f8,_0xef505){var _0xcf77d7=_0x2c0318||client;return _0xcf77d7['request'](_0x92a556,_0x3f1a20)[_0xaf97('0x1f')](function(_0x28b44c){logger[_0xaf97('0x20')](_0xaf97('0x21'),_0xb84d2c,_0xaf97('0x22'));logger['debug'](_0xaf97('0x23'),_0xb84d2c,_0xaf97('0x22'),JSON['stringify'](_0x28b44c));if(_0x28b44c[_0xaf97('0x24')]){if(_0x28b44c[_0xaf97('0x24')][_0xaf97('0x25')]===0x1f4){logger[_0xaf97('0x24')](_0xaf97('0x21'),_0xb84d2c,_0x28b44c['error'][_0xaf97('0x26')]);return _0xef505(_0x28b44c[_0xaf97('0x24')]['message']);}logger[_0xaf97('0x24')](_0xaf97('0x21'),_0xb84d2c,_0x28b44c[_0xaf97('0x24')]['message']);return _0x3fd2f8(_0x28b44c[_0xaf97('0x24')][_0xaf97('0x26')]);}else{logger[_0xaf97('0x20')](_0xaf97('0x21'),_0xb84d2c,_0xaf97('0x22'));_0x3fd2f8(_0x28b44c[_0xaf97('0x27')]['message']);}})[_0xaf97('0x28')](function(_0x863e6e){logger['error']('ChatQueue,\x20%s,\x20%s',_0xb84d2c,_0x863e6e);_0xef505(_0x863e6e);});});}function respondWithStatusCode(_0x498c04,_0x3a3fd4){_0x3a3fd4=_0x3a3fd4||0xcc;return function(_0x305b8c){if(_0x305b8c){return _0x498c04[_0xaf97('0x29')](_0x3a3fd4);}return _0x498c04[_0xaf97('0x2a')](_0x3a3fd4)[_0xaf97('0x2b')]();};}function respondWithResult(_0x5044dc,_0x120e0f){_0x120e0f=_0x120e0f||0xc8;return function(_0x52b3bd){if(_0x52b3bd){return _0x5044dc['status'](_0x120e0f)[_0xaf97('0x2c')](_0x52b3bd);}};}function respondWithFilteredResult(_0x58c1ff,_0x2324b1){return function(_0xbcaf45){if(_0xbcaf45){var _0x38ca12=typeof _0x2324b1[_0xaf97('0x2d')]===_0xaf97('0x2e')&&typeof _0x2324b1['limit']==='undefined';var _0x1ad821=_0xbcaf45['count'];var _0x1efe37=_0x38ca12?0x0:_0x2324b1['offset'];var _0x423088=_0x38ca12?_0xbcaf45[_0xaf97('0x2f')]:_0x2324b1[_0xaf97('0x2d')]+_0x2324b1[_0xaf97('0x30')];var _0x24ef16;if(_0x423088>=_0x1ad821){_0x423088=_0x1ad821;_0x24ef16=0xc8;}else{_0x24ef16=0xce;}_0x58c1ff[_0xaf97('0x2a')](_0x24ef16);return _0x58c1ff[_0xaf97('0x31')](_0xaf97('0x32'),_0x1efe37+'-'+_0x423088+'/'+_0x1ad821)[_0xaf97('0x2c')](_0xbcaf45);}return null;};}function patchUpdates(_0x5a1add){return function(_0x218244){try{jsonpatch[_0xaf97('0x33')](_0x218244,_0x5a1add,!![]);}catch(_0x547c5c){return BPromise['reject'](_0x547c5c);}return _0x218244[_0xaf97('0x34')]();};}function saveUpdates(_0xe1c538,_0x4deee9){return function(_0x1cf7ba){if(_0x1cf7ba){return _0x1cf7ba[_0xaf97('0x35')](_0xe1c538)[_0xaf97('0x1f')](function(_0x2affb1){return _0x2affb1;});}return null;};}function removeEntity(_0x5b9d67,_0x9fa3d3){return function(_0x1b45ff){if(_0x1b45ff){return _0x1b45ff[_0xaf97('0x36')]()[_0xaf97('0x1f')](function(){var _0x2cb7ec=_0x1b45ff[_0xaf97('0x37')]({'plain':!![]});var _0x3b978c=_0xaf97('0x38');return db[_0xaf97('0x39')]['destroy']({'where':{'type':_0x3b978c,'resourceId':_0x2cb7ec['id']}})[_0xaf97('0x1f')](function(){return _0x1b45ff;});})[_0xaf97('0x1f')](function(){_0x5b9d67[_0xaf97('0x2a')](0xcc)[_0xaf97('0x2b')]();});}};}function handleEntityNotFound(_0x443a81,_0x2d3bfa){return function(_0x35f1ad){if(!_0x35f1ad){_0x443a81['sendStatus'](0x194);}return _0x35f1ad;};}function handleError(_0xa911ea,_0x13b643){_0x13b643=_0x13b643||0x1f4;return function(_0x39d3e0){logger[_0xaf97('0x24')](_0x39d3e0[_0xaf97('0x3a')]);if(_0x39d3e0['name']){delete _0x39d3e0['name'];}_0xa911ea[_0xaf97('0x2a')](_0x13b643)[_0xaf97('0x3b')](_0x39d3e0);};}exports[_0xaf97('0x3c')]=function(_0x34197c,_0x464939){var _0x2953e7={},_0x5485b4={},_0x292d9a={'count':0x0,'rows':[]};var _0x2ff95b=_[_0xaf97('0x3d')](db[_0xaf97('0x3e')][_0xaf97('0x3f')],function(_0x46da45){return{'name':_0x46da45[_0xaf97('0x40')],'type':_0x46da45[_0xaf97('0x41')][_0xaf97('0x42')]};});_0x5485b4[_0xaf97('0x43')]=_[_0xaf97('0x3d')](_0x2ff95b,'name');_0x5485b4['query']=_[_0xaf97('0x44')](_0x34197c[_0xaf97('0x45')]);_0x5485b4[_0xaf97('0x46')]=_['intersection'](_0x5485b4[_0xaf97('0x43')],_0x5485b4[_0xaf97('0x45')]);_0x2953e7[_0xaf97('0x47')]=_[_0xaf97('0x48')](_0x5485b4[_0xaf97('0x43')],qs['fields'](_0x34197c['query']['fields']));_0x2953e7[_0xaf97('0x47')]=_0x2953e7['attributes'][_0xaf97('0x49')]?_0x2953e7[_0xaf97('0x47')]:_0x5485b4['model'];if(!_0x34197c[_0xaf97('0x45')]['hasOwnProperty'](_0xaf97('0x4a'))){_0x2953e7['limit']=qs['limit'](_0x34197c[_0xaf97('0x45')][_0xaf97('0x30')]);_0x2953e7[_0xaf97('0x2d')]=qs['offset'](_0x34197c[_0xaf97('0x45')][_0xaf97('0x2d')]);}_0x2953e7[_0xaf97('0x4b')]=qs['sort'](_0x34197c[_0xaf97('0x45')]['sort']);_0x2953e7['where']=qs[_0xaf97('0x46')](_[_0xaf97('0x4c')](_0x34197c[_0xaf97('0x45')],_0x5485b4[_0xaf97('0x46')]),_0x2ff95b);if(_0x34197c['query'][_0xaf97('0x4d')]){_0x2953e7[_0xaf97('0x4e')]=_[_0xaf97('0x4f')](_0x2953e7[_0xaf97('0x4e')],{'$or':_[_0xaf97('0x3d')](_0x2ff95b,function(_0x3cdb9d){if(_0x3cdb9d[_0xaf97('0x41')]!==_0xaf97('0x50')){var _0xf12b4a={};_0xf12b4a[_0x3cdb9d[_0xaf97('0x51')]]={'$like':'%'+_0x34197c[_0xaf97('0x45')][_0xaf97('0x4d')]+'%'};return _0xf12b4a;}})});}_0x2953e7=_[_0xaf97('0x4f')]({},_0x2953e7,_0x34197c[_0xaf97('0x52')]);var _0x2d1390={'where':_0x2953e7[_0xaf97('0x4e')]};return db[_0xaf97('0x3e')][_0xaf97('0x2f')](_0x2d1390)[_0xaf97('0x1f')](function(_0x5f1cb1){_0x292d9a[_0xaf97('0x2f')]=_0x5f1cb1;if(_0x34197c[_0xaf97('0x45')][_0xaf97('0x53')]){_0x2953e7['include']=[{'all':!![]}];}return db[_0xaf97('0x3e')]['findAll'](_0x2953e7);})['then'](function(_0x30adeb){_0x292d9a[_0xaf97('0x54')]=_0x30adeb;return _0x292d9a;})[_0xaf97('0x1f')](respondWithFilteredResult(_0x464939,_0x2953e7))[_0xaf97('0x28')](handleError(_0x464939,null));};exports['show']=function(_0x331533,_0x2f56ef){var _0x4cdfef={'raw':!![],'where':{'id':_0x331533[_0xaf97('0x55')]['id']}},_0x24d13f={};_0x24d13f[_0xaf97('0x43')]=_[_0xaf97('0x44')](db['ChatQueue'][_0xaf97('0x3f')]);_0x24d13f[_0xaf97('0x45')]=_[_0xaf97('0x44')](_0x331533[_0xaf97('0x45')]);_0x24d13f[_0xaf97('0x46')]=_[_0xaf97('0x48')](_0x24d13f[_0xaf97('0x43')],_0x24d13f[_0xaf97('0x45')]);_0x4cdfef['attributes']=_[_0xaf97('0x48')](_0x24d13f['model'],qs[_0xaf97('0x56')](_0x331533[_0xaf97('0x45')][_0xaf97('0x56')]));_0x4cdfef[_0xaf97('0x47')]=_0x4cdfef[_0xaf97('0x47')][_0xaf97('0x49')]?_0x4cdfef[_0xaf97('0x47')]:_0x24d13f[_0xaf97('0x43')];if(_0x331533[_0xaf97('0x45')]['includeAll']){_0x4cdfef['include']=[{'all':!![]}];}_0x4cdfef=_[_0xaf97('0x4f')]({},_0x4cdfef,_0x331533[_0xaf97('0x52')]);return db['ChatQueue'][_0xaf97('0x57')](_0x4cdfef)[_0xaf97('0x1f')](handleEntityNotFound(_0x2f56ef,null))['then'](respondWithResult(_0x2f56ef,null))['catch'](handleError(_0x2f56ef,null));};exports['create']=function(_0x27308f,_0x5622dc){return db['ChatQueue'][_0xaf97('0x58')](_0x27308f[_0xaf97('0x59')],{})['then'](function(_0x3cdef9){var _0x20dae1=_0x27308f['user'][_0xaf97('0x37')]({'plain':!![]});if(!_0x20dae1)throw new Error(_0xaf97('0x5a'));if(_0x20dae1['role']===_0xaf97('0x5b')){var _0x24d0db=_0x3cdef9['get']({'plain':!![]});var _0x30ead2='ChatQueues';return db[_0xaf97('0x5c')][_0xaf97('0x57')]({'where':{'name':_0x30ead2,'userProfileId':_0x20dae1[_0xaf97('0x5d')]},'raw':!![]})['then'](function(_0x3bc7f8){if(_0x3bc7f8&&_0x3bc7f8['autoAssociation']===0x0){return db[_0xaf97('0x39')][_0xaf97('0x58')]({'name':_0x24d0db['name'],'resourceId':_0x24d0db['id'],'type':_0x3bc7f8[_0xaf97('0x51')],'sectionId':_0x3bc7f8['id']},{})[_0xaf97('0x1f')](function(){return _0x3cdef9;});}else{return _0x3cdef9;}})['catch'](function(_0x44a31c){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x44a31c);throw _0x44a31c;});}return _0x3cdef9;})[_0xaf97('0x1f')](respondWithResult(_0x5622dc,0xc9))[_0xaf97('0x28')](handleError(_0x5622dc,null));};exports[_0xaf97('0x35')]=function(_0x5c2c8f,_0xa674d1){if(_0x5c2c8f[_0xaf97('0x59')]['id']){delete _0x5c2c8f['body']['id'];}return db[_0xaf97('0x3e')][_0xaf97('0x57')]({'where':{'id':_0x5c2c8f[_0xaf97('0x55')]['id']}})[_0xaf97('0x1f')](handleEntityNotFound(_0xa674d1,null))['then'](saveUpdates(_0x5c2c8f['body'],null))[_0xaf97('0x1f')](respondWithResult(_0xa674d1,null))[_0xaf97('0x28')](handleError(_0xa674d1,null));};exports['destroy']=function(_0x3f25c5,_0x4cc80b){return db[_0xaf97('0x3e')][_0xaf97('0x57')]({'where':{'id':_0x3f25c5[_0xaf97('0x55')]['id']}})[_0xaf97('0x1f')](handleEntityNotFound(_0x4cc80b,null))[_0xaf97('0x1f')](removeEntity(_0x4cc80b,null))[_0xaf97('0x28')](handleError(_0x4cc80b,null));};exports['describe']=function(_0x55143d,_0x22d29d){return db[_0xaf97('0x3e')][_0xaf97('0x5e')]()[_0xaf97('0x1f')](respondWithResult(_0x22d29d,null))[_0xaf97('0x28')](handleError(_0x22d29d,null));};exports[_0xaf97('0x5f')]=function(_0x22d945,_0x2b8854,_0x515285){var _0x408c4a={'raw':!![],'where':{}},_0x2376ce={},_0x3ce0df;return db[_0xaf97('0x3e')][_0xaf97('0x60')]({'where':{'id':_0x22d945[_0xaf97('0x55')]['id']}})[_0xaf97('0x1f')](handleEntityNotFound(_0x2b8854,null))[_0xaf97('0x1f')](function(_0x34ed96){if(_0x34ed96){_0x3ce0df=_0x34ed96['get']({'plain':!![]});_0x2376ce[_0xaf97('0x43')]=_[_0xaf97('0x44')](db['UserChatQueue'][_0xaf97('0x3f')]);_0x2376ce[_0xaf97('0x45')]=_[_0xaf97('0x44')](_0x22d945[_0xaf97('0x45')]);_0x2376ce['filters']=_[_0xaf97('0x48')](_0x2376ce[_0xaf97('0x43')],_0x2376ce[_0xaf97('0x45')]);_0x408c4a[_0xaf97('0x47')]=_[_0xaf97('0x48')](_0x2376ce[_0xaf97('0x43')],qs[_0xaf97('0x56')](_0x22d945['query']['fields']));_0x408c4a[_0xaf97('0x47')]=_0x408c4a[_0xaf97('0x47')][_0xaf97('0x49')]?_0x408c4a[_0xaf97('0x47')]:_0x2376ce[_0xaf97('0x43')];if(!_0x22d945[_0xaf97('0x45')][_0xaf97('0x61')]('nolimit')){_0x408c4a[_0xaf97('0x30')]=qs[_0xaf97('0x30')](_0x22d945[_0xaf97('0x45')][_0xaf97('0x30')]);_0x408c4a[_0xaf97('0x2d')]=qs[_0xaf97('0x2d')](_0x22d945[_0xaf97('0x45')][_0xaf97('0x2d')]);}_0x408c4a['order']=qs[_0xaf97('0x62')](_0x22d945[_0xaf97('0x45')][_0xaf97('0x62')]);_0x408c4a[_0xaf97('0x4e')]=qs[_0xaf97('0x46')](_[_0xaf97('0x4c')](_0x22d945[_0xaf97('0x45')],_0x2376ce[_0xaf97('0x46')]));_0x408c4a[_0xaf97('0x4e')]['ChatQueueId']=_0x34ed96['id'];if(_0x22d945[_0xaf97('0x45')]['filter']){_0x408c4a[_0xaf97('0x4e')]=_[_0xaf97('0x4f')](_0x408c4a[_0xaf97('0x4e')],{'$or':_[_0xaf97('0x3d')](_0x408c4a[_0xaf97('0x47')],function(_0xf8d359){var _0x3fb136={};_0x3fb136[_0xf8d359]={'$like':'%'+_0x22d945[_0xaf97('0x45')][_0xaf97('0x4d')]+'%'};return _0x3fb136;})});}_0x408c4a=_[_0xaf97('0x4f')]({},_0x408c4a,_0x22d945[_0xaf97('0x52')]);return db[_0xaf97('0x63')][_0xaf97('0x64')](_0x408c4a);}})['then'](function(_0x3115c3){if(_0x3115c3){return db['User'][_0xaf97('0x65')]({'where':{'id':_[_0xaf97('0x3d')](_0x3115c3,'UserId'),'role':_0xaf97('0x66')},'attributes':['id',_0xaf97('0x51'),_0xaf97('0x67'),_0xaf97('0x68'),'createdAt']});}})[_0xaf97('0x1f')](function(_0x324af0){if(_0x324af0){return{'count':_0x324af0['count'],'rows':_['map'](_0x324af0['rows'],function(_0x240e6b){return{'membername':_0x240e6b[_0xaf97('0x51')],'UserId':_0x240e6b['id'],'queue_name':_0x3ce0df[_0xaf97('0x51')],'ChatQueueId':_0x3ce0df['id'],'interface':util['format']('%s/%s',_0xaf97('0x69'),_0x240e6b[_0xaf97('0x51')]),'penalty':0x0,'paused':_0x240e6b['chatPause'],'createdAt':_0x240e6b[_0xaf97('0x6a')],'updatedAt':_0x240e6b[_0xaf97('0x68')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xaf97('0x1f')](respondWithFilteredResult(_0x2b8854,_0x408c4a))[_0xaf97('0x28')](handleError(_0x2b8854,null));};exports[_0xaf97('0x6b')]=function(_0x1db725,_0x4b63be,_0x5865ef){var _0x44ad97={};var _0x9dfac7={};var _0xae95e5;var _0x23be3e;return db[_0xaf97('0x3e')]['findOne']({'where':{'id':_0x1db725[_0xaf97('0x55')]['id']}})[_0xaf97('0x1f')](handleEntityNotFound(_0x4b63be,null))[_0xaf97('0x1f')](function(_0x3ae2e2){if(_0x3ae2e2){_0xae95e5=_0x3ae2e2;_0x9dfac7[_0xaf97('0x43')]=_[_0xaf97('0x44')](db[_0xaf97('0x6c')]['rawAttributes']);_0x9dfac7[_0xaf97('0x45')]=_[_0xaf97('0x44')](_0x1db725['query']);_0x9dfac7['filters']=_[_0xaf97('0x48')](_0x9dfac7['model'],_0x9dfac7[_0xaf97('0x45')]);_0x44ad97[_0xaf97('0x47')]=_['intersection'](_0x9dfac7[_0xaf97('0x43')],qs['fields'](_0x1db725['query'][_0xaf97('0x56')]));_0x44ad97[_0xaf97('0x47')]=_0x44ad97['attributes'][_0xaf97('0x49')]?_0x44ad97['attributes']:_0x9dfac7[_0xaf97('0x43')];_0x44ad97['order']=qs[_0xaf97('0x62')](_0x1db725['query'][_0xaf97('0x62')]);_0x44ad97[_0xaf97('0x4e')]=qs[_0xaf97('0x46')](_[_0xaf97('0x4c')](_0x1db725['query'],_0x9dfac7['filters']));if(_0x1db725['query'][_0xaf97('0x4d')]){_0x44ad97[_0xaf97('0x4e')]=_[_0xaf97('0x4f')](_0x44ad97[_0xaf97('0x4e')],{'$or':_[_0xaf97('0x3d')](_0x44ad97[_0xaf97('0x47')],function(_0x44214a){var _0xddcf96={};_0xddcf96[_0x44214a]={'$like':'%'+_0x1db725[_0xaf97('0x45')][_0xaf97('0x4d')]+'%'};return _0xddcf96;})});}_0x44ad97=_[_0xaf97('0x4f')]({},_0x44ad97,_0x1db725['options']);return _0xae95e5[_0xaf97('0x6b')](_0x44ad97);}})['then'](function(_0x16d190){if(_0x16d190){_0x23be3e=_0x16d190[_0xaf97('0x49')];if(!_0x1db725[_0xaf97('0x45')][_0xaf97('0x61')](_0xaf97('0x4a'))){_0x44ad97[_0xaf97('0x30')]=qs[_0xaf97('0x30')](_0x1db725[_0xaf97('0x45')][_0xaf97('0x30')]);_0x44ad97[_0xaf97('0x2d')]=qs[_0xaf97('0x2d')](_0x1db725['query'][_0xaf97('0x2d')]);}return _0xae95e5[_0xaf97('0x6b')](_0x44ad97);}})[_0xaf97('0x1f')](function(_0x1c8bee){if(_0x1c8bee){return _0x1c8bee?{'count':_0x23be3e,'rows':_0x1c8bee}:null;}})['then'](respondWithResult(_0x4b63be,null))[_0xaf97('0x28')](handleError(_0x4b63be,null));};exports['addTeams']=function(_0x37f1af,_0x1800e7,_0x455844){var _0x35ff3c=_0x37f1af[_0xaf97('0x59')][_0xaf97('0x6d')];return db[_0xaf97('0x6c')][_0xaf97('0x64')]({'where':{'id':_0x35ff3c},'attributes':['id'],'include':[{'model':db[_0xaf97('0x6e')],'as':_0xaf97('0x6f'),'attributes':['id',_0xaf97('0x51'),_0xaf97('0x70'),_0xaf97('0x71'),_0xaf97('0x72')],'raw':!![]}]})[_0xaf97('0x1f')](function(_0x50cc0d){if(_0x50cc0d){var _0xb77e6f=_['flatMap'](_0x50cc0d,function(_0x4fa10f){var _0xab4a3b=_0x4fa10f[_0xaf97('0x37')]({'plain':!![]});return _0xab4a3b[_0xaf97('0x6f')];});return db[_0xaf97('0x3e')][_0xaf97('0x57')]({'where':{'id':_0x37f1af[_0xaf97('0x55')]['id']}})['then'](function(_0x18f6bf){return db[_0xaf97('0x73')][_0xaf97('0x74')](function(_0x1f6d00){return _0x18f6bf[_0xaf97('0x75')](_0x35ff3c,{'transaction':_0x1f6d00})['then'](function(){return BPromise[_0xaf97('0x76')](_0xb77e6f,function(_0x4279bd){return db[_0xaf97('0x63')][_0xaf97('0x77')]({'where':{'UserId':_0x4279bd['id'],'ChatQueueId':_0x37f1af[_0xaf97('0x55')]['id']},'transaction':_0x1f6d00});});})[_0xaf97('0x1f')](function(){_0xb77e6f['forEach'](function(_0x4353a8){socket[_0xaf97('0x78')](_0xaf97('0x79'),{'UserId':_0x4353a8['id'],'ChatQueueId':_0x18f6bf['id']});});});});});}})[_0xaf97('0x1f')](respondWithStatusCode(_0x1800e7,null))[_0xaf97('0x28')](handleError(_0x1800e7,null));};exports[_0xaf97('0x7a')]=function(_0x1e8853,_0xc7156d,_0x3a41cc){return db['Team'][_0xaf97('0x64')]({'where':{'id':_0x1e8853['query'][_0xaf97('0x6d')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0xaf97('0x6f'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0xc7156d,null))[_0xaf97('0x1f')](function(_0x3c5832){var _0x5679a9=_[_0xaf97('0x3d')](_0x3c5832,'id');var _0x3de3f5=[];var _0x4379ec=[];var _0x3b9320=squel[_0xaf97('0x7b')]();_0x3b9320['field'](_0xaf97('0x7c'))['from'](_0xaf97('0x7d'),'tq')[_0xaf97('0x7e')](_0xaf97('0x7f'),'ut','ut.TeamId\x20=\x20tq.TeamId')[_0xaf97('0x4e')](_0xaf97('0x80'),_0x1e8853['params']['id']);for(var _0x2da8b4=0x0;_0x2da8b4<_0x3c5832[_0xaf97('0x49')];_0x2da8b4+=0x1){let _0x189b36=_0x3c5832[_0x2da8b4];for(var _0x152ca6=0x0;_0x152ca6<_0x189b36['Agents']['length'];_0x152ca6+=0x1){let _0x1e7dae=_0x189b36[_0xaf97('0x6f')][_0x152ca6];var _0x29350a=_0x3b9320['clone']();_0x29350a[_0xaf97('0x4e')](_0xaf97('0x81'),_0x1e7dae['id']);_0x4379ec[_0xaf97('0x82')](db[_0xaf97('0x73')][_0xaf97('0x45')](_0x29350a[_0xaf97('0x83')](),{'type':db[_0xaf97('0x73')][_0xaf97('0x84')][_0xaf97('0x85')]})[_0xaf97('0x1f')](function(_0x1d1dd5){if(_0x1d1dd5[_0xaf97('0x49')]===0x1){return _0x1e7dae['id'];}else{var _0x40f73d=_[_0xaf97('0x86')](_[_0xaf97('0x3d')](_0x1d1dd5,_0xaf97('0x87')),function(_0x18f88e){return _[_0xaf97('0x88')](_0x5679a9,_0x18f88e);});if(_0x40f73d){return _0x1e7dae['id'];}}}));}}return BPromise[_0xaf97('0x89')](_0x4379ec)['then'](function(_0x4e52e6){_0x3de3f5=_(_0x3de3f5)[_0xaf97('0x8a')](_0x4e52e6)[_0xaf97('0x8b')]()[_0xaf97('0x8c')]();return db['ChatQueue'][_0xaf97('0x57')]({'where':{'id':_0x1e8853[_0xaf97('0x55')]['id']}})['then'](function(_0x5ec425){return db['sequelize'][_0xaf97('0x74')](function(_0x297882){return _0x5ec425[_0xaf97('0x7a')](_0x1e8853[_0xaf97('0x45')][_0xaf97('0x6d')],{'transaction':_0x297882})[_0xaf97('0x1f')](function(){if(!_[_0xaf97('0x8d')](_0x3de3f5)){return _0x5ec425['removeAgents'](_0x3de3f5,{'transaction':_0x297882});}})[_0xaf97('0x1f')](function(){_0x3de3f5[_0xaf97('0x8e')](function(_0x313d7b){socket[_0xaf97('0x78')](_0xaf97('0x8f'),{'UserId':_0x313d7b,'ChatQueueId':_0x5ec425['id']});});});});});});})[_0xaf97('0x1f')](respondWithStatusCode(_0xc7156d,null))[_0xaf97('0x28')](handleError(_0xc7156d,null));};exports['addAgents']=function(_0xa95b9,_0x818512,_0x66ea26){return db[_0xaf97('0x3e')][_0xaf97('0x57')]({'where':{'id':_0xa95b9[_0xaf97('0x55')]['id']}})[_0xaf97('0x1f')](handleEntityNotFound(_0x818512,null))[_0xaf97('0x1f')](function(_0x4b2c9b){if(_0x4b2c9b){return _0x4b2c9b[_0xaf97('0x90')](_0xa95b9[_0xaf97('0x59')][_0xaf97('0x6d')],_[_0xaf97('0x91')](_0xa95b9[_0xaf97('0x59')],[_0xaf97('0x6d'),'id'])||{})['spread'](function(_0x28ac66){for(var _0x4db953=0x0;_0x4db953<_0xa95b9[_0xaf97('0x59')][_0xaf97('0x6d')][_0xaf97('0x49')];_0x4db953+=0x1){socket[_0xaf97('0x78')]('userChatQueue:save',{'UserId':Number(_0xa95b9[_0xaf97('0x59')][_0xaf97('0x6d')][_0x4db953]),'ChatQueueId':Number(_0xa95b9['params']['id'])});}return _0x28ac66;});}})[_0xaf97('0x1f')](respondWithResult(_0x818512,null))['catch'](handleError(_0x818512,null));};exports['removeAgents']=function(_0x59625d,_0x56118d,_0x501dfc){return db[_0xaf97('0x3e')][_0xaf97('0x57')]({'where':{'id':_0x59625d[_0xaf97('0x55')]['id']}})[_0xaf97('0x1f')](handleEntityNotFound(_0x56118d,null))[_0xaf97('0x1f')](function(_0x4da86c){if(_0x4da86c){return _0x4da86c[_0xaf97('0x92')](_0x59625d[_0xaf97('0x45')][_0xaf97('0x6d')])[_0xaf97('0x1f')](function(){if(_[_0xaf97('0x93')](_0x59625d[_0xaf97('0x45')][_0xaf97('0x6d')])){for(var _0x2c6453=0x0;_0x2c6453<_0x59625d[_0xaf97('0x45')]['ids'][_0xaf97('0x49')];_0x2c6453+=0x1){socket[_0xaf97('0x78')]('userChatQueue:remove',{'UserId':Number(_0x59625d[_0xaf97('0x45')][_0xaf97('0x6d')][_0x2c6453]),'ChatQueueId':Number(_0x59625d[_0xaf97('0x55')]['id'])});}}else{socket[_0xaf97('0x78')](_0xaf97('0x8f'),{'UserId':Number(_0x59625d[_0xaf97('0x45')][_0xaf97('0x6d')]),'ChatQueueId':Number(_0x59625d[_0xaf97('0x55')]['id'])});}});}})[_0xaf97('0x1f')](respondWithStatusCode(_0x56118d,null))[_0xaf97('0x28')](handleError(_0x56118d,null));};exports[_0xaf97('0x94')]=function(_0x90f9cb,_0x2d3cd5,_0x2e84b4){var _0x4c2ae8={};var _0x58f528={};var _0x44363a;var _0x29cf07;return db['ChatQueue'][_0xaf97('0x60')]({'where':{'id':_0x90f9cb[_0xaf97('0x55')]['id']}})['then'](handleEntityNotFound(_0x2d3cd5,null))[_0xaf97('0x1f')](function(_0x505245){if(_0x505245){_0x44363a=_0x505245;_0x58f528[_0xaf97('0x43')]=_[_0xaf97('0x44')](db['User']['rawAttributes']);_0x58f528[_0xaf97('0x45')]=_[_0xaf97('0x44')](_0x90f9cb[_0xaf97('0x45')]);_0x58f528[_0xaf97('0x46')]=_[_0xaf97('0x48')](_0x58f528[_0xaf97('0x43')],_0x58f528[_0xaf97('0x45')]);_0x4c2ae8[_0xaf97('0x47')]=_[_0xaf97('0x48')](_0x58f528['model'],qs['fields'](_0x90f9cb[_0xaf97('0x45')][_0xaf97('0x56')]));_0x4c2ae8[_0xaf97('0x47')]=_0x4c2ae8[_0xaf97('0x47')][_0xaf97('0x49')]?_0x4c2ae8['attributes']:_0x58f528[_0xaf97('0x43')];_0x4c2ae8[_0xaf97('0x4b')]=qs[_0xaf97('0x62')](_0x90f9cb['query'][_0xaf97('0x62')]);_0x4c2ae8[_0xaf97('0x4e')]=qs[_0xaf97('0x46')](_[_0xaf97('0x4c')](_0x90f9cb['query'],_0x58f528[_0xaf97('0x46')]));if(_0x90f9cb[_0xaf97('0x45')][_0xaf97('0x4d')]){_0x4c2ae8[_0xaf97('0x4e')]=_[_0xaf97('0x4f')](_0x4c2ae8['where'],{'$or':_[_0xaf97('0x3d')](_0x4c2ae8['attributes'],function(_0x1f1122){var _0x2f4a52={};_0x2f4a52[_0x1f1122]={'$like':'%'+_0x90f9cb['query'][_0xaf97('0x4d')]+'%'};return _0x2f4a52;})});}_0x4c2ae8=_[_0xaf97('0x4f')]({},_0x4c2ae8,_0x90f9cb['options']);return _0x44363a['getAgents'](_0x4c2ae8);}})[_0xaf97('0x1f')](function(_0x6ee1b5){if(_0x6ee1b5){_0x29cf07=_0x6ee1b5[_0xaf97('0x49')];if(!_0x90f9cb[_0xaf97('0x45')][_0xaf97('0x61')]('nolimit')){_0x4c2ae8[_0xaf97('0x30')]=qs[_0xaf97('0x30')](_0x90f9cb['query']['limit']);_0x4c2ae8[_0xaf97('0x2d')]=qs[_0xaf97('0x2d')](_0x90f9cb['query']['offset']);}return _0x44363a[_0xaf97('0x94')](_0x4c2ae8);}})[_0xaf97('0x1f')](function(_0x26fb16){if(_0x26fb16){return _0x26fb16?{'count':_0x29cf07,'rows':_0x26fb16}:null;}})[_0xaf97('0x1f')](respondWithResult(_0x2d3cd5,null))[_0xaf97('0x28')](handleError(_0x2d3cd5,null));};