8ce4c3f3e093a8967ee3cb44db25afec071cb072
[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 _0xe369=['json','apply','reject','save','update','get','UserProfileResource','destroy','stack','name','send','index','map','ChatQueue','rawAttributes','fieldName','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','type','options','includeAll','findAll','rows','params','include','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','find','describe','findOne','UserChatQueue','ChatQueueId','User','UserId','agent','updatedAt','createdAt','format','%s/%s','SIP','chatPause','getTeams','Team','pick','addTeams','Agents','online','voicePause','interface','flatMap','sequelize','transaction','forEach','emit','userChatQueue:save','ids','select','field','tq.TeamId','from','team_has_chat_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','SELECT','every','TeamId','includes','all','union','compact','removeAgents','userChatQueue:remove','addAgents','omit','spread','isArray','getAgents','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','./chatQueue.socket','register','jayson/promise','http','then','ChatQueue,\x20%s,\x20%s','request\x20sent','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','catch','sendStatus','status','end','count','offset','limit','set','Content-Range'];(function(_0xa07a6f,_0x54aedd){var _0x4ecf39=function(_0x4ed464){while(--_0x4ed464){_0xa07a6f['push'](_0xa07a6f['shift']());}};_0x4ecf39(++_0x54aedd);}(_0xe369,0x19a));var _0x9e36=function(_0xb8e7ee,_0x3e1006){_0xb8e7ee=_0xb8e7ee-0x0;var _0x45fb53=_0xe369[_0xb8e7ee];return _0x45fb53;};'use strict';var pdf=require(_0x9e36('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x9e36('0x1'));var zipdir=require(_0x9e36('0x2'));var jsonpatch=require(_0x9e36('0x3'));var rp=require(_0x9e36('0x4'));var moment=require('moment');var BPromise=require(_0x9e36('0x5'));var Mustache=require(_0x9e36('0x6'));var util=require(_0x9e36('0x7'));var path=require('path');var sox=require(_0x9e36('0x8'));var csv=require(_0x9e36('0x9'));var ejs=require(_0x9e36('0xa'));var fs=require('fs');var _=require(_0x9e36('0xb'));var squel=require(_0x9e36('0xc'));var crypto=require('crypto');var jsforce=require(_0x9e36('0xd'));var deskjs=require(_0x9e36('0xe'));var toCsv=require(_0x9e36('0x9'));var querystring=require(_0x9e36('0xf'));var Papa=require(_0x9e36('0x10'));var Redis=require(_0x9e36('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x9e36('0x12'));var as=require(_0x9e36('0x13'));var hardwareService=require(_0x9e36('0x14'));var logger=require('../../config/logger')(_0x9e36('0x15'));var utils=require(_0x9e36('0x16'));var config=require(_0x9e36('0x17'));var licenseUtil=require(_0x9e36('0x18'));var db=require('../../mysqldb')['db'];config[_0x9e36('0x19')]=_[_0x9e36('0x1a')](config[_0x9e36('0x19')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x9e36('0x19')]));require(_0x9e36('0x1b'))[_0x9e36('0x1c')](socket);var jayson=require(_0x9e36('0x1d'));var client=jayson['client'][_0x9e36('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0x15fd20,_0x207664,_0x237ecb,_0x37e638){return new BPromise(function(_0x337355,_0xf85ff6){var _0x1145d1=_0x37e638||client;return _0x1145d1['request'](_0x15fd20,_0x237ecb)[_0x9e36('0x1f')](function(_0x5127c){logger['info'](_0x9e36('0x20'),_0x207664,_0x9e36('0x21'));logger['debug'](_0x9e36('0x22'),_0x207664,'request\x20sent',JSON[_0x9e36('0x23')](_0x5127c));if(_0x5127c[_0x9e36('0x24')]){if(_0x5127c[_0x9e36('0x24')][_0x9e36('0x25')]===0x1f4){logger[_0x9e36('0x24')](_0x9e36('0x20'),_0x207664,_0x5127c[_0x9e36('0x24')][_0x9e36('0x26')]);return _0xf85ff6(_0x5127c[_0x9e36('0x24')]['message']);}logger[_0x9e36('0x24')](_0x9e36('0x20'),_0x207664,_0x5127c['error']['message']);return _0x337355(_0x5127c[_0x9e36('0x24')][_0x9e36('0x26')]);}else{logger[_0x9e36('0x27')](_0x9e36('0x20'),_0x207664,_0x9e36('0x21'));_0x337355(_0x5127c['result'][_0x9e36('0x26')]);}})[_0x9e36('0x28')](function(_0x328f13){logger[_0x9e36('0x24')](_0x9e36('0x20'),_0x207664,_0x328f13);_0xf85ff6(_0x328f13);});});}function respondWithStatusCode(_0x16f910,_0xee499){_0xee499=_0xee499||0xcc;return function(_0x18a513){if(_0x18a513){return _0x16f910[_0x9e36('0x29')](_0xee499);}return _0x16f910[_0x9e36('0x2a')](_0xee499)[_0x9e36('0x2b')]();};}function respondWithResult(_0x2176d1,_0x25e478){_0x25e478=_0x25e478||0xc8;return function(_0x199173){if(_0x199173){return _0x2176d1[_0x9e36('0x2a')](_0x25e478)['json'](_0x199173);}};}function respondWithFilteredResult(_0x4114ca,_0x195477){return function(_0x9f5ef4){if(_0x9f5ef4){var _0x14d6b9=_0x9f5ef4[_0x9e36('0x2c')],_0x10313f=_0x195477[_0x9e36('0x2d')],_0x48bf55=_0x195477[_0x9e36('0x2d')]+_0x195477[_0x9e36('0x2e')],_0x215ed8;if(_0x48bf55>=_0x14d6b9){_0x48bf55=_0x14d6b9;_0x215ed8=0xc8;}else{_0x215ed8=0xce;}_0x4114ca[_0x9e36('0x2a')](_0x215ed8);return _0x4114ca[_0x9e36('0x2f')](_0x9e36('0x30'),_0x10313f+'-'+_0x48bf55+'/'+_0x14d6b9)[_0x9e36('0x31')](_0x9f5ef4);}return null;};}function patchUpdates(_0x5da9eb){return function(_0x5d3fa4){try{jsonpatch[_0x9e36('0x32')](_0x5d3fa4,_0x5da9eb,!![]);}catch(_0x193cb9){return BPromise[_0x9e36('0x33')](_0x193cb9);}return _0x5d3fa4[_0x9e36('0x34')]();};}function saveUpdates(_0x18b6f6,_0x49b6ed){return function(_0x561818){if(_0x561818){return _0x561818[_0x9e36('0x35')](_0x18b6f6)[_0x9e36('0x1f')](function(_0x299c70){return _0x299c70;});}return null;};}function removeEntity(_0x1d72dc,_0x22e0e3){return function(_0x2c0472){if(_0x2c0472){return _0x2c0472['destroy']()[_0x9e36('0x1f')](function(){var _0x9fb9e0=_0x2c0472[_0x9e36('0x36')]({'plain':!![]});var _0x45196f='ChatQueues';return db[_0x9e36('0x37')][_0x9e36('0x38')]({'where':{'type':_0x45196f,'resourceId':_0x9fb9e0['id']}})[_0x9e36('0x1f')](function(){return _0x2c0472;});})[_0x9e36('0x1f')](function(){_0x1d72dc[_0x9e36('0x2a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x478b27,_0x334823){return function(_0x15b619){if(!_0x15b619){_0x478b27[_0x9e36('0x29')](0x194);}return _0x15b619;};}function handleError(_0x29b89e,_0x4b9051){_0x4b9051=_0x4b9051||0x1f4;return function(_0x4b34b9){logger[_0x9e36('0x24')](_0x4b34b9[_0x9e36('0x39')]);if(_0x4b34b9[_0x9e36('0x3a')]){delete _0x4b34b9[_0x9e36('0x3a')];}_0x29b89e[_0x9e36('0x2a')](_0x4b9051)[_0x9e36('0x3b')](_0x4b34b9);};}exports[_0x9e36('0x3c')]=function(_0x2b180f,_0x2dd45f){var _0x5b56ce={},_0x2f92aa={},_0x4ea2f5={'count':0x0,'rows':[]};var _0x279d3a=_[_0x9e36('0x3d')](db[_0x9e36('0x3e')][_0x9e36('0x3f')],function(_0x434dec){return{'name':_0x434dec[_0x9e36('0x40')],'type':_0x434dec['type'][_0x9e36('0x41')]};});_0x2f92aa[_0x9e36('0x42')]=_[_0x9e36('0x3d')](_0x279d3a,'name');_0x2f92aa[_0x9e36('0x43')]=_[_0x9e36('0x44')](_0x2b180f['query']);_0x2f92aa['filters']=_[_0x9e36('0x45')](_0x2f92aa[_0x9e36('0x42')],_0x2f92aa[_0x9e36('0x43')]);_0x5b56ce[_0x9e36('0x46')]=_['intersection'](_0x2f92aa[_0x9e36('0x42')],qs['fields'](_0x2b180f[_0x9e36('0x43')][_0x9e36('0x47')]));_0x5b56ce[_0x9e36('0x46')]=_0x5b56ce[_0x9e36('0x46')][_0x9e36('0x48')]?_0x5b56ce[_0x9e36('0x46')]:_0x2f92aa[_0x9e36('0x42')];if(!_0x2b180f[_0x9e36('0x43')][_0x9e36('0x49')](_0x9e36('0x4a'))){_0x5b56ce[_0x9e36('0x2e')]=qs[_0x9e36('0x2e')](_0x2b180f[_0x9e36('0x43')][_0x9e36('0x2e')]);_0x5b56ce[_0x9e36('0x2d')]=qs['offset'](_0x2b180f['query'][_0x9e36('0x2d')]);}_0x5b56ce[_0x9e36('0x4b')]=qs[_0x9e36('0x4c')](_0x2b180f[_0x9e36('0x43')][_0x9e36('0x4c')]);_0x5b56ce[_0x9e36('0x4d')]=qs[_0x9e36('0x4e')](_['pick'](_0x2b180f['query'],_0x2f92aa[_0x9e36('0x4e')]),_0x279d3a);if(_0x2b180f['query'][_0x9e36('0x4f')]){_0x5b56ce[_0x9e36('0x4d')]=_[_0x9e36('0x50')](_0x5b56ce[_0x9e36('0x4d')],{'$or':_['map'](_0x279d3a,function(_0x4bde8d){if(_0x4bde8d[_0x9e36('0x51')]!=='VIRTUAL'){var _0x5fc157={};_0x5fc157[_0x4bde8d[_0x9e36('0x3a')]]={'$like':'%'+_0x2b180f[_0x9e36('0x43')][_0x9e36('0x4f')]+'%'};return _0x5fc157;}})});}_0x5b56ce=_['merge']({},_0x5b56ce,_0x2b180f[_0x9e36('0x52')]);var _0x2270f8={'where':_0x5b56ce['where']};return db[_0x9e36('0x3e')][_0x9e36('0x2c')](_0x2270f8)[_0x9e36('0x1f')](function(_0x2772b3){_0x4ea2f5['count']=_0x2772b3;if(_0x2b180f['query'][_0x9e36('0x53')]){_0x5b56ce['include']=[{'all':!![]}];}return db[_0x9e36('0x3e')][_0x9e36('0x54')](_0x5b56ce);})[_0x9e36('0x1f')](function(_0x5355ec){_0x4ea2f5[_0x9e36('0x55')]=_0x5355ec;return _0x4ea2f5;})[_0x9e36('0x1f')](respondWithFilteredResult(_0x2dd45f,_0x5b56ce))[_0x9e36('0x28')](handleError(_0x2dd45f,null));};exports['show']=function(_0x5ac126,_0x31d7bc){var _0xf699cb={'raw':!![],'where':{'id':_0x5ac126[_0x9e36('0x56')]['id']}},_0xa22d27={};_0xa22d27[_0x9e36('0x42')]=_['keys'](db[_0x9e36('0x3e')][_0x9e36('0x3f')]);_0xa22d27[_0x9e36('0x43')]=_[_0x9e36('0x44')](_0x5ac126[_0x9e36('0x43')]);_0xa22d27['filters']=_[_0x9e36('0x45')](_0xa22d27['model'],_0xa22d27['query']);_0xf699cb[_0x9e36('0x46')]=_[_0x9e36('0x45')](_0xa22d27[_0x9e36('0x42')],qs[_0x9e36('0x47')](_0x5ac126[_0x9e36('0x43')][_0x9e36('0x47')]));_0xf699cb[_0x9e36('0x46')]=_0xf699cb['attributes'][_0x9e36('0x48')]?_0xf699cb['attributes']:_0xa22d27[_0x9e36('0x42')];if(_0x5ac126[_0x9e36('0x43')][_0x9e36('0x53')]){_0xf699cb[_0x9e36('0x57')]=[{'all':!![]}];}_0xf699cb=_['merge']({},_0xf699cb,_0x5ac126['options']);return db[_0x9e36('0x3e')]['find'](_0xf699cb)[_0x9e36('0x1f')](handleEntityNotFound(_0x31d7bc,null))[_0x9e36('0x1f')](respondWithResult(_0x31d7bc,null))[_0x9e36('0x28')](handleError(_0x31d7bc,null));};exports[_0x9e36('0x58')]=function(_0x5c586e,_0x35dafb){return db[_0x9e36('0x3e')][_0x9e36('0x58')](_0x5c586e['body'],{})[_0x9e36('0x1f')](function(_0x2ea0a8){var _0x36e522=_0x5c586e[_0x9e36('0x59')][_0x9e36('0x36')]({'plain':!![]});if(!_0x36e522)throw new Error(_0x9e36('0x5a'));if(_0x36e522[_0x9e36('0x5b')]===_0x9e36('0x59')){var _0x5d83a1=_0x2ea0a8['get']({'plain':!![]});var _0x45e322='ChatQueues';return db[_0x9e36('0x5c')]['find']({'where':{'name':_0x45e322,'userProfileId':_0x36e522[_0x9e36('0x5d')]},'raw':!![]})[_0x9e36('0x1f')](function(_0x4e6be1){if(_0x4e6be1&&_0x4e6be1[_0x9e36('0x5e')]===0x0){return db['UserProfileResource']['create']({'name':_0x5d83a1['name'],'resourceId':_0x5d83a1['id'],'type':_0x4e6be1[_0x9e36('0x3a')],'sectionId':_0x4e6be1['id']},{})[_0x9e36('0x1f')](function(){return _0x2ea0a8;});}else{return _0x2ea0a8;}})[_0x9e36('0x28')](function(_0x1806bc){logger[_0x9e36('0x24')](_0x9e36('0x5f'),_0x1806bc);throw _0x1806bc;});}return _0x2ea0a8;})['then'](respondWithResult(_0x35dafb,0xc9))[_0x9e36('0x28')](handleError(_0x35dafb,null));};exports[_0x9e36('0x35')]=function(_0x8af2cf,_0x44f8f0){if(_0x8af2cf[_0x9e36('0x60')]['id']){delete _0x8af2cf[_0x9e36('0x60')]['id'];}return db[_0x9e36('0x3e')]['find']({'where':{'id':_0x8af2cf[_0x9e36('0x56')]['id']}})[_0x9e36('0x1f')](handleEntityNotFound(_0x44f8f0,null))[_0x9e36('0x1f')](saveUpdates(_0x8af2cf[_0x9e36('0x60')],null))[_0x9e36('0x1f')](respondWithResult(_0x44f8f0,null))['catch'](handleError(_0x44f8f0,null));};exports[_0x9e36('0x38')]=function(_0x19b402,_0xd64668){return db[_0x9e36('0x3e')][_0x9e36('0x61')]({'where':{'id':_0x19b402['params']['id']}})[_0x9e36('0x1f')](handleEntityNotFound(_0xd64668,null))[_0x9e36('0x1f')](removeEntity(_0xd64668,null))['catch'](handleError(_0xd64668,null));};exports[_0x9e36('0x62')]=function(_0x4f02a7,_0xef7658){return db[_0x9e36('0x3e')][_0x9e36('0x62')]()[_0x9e36('0x1f')](respondWithResult(_0xef7658,null))[_0x9e36('0x28')](handleError(_0xef7658,null));};exports['getMembers']=function(_0x542da0,_0x2e7144,_0x4a0acd){var _0x41837b={'raw':!![],'where':{}},_0xe0b29d={},_0x5d13e7;return db[_0x9e36('0x3e')][_0x9e36('0x63')]({'where':{'id':_0x542da0[_0x9e36('0x56')]['id']}})[_0x9e36('0x1f')](handleEntityNotFound(_0x2e7144,null))['then'](function(_0x529919){if(_0x529919){_0x5d13e7=_0x529919['get']({'plain':!![]});_0xe0b29d[_0x9e36('0x42')]=_[_0x9e36('0x44')](db[_0x9e36('0x64')]['rawAttributes']);_0xe0b29d[_0x9e36('0x43')]=_[_0x9e36('0x44')](_0x542da0[_0x9e36('0x43')]);_0xe0b29d['filters']=_[_0x9e36('0x45')](_0xe0b29d['model'],_0xe0b29d[_0x9e36('0x43')]);_0x41837b[_0x9e36('0x46')]=_[_0x9e36('0x45')](_0xe0b29d[_0x9e36('0x42')],qs[_0x9e36('0x47')](_0x542da0['query']['fields']));_0x41837b[_0x9e36('0x46')]=_0x41837b[_0x9e36('0x46')]['length']?_0x41837b[_0x9e36('0x46')]:_0xe0b29d[_0x9e36('0x42')];if(!_0x542da0[_0x9e36('0x43')]['hasOwnProperty'](_0x9e36('0x4a'))){_0x41837b['limit']=qs[_0x9e36('0x2e')](_0x542da0[_0x9e36('0x43')][_0x9e36('0x2e')]);_0x41837b[_0x9e36('0x2d')]=qs[_0x9e36('0x2d')](_0x542da0[_0x9e36('0x43')][_0x9e36('0x2d')]);}_0x41837b[_0x9e36('0x4b')]=qs['sort'](_0x542da0[_0x9e36('0x43')][_0x9e36('0x4c')]);_0x41837b['where']=qs['filters'](_['pick'](_0x542da0['query'],_0xe0b29d[_0x9e36('0x4e')]));_0x41837b['where'][_0x9e36('0x65')]=_0x529919['id'];if(_0x542da0[_0x9e36('0x43')][_0x9e36('0x4f')]){_0x41837b[_0x9e36('0x4d')]=_[_0x9e36('0x50')](_0x41837b[_0x9e36('0x4d')],{'$or':_[_0x9e36('0x3d')](_0x41837b['attributes'],function(_0x19cb58){var _0x260ab9={};_0x260ab9[_0x19cb58]={'$like':'%'+_0x542da0['query'][_0x9e36('0x4f')]+'%'};return _0x260ab9;})});}_0x41837b=_[_0x9e36('0x50')]({},_0x41837b,_0x542da0[_0x9e36('0x52')]);return db[_0x9e36('0x64')][_0x9e36('0x54')](_0x41837b);}})[_0x9e36('0x1f')](function(_0x2c3e15){if(_0x2c3e15){return db[_0x9e36('0x66')]['findAndCountAll']({'where':{'id':_[_0x9e36('0x3d')](_0x2c3e15,_0x9e36('0x67')),'role':_0x9e36('0x68')},'attributes':['id','name','chatPause',_0x9e36('0x69'),_0x9e36('0x6a')]});}})[_0x9e36('0x1f')](function(_0x5de563){if(_0x5de563){return{'count':_0x5de563[_0x9e36('0x2c')],'rows':_[_0x9e36('0x3d')](_0x5de563['rows'],function(_0x121f2a){return{'membername':_0x121f2a[_0x9e36('0x3a')],'UserId':_0x121f2a['id'],'queue_name':_0x5d13e7[_0x9e36('0x3a')],'ChatQueueId':_0x5d13e7['id'],'interface':util[_0x9e36('0x6b')](_0x9e36('0x6c'),_0x9e36('0x6d'),_0x121f2a['name']),'penalty':0x0,'paused':_0x121f2a[_0x9e36('0x6e')],'createdAt':_0x121f2a[_0x9e36('0x6a')],'updatedAt':_0x121f2a[_0x9e36('0x69')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x9e36('0x1f')](respondWithFilteredResult(_0x2e7144,_0x41837b))[_0x9e36('0x28')](handleError(_0x2e7144,null));};exports[_0x9e36('0x6f')]=function(_0x2ba57b,_0x14743b,_0x5ee6f5){var _0xeeef98={};var _0x4ed598={};var _0x24fcce;var _0xdd5979;return db['ChatQueue'][_0x9e36('0x63')]({'where':{'id':_0x2ba57b[_0x9e36('0x56')]['id']}})['then'](handleEntityNotFound(_0x14743b,null))[_0x9e36('0x1f')](function(_0x5a9ccc){if(_0x5a9ccc){_0x24fcce=_0x5a9ccc;_0x4ed598[_0x9e36('0x42')]=_[_0x9e36('0x44')](db[_0x9e36('0x70')]['rawAttributes']);_0x4ed598[_0x9e36('0x43')]=_[_0x9e36('0x44')](_0x2ba57b['query']);_0x4ed598[_0x9e36('0x4e')]=_[_0x9e36('0x45')](_0x4ed598[_0x9e36('0x42')],_0x4ed598[_0x9e36('0x43')]);_0xeeef98[_0x9e36('0x46')]=_[_0x9e36('0x45')](_0x4ed598[_0x9e36('0x42')],qs[_0x9e36('0x47')](_0x2ba57b['query'][_0x9e36('0x47')]));_0xeeef98[_0x9e36('0x46')]=_0xeeef98[_0x9e36('0x46')][_0x9e36('0x48')]?_0xeeef98['attributes']:_0x4ed598[_0x9e36('0x42')];_0xeeef98['order']=qs[_0x9e36('0x4c')](_0x2ba57b['query'][_0x9e36('0x4c')]);_0xeeef98[_0x9e36('0x4d')]=qs[_0x9e36('0x4e')](_[_0x9e36('0x71')](_0x2ba57b[_0x9e36('0x43')],_0x4ed598[_0x9e36('0x4e')]));if(_0x2ba57b[_0x9e36('0x43')]['filter']){_0xeeef98[_0x9e36('0x4d')]=_[_0x9e36('0x50')](_0xeeef98[_0x9e36('0x4d')],{'$or':_[_0x9e36('0x3d')](_0xeeef98[_0x9e36('0x46')],function(_0x25f6aa){var _0x21d285={};_0x21d285[_0x25f6aa]={'$like':'%'+_0x2ba57b[_0x9e36('0x43')]['filter']+'%'};return _0x21d285;})});}_0xeeef98=_[_0x9e36('0x50')]({},_0xeeef98,_0x2ba57b[_0x9e36('0x52')]);return _0x24fcce[_0x9e36('0x6f')](_0xeeef98);}})['then'](function(_0x46cb9b){if(_0x46cb9b){_0xdd5979=_0x46cb9b[_0x9e36('0x48')];if(!_0x2ba57b[_0x9e36('0x43')][_0x9e36('0x49')](_0x9e36('0x4a'))){_0xeeef98[_0x9e36('0x2e')]=qs['limit'](_0x2ba57b[_0x9e36('0x43')][_0x9e36('0x2e')]);_0xeeef98[_0x9e36('0x2d')]=qs['offset'](_0x2ba57b[_0x9e36('0x43')][_0x9e36('0x2d')]);}return _0x24fcce[_0x9e36('0x6f')](_0xeeef98);}})[_0x9e36('0x1f')](function(_0x34251f){if(_0x34251f){return _0x34251f?{'count':_0xdd5979,'rows':_0x34251f}:null;}})[_0x9e36('0x1f')](respondWithResult(_0x14743b,null))[_0x9e36('0x28')](handleError(_0x14743b,null));};exports[_0x9e36('0x72')]=function(_0x4afce1,_0x5db4e2,_0x42385e){var _0x2643d7=_0x4afce1[_0x9e36('0x60')]['ids'];return db[_0x9e36('0x70')][_0x9e36('0x54')]({'where':{'id':_0x2643d7},'attributes':['id'],'include':[{'model':db['User'],'as':_0x9e36('0x73'),'attributes':['id','name',_0x9e36('0x74'),_0x9e36('0x75'),_0x9e36('0x76')],'raw':!![]}]})[_0x9e36('0x1f')](function(_0x69c79){if(_0x69c79){var _0xa1ea3e=_[_0x9e36('0x77')](_0x69c79,function(_0x570f75){var _0x106383=_0x570f75[_0x9e36('0x36')]({'plain':!![]});return _0x106383[_0x9e36('0x73')];});return db[_0x9e36('0x3e')][_0x9e36('0x61')]({'where':{'id':_0x4afce1[_0x9e36('0x56')]['id']}})['then'](function(_0x14412e){return db[_0x9e36('0x78')][_0x9e36('0x79')](function(_0x4c4b93){return _0x14412e['addTeams'](_0x2643d7,{'transaction':_0x4c4b93})[_0x9e36('0x1f')](function(){return BPromise['each'](_0xa1ea3e,function(_0xbc62a2){return db[_0x9e36('0x64')]['findOrCreate']({'where':{'UserId':_0xbc62a2['id'],'ChatQueueId':_0x4afce1[_0x9e36('0x56')]['id']},'transaction':_0x4c4b93});});})['then'](function(){_0xa1ea3e[_0x9e36('0x7a')](function(_0x433223){socket[_0x9e36('0x7b')](_0x9e36('0x7c'),{'UserId':_0x433223['id'],'ChatQueueId':_0x14412e['id']});});});});});}})[_0x9e36('0x1f')](respondWithStatusCode(_0x5db4e2,null))[_0x9e36('0x28')](handleError(_0x5db4e2,null));};exports['removeTeams']=function(_0x444bd6,_0x39fd52,_0x106ec8){return db[_0x9e36('0x70')][_0x9e36('0x54')]({'where':{'id':_0x444bd6['query'][_0x9e36('0x7d')]},'attributes':['id'],'include':[{'model':db[_0x9e36('0x66')],'as':'Agents','attributes':['id'],'raw':!![]}]})[_0x9e36('0x1f')](handleEntityNotFound(_0x39fd52,null))[_0x9e36('0x1f')](function(_0x24cfb5){var _0x5e49ea=_['map'](_0x24cfb5,'id');var _0x2d56d2=[];var _0x341409=[];var _0x123e5e=squel[_0x9e36('0x7e')]();_0x123e5e[_0x9e36('0x7f')](_0x9e36('0x80'))[_0x9e36('0x81')](_0x9e36('0x82'),'tq')[_0x9e36('0x83')](_0x9e36('0x84'),'ut',_0x9e36('0x85'))[_0x9e36('0x4d')](_0x9e36('0x86'),_0x444bd6[_0x9e36('0x56')]['id']);for(var _0x12ebe9=0x0;_0x12ebe9<_0x24cfb5[_0x9e36('0x48')];_0x12ebe9+=0x1){let _0x3bcfd0=_0x24cfb5[_0x12ebe9];for(var _0x3fc909=0x0;_0x3fc909<_0x3bcfd0[_0x9e36('0x73')]['length'];_0x3fc909+=0x1){let _0x5e180c=_0x3bcfd0['Agents'][_0x3fc909];var _0x10dffc=_0x123e5e[_0x9e36('0x87')]();_0x10dffc[_0x9e36('0x4d')](_0x9e36('0x88'),_0x5e180c['id']);_0x341409[_0x9e36('0x89')](db['sequelize'][_0x9e36('0x43')](_0x10dffc[_0x9e36('0x8a')](),{'type':db[_0x9e36('0x78')]['QueryTypes'][_0x9e36('0x8b')]})[_0x9e36('0x1f')](function(_0x5d0085){if(_0x5d0085[_0x9e36('0x48')]===0x1){return _0x5e180c['id'];}else{var _0x115451=_[_0x9e36('0x8c')](_[_0x9e36('0x3d')](_0x5d0085,_0x9e36('0x8d')),function(_0x15ac40){return _[_0x9e36('0x8e')](_0x5e49ea,_0x15ac40);});if(_0x115451){return _0x5e180c['id'];}}}));}}return BPromise[_0x9e36('0x8f')](_0x341409)[_0x9e36('0x1f')](function(_0x47f55e){_0x2d56d2=_(_0x2d56d2)[_0x9e36('0x90')](_0x47f55e)[_0x9e36('0x91')]()['value']();return db[_0x9e36('0x3e')][_0x9e36('0x61')]({'where':{'id':_0x444bd6[_0x9e36('0x56')]['id']}})[_0x9e36('0x1f')](function(_0x3a2e8b){return db[_0x9e36('0x78')][_0x9e36('0x79')](function(_0x50654a){return _0x3a2e8b['removeTeams'](_0x444bd6[_0x9e36('0x43')]['ids'],{'transaction':_0x50654a})['then'](function(){if(!_['isEmpty'](_0x2d56d2)){return _0x3a2e8b[_0x9e36('0x92')](_0x2d56d2,{'transaction':_0x50654a});}})[_0x9e36('0x1f')](function(){_0x2d56d2[_0x9e36('0x7a')](function(_0x69691c){socket['emit'](_0x9e36('0x93'),{'UserId':_0x69691c,'ChatQueueId':_0x3a2e8b['id']});});});});});});})[_0x9e36('0x1f')](respondWithStatusCode(_0x39fd52,null))[_0x9e36('0x28')](handleError(_0x39fd52,null));};exports[_0x9e36('0x94')]=function(_0x159fec,_0x302ac2,_0x1536ce){return db[_0x9e36('0x3e')][_0x9e36('0x61')]({'where':{'id':_0x159fec['params']['id']}})[_0x9e36('0x1f')](handleEntityNotFound(_0x302ac2,null))[_0x9e36('0x1f')](function(_0x2c92c6){if(_0x2c92c6){return _0x2c92c6[_0x9e36('0x94')](_0x159fec[_0x9e36('0x60')][_0x9e36('0x7d')],_[_0x9e36('0x95')](_0x159fec[_0x9e36('0x60')],['ids','id'])||{})[_0x9e36('0x96')](function(_0x54dcc5){for(var _0x335845=0x0;_0x335845<_0x159fec[_0x9e36('0x60')][_0x9e36('0x7d')][_0x9e36('0x48')];_0x335845+=0x1){socket[_0x9e36('0x7b')](_0x9e36('0x7c'),{'UserId':_0x159fec['body'][_0x9e36('0x7d')][_0x335845],'ChatQueueId':_0x159fec[_0x9e36('0x56')]['id']});}return _0x54dcc5;});}})[_0x9e36('0x1f')](respondWithResult(_0x302ac2,null))['catch'](handleError(_0x302ac2,null));};exports[_0x9e36('0x92')]=function(_0x2d7cbe,_0x4cf149,_0x2d2739){return db[_0x9e36('0x3e')][_0x9e36('0x61')]({'where':{'id':_0x2d7cbe[_0x9e36('0x56')]['id']}})[_0x9e36('0x1f')](handleEntityNotFound(_0x4cf149,null))[_0x9e36('0x1f')](function(_0x5c06f7){if(_0x5c06f7){return _0x5c06f7['removeAgents'](_0x2d7cbe['query'][_0x9e36('0x7d')])[_0x9e36('0x1f')](function(){if(_[_0x9e36('0x97')](_0x2d7cbe[_0x9e36('0x43')][_0x9e36('0x7d')])){for(var _0x2cc0e4=0x0;_0x2cc0e4<_0x2d7cbe[_0x9e36('0x43')][_0x9e36('0x7d')]['length'];_0x2cc0e4+=0x1){socket[_0x9e36('0x7b')](_0x9e36('0x93'),{'UserId':Number(_0x2d7cbe[_0x9e36('0x43')]['ids'][_0x2cc0e4]),'ChatQueueId':Number(_0x2d7cbe[_0x9e36('0x56')]['id'])});}}else{socket[_0x9e36('0x7b')](_0x9e36('0x93'),{'UserId':Number(_0x2d7cbe[_0x9e36('0x43')]['ids']),'ChatQueueId':Number(_0x2d7cbe[_0x9e36('0x56')]['id'])});}});}})[_0x9e36('0x1f')](respondWithStatusCode(_0x4cf149,null))[_0x9e36('0x28')](handleError(_0x4cf149,null));};exports[_0x9e36('0x98')]=function(_0x470b40,_0xaf7668,_0x4e06a6){var _0x33c3d9={};var _0x46795c={};var _0x39a26a;var _0x21fd38;return db[_0x9e36('0x3e')]['findOne']({'where':{'id':_0x470b40[_0x9e36('0x56')]['id']}})[_0x9e36('0x1f')](handleEntityNotFound(_0xaf7668,null))[_0x9e36('0x1f')](function(_0xa17a8c){if(_0xa17a8c){_0x39a26a=_0xa17a8c;_0x46795c[_0x9e36('0x42')]=_[_0x9e36('0x44')](db[_0x9e36('0x66')][_0x9e36('0x3f')]);_0x46795c['query']=_['keys'](_0x470b40[_0x9e36('0x43')]);_0x46795c[_0x9e36('0x4e')]=_[_0x9e36('0x45')](_0x46795c[_0x9e36('0x42')],_0x46795c[_0x9e36('0x43')]);_0x33c3d9[_0x9e36('0x46')]=_[_0x9e36('0x45')](_0x46795c['model'],qs[_0x9e36('0x47')](_0x470b40[_0x9e36('0x43')][_0x9e36('0x47')]));_0x33c3d9[_0x9e36('0x46')]=_0x33c3d9[_0x9e36('0x46')][_0x9e36('0x48')]?_0x33c3d9['attributes']:_0x46795c['model'];_0x33c3d9[_0x9e36('0x4b')]=qs['sort'](_0x470b40[_0x9e36('0x43')]['sort']);_0x33c3d9[_0x9e36('0x4d')]=qs[_0x9e36('0x4e')](_['pick'](_0x470b40[_0x9e36('0x43')],_0x46795c[_0x9e36('0x4e')]));if(_0x470b40[_0x9e36('0x43')][_0x9e36('0x4f')]){_0x33c3d9['where']=_[_0x9e36('0x50')](_0x33c3d9[_0x9e36('0x4d')],{'$or':_[_0x9e36('0x3d')](_0x33c3d9[_0x9e36('0x46')],function(_0x5ad8ba){var _0x457cb5={};_0x457cb5[_0x5ad8ba]={'$like':'%'+_0x470b40[_0x9e36('0x43')]['filter']+'%'};return _0x457cb5;})});}_0x33c3d9=_['merge']({},_0x33c3d9,_0x470b40[_0x9e36('0x52')]);return _0x39a26a[_0x9e36('0x98')](_0x33c3d9);}})[_0x9e36('0x1f')](function(_0x28af3e){if(_0x28af3e){_0x21fd38=_0x28af3e[_0x9e36('0x48')];if(!_0x470b40['query'][_0x9e36('0x49')](_0x9e36('0x4a'))){_0x33c3d9['limit']=qs[_0x9e36('0x2e')](_0x470b40['query'][_0x9e36('0x2e')]);_0x33c3d9[_0x9e36('0x2d')]=qs['offset'](_0x470b40[_0x9e36('0x43')][_0x9e36('0x2d')]);}return _0x39a26a[_0x9e36('0x98')](_0x33c3d9);}})[_0x9e36('0x1f')](function(_0x417cb2){if(_0x417cb2){return _0x417cb2?{'count':_0x21fd38,'rows':_0x417cb2}:null;}})[_0x9e36('0x1f')](respondWithResult(_0xaf7668,null))[_0x9e36('0x28')](handleError(_0xaf7668,null));};