Built motion from commit 87cd5f02.|2.5.48
[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 _0x2815=['include','findAll','rows','show','keys','options','find','catch','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','ChatQueues','UserProfileSection','userProfileId','UserProfileResource','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','describe','getMembers','findOne','UserChatQueue','ChatQueueId','User','findAndCountAll','chatPause','updatedAt','createdAt','format','SIP','Team','getTeams','addTeams','online','voicePause','interface','flatMap','Agents','sequelize','transaction','each','findOrCreate','emit','userChatQueue:save','removeTeams','ids','select','field','tq.TeamId','from','join','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','toString','QueryTypes','SELECT','every','TeamId','includes','all','union','compact','value','isEmpty','removeAgents','addAgents','omit','isArray','userChatQueue:remove','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./chatQueue.socket','jayson/promise','request','info','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','get','stack','name','index','map','ChatQueue','rawAttributes','fieldName','key','model','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','includeAll'];(function(_0x653561,_0x412a80){var _0x5c1ac9=function(_0x4df56c){while(--_0x4df56c){_0x653561['push'](_0x653561['shift']());}};_0x5c1ac9(++_0x412a80);}(_0x2815,0x17f));var _0x5281=function(_0x34eaee,_0x2430e2){_0x34eaee=_0x34eaee-0x0;var _0x178743=_0x2815[_0x34eaee];return _0x178743;};'use strict';var emlformat=require(_0x5281('0x0'));var rimraf=require(_0x5281('0x1'));var zipdir=require(_0x5281('0x2'));var jsonpatch=require(_0x5281('0x3'));var rp=require(_0x5281('0x4'));var moment=require('moment');var BPromise=require(_0x5281('0x5'));var Mustache=require(_0x5281('0x6'));var util=require('util');var path=require(_0x5281('0x7'));var sox=require(_0x5281('0x8'));var csv=require(_0x5281('0x9'));var ejs=require(_0x5281('0xa'));var fs=require('fs');var fs_extra=require(_0x5281('0xb'));var _=require(_0x5281('0xc'));var squel=require(_0x5281('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x5281('0xe'));var toCsv=require(_0x5281('0x9'));var querystring=require(_0x5281('0xf'));var Papa=require(_0x5281('0x10'));var Redis=require(_0x5281('0x11'));var authService=require(_0x5281('0x12'));var qs=require(_0x5281('0x13'));var as=require(_0x5281('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x5281('0x15'));var utils=require(_0x5281('0x16'));var config=require(_0x5281('0x17'));var licenseUtil=require(_0x5281('0x18'));var db=require(_0x5281('0x19'))['db'];config['redis']=_['defaults'](config[_0x5281('0x1a')],{'host':_0x5281('0x1b'),'port':0x18eb});var socket=require(_0x5281('0x1c'))(new Redis(config['redis']));require(_0x5281('0x1d'))['register'](socket);var jayson=require(_0x5281('0x1e'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x3dbe61,_0x4425db,_0x439c57,_0x442b87){return new BPromise(function(_0x1456dd,_0xaee27c){var _0x3629e6=_0x442b87||client;return _0x3629e6[_0x5281('0x1f')](_0x3dbe61,_0x439c57)['then'](function(_0x4b089b){logger[_0x5281('0x20')](_0x5281('0x21'),_0x4425db,_0x5281('0x22'));logger[_0x5281('0x23')]('ChatQueue,\x20%s,\x20%s,\x20%s',_0x4425db,'request\x20sent',JSON[_0x5281('0x24')](_0x4b089b));if(_0x4b089b[_0x5281('0x25')]){if(_0x4b089b[_0x5281('0x25')][_0x5281('0x26')]===0x1f4){logger[_0x5281('0x25')]('ChatQueue,\x20%s,\x20%s',_0x4425db,_0x4b089b[_0x5281('0x25')][_0x5281('0x27')]);return _0xaee27c(_0x4b089b['error'][_0x5281('0x27')]);}logger[_0x5281('0x25')]('ChatQueue,\x20%s,\x20%s',_0x4425db,_0x4b089b[_0x5281('0x25')]['message']);return _0x1456dd(_0x4b089b[_0x5281('0x25')][_0x5281('0x27')]);}else{logger[_0x5281('0x20')](_0x5281('0x21'),_0x4425db,_0x5281('0x22'));_0x1456dd(_0x4b089b[_0x5281('0x28')]['message']);}})['catch'](function(_0x551542){logger[_0x5281('0x25')](_0x5281('0x21'),_0x4425db,_0x551542);_0xaee27c(_0x551542);});});}function respondWithStatusCode(_0x2f7e6f,_0xe61211){_0xe61211=_0xe61211||0xcc;return function(_0x528288){if(_0x528288){return _0x2f7e6f[_0x5281('0x29')](_0xe61211);}return _0x2f7e6f[_0x5281('0x2a')](_0xe61211)[_0x5281('0x2b')]();};}function respondWithResult(_0x3a25d6,_0x97ff34){_0x97ff34=_0x97ff34||0xc8;return function(_0x2049a0){if(_0x2049a0){return _0x3a25d6[_0x5281('0x2a')](_0x97ff34)[_0x5281('0x2c')](_0x2049a0);}};}function respondWithFilteredResult(_0x4d5aa0,_0x3dfe59){return function(_0x49484e){if(_0x49484e){var _0x417217=typeof _0x3dfe59[_0x5281('0x2d')]==='undefined'&&typeof _0x3dfe59['limit']===_0x5281('0x2e');var _0x28ef29=_0x49484e[_0x5281('0x2f')];var _0x24692c=_0x417217?0x0:_0x3dfe59[_0x5281('0x2d')];var _0x59a72e=_0x417217?_0x49484e[_0x5281('0x2f')]:_0x3dfe59['offset']+_0x3dfe59[_0x5281('0x30')];var _0x5c5f84;if(_0x59a72e>=_0x28ef29){_0x59a72e=_0x28ef29;_0x5c5f84=0xc8;}else{_0x5c5f84=0xce;}_0x4d5aa0['status'](_0x5c5f84);return _0x4d5aa0[_0x5281('0x31')](_0x5281('0x32'),_0x24692c+'-'+_0x59a72e+'/'+_0x28ef29)[_0x5281('0x2c')](_0x49484e);}return null;};}function patchUpdates(_0x799550){return function(_0x1e8283){try{jsonpatch[_0x5281('0x33')](_0x1e8283,_0x799550,!![]);}catch(_0x3b9b0b){return BPromise[_0x5281('0x34')](_0x3b9b0b);}return _0x1e8283[_0x5281('0x35')]();};}function saveUpdates(_0x3d5ff0,_0x1b8be1){return function(_0x28e51b){if(_0x28e51b){return _0x28e51b[_0x5281('0x36')](_0x3d5ff0)[_0x5281('0x37')](function(_0x5e25ac){return _0x5e25ac;});}return null;};}function removeEntity(_0x5ef5e1,_0x204242){return function(_0x460e09){if(_0x460e09){return _0x460e09[_0x5281('0x38')]()['then'](function(){var _0x44990e=_0x460e09[_0x5281('0x39')]({'plain':!![]});var _0x2dffed='ChatQueues';return db['UserProfileResource'][_0x5281('0x38')]({'where':{'type':_0x2dffed,'resourceId':_0x44990e['id']}})[_0x5281('0x37')](function(){return _0x460e09;});})[_0x5281('0x37')](function(){_0x5ef5e1['status'](0xcc)[_0x5281('0x2b')]();});}};}function handleEntityNotFound(_0x51e303,_0x2b52b6){return function(_0x1f60fd){if(!_0x1f60fd){_0x51e303['sendStatus'](0x194);}return _0x1f60fd;};}function handleError(_0x17c95e,_0x45b817){_0x45b817=_0x45b817||0x1f4;return function(_0x4cd1fe){logger[_0x5281('0x25')](_0x4cd1fe[_0x5281('0x3a')]);if(_0x4cd1fe[_0x5281('0x3b')]){delete _0x4cd1fe[_0x5281('0x3b')];}_0x17c95e[_0x5281('0x2a')](_0x45b817)['send'](_0x4cd1fe);};}exports[_0x5281('0x3c')]=function(_0x2171b8,_0x2610f0){var _0x52c534={},_0x12cd63={},_0x2e9e2f={'count':0x0,'rows':[]};var _0x22deae=_[_0x5281('0x3d')](db[_0x5281('0x3e')][_0x5281('0x3f')],function(_0x51cbb3){return{'name':_0x51cbb3[_0x5281('0x40')],'type':_0x51cbb3['type'][_0x5281('0x41')]};});_0x12cd63[_0x5281('0x42')]=_['map'](_0x22deae,_0x5281('0x3b'));_0x12cd63['query']=_['keys'](_0x2171b8[_0x5281('0x43')]);_0x12cd63[_0x5281('0x44')]=_[_0x5281('0x45')](_0x12cd63[_0x5281('0x42')],_0x12cd63[_0x5281('0x43')]);_0x52c534['attributes']=_[_0x5281('0x45')](_0x12cd63['model'],qs[_0x5281('0x46')](_0x2171b8[_0x5281('0x43')]['fields']));_0x52c534[_0x5281('0x47')]=_0x52c534[_0x5281('0x47')][_0x5281('0x48')]?_0x52c534[_0x5281('0x47')]:_0x12cd63[_0x5281('0x42')];if(!_0x2171b8[_0x5281('0x43')][_0x5281('0x49')](_0x5281('0x4a'))){_0x52c534[_0x5281('0x30')]=qs[_0x5281('0x30')](_0x2171b8[_0x5281('0x43')][_0x5281('0x30')]);_0x52c534['offset']=qs[_0x5281('0x2d')](_0x2171b8[_0x5281('0x43')]['offset']);}_0x52c534[_0x5281('0x4b')]=qs['sort'](_0x2171b8[_0x5281('0x43')][_0x5281('0x4c')]);_0x52c534[_0x5281('0x4d')]=qs[_0x5281('0x44')](_[_0x5281('0x4e')](_0x2171b8[_0x5281('0x43')],_0x12cd63['filters']),_0x22deae);if(_0x2171b8[_0x5281('0x43')][_0x5281('0x4f')]){_0x52c534[_0x5281('0x4d')]=_[_0x5281('0x50')](_0x52c534[_0x5281('0x4d')],{'$or':_[_0x5281('0x3d')](_0x22deae,function(_0x23dc1f){if(_0x23dc1f['type']!=='VIRTUAL'){var _0x24239b={};_0x24239b[_0x23dc1f[_0x5281('0x3b')]]={'$like':'%'+_0x2171b8[_0x5281('0x43')][_0x5281('0x4f')]+'%'};return _0x24239b;}})});}_0x52c534=_['merge']({},_0x52c534,_0x2171b8['options']);var _0x377d5a={'where':_0x52c534[_0x5281('0x4d')]};return db[_0x5281('0x3e')]['count'](_0x377d5a)[_0x5281('0x37')](function(_0x4bc35f){_0x2e9e2f[_0x5281('0x2f')]=_0x4bc35f;if(_0x2171b8[_0x5281('0x43')][_0x5281('0x51')]){_0x52c534[_0x5281('0x52')]=[{'all':!![]}];}return db[_0x5281('0x3e')][_0x5281('0x53')](_0x52c534);})['then'](function(_0x3df03e){_0x2e9e2f[_0x5281('0x54')]=_0x3df03e;return _0x2e9e2f;})[_0x5281('0x37')](respondWithFilteredResult(_0x2610f0,_0x52c534))['catch'](handleError(_0x2610f0,null));};exports[_0x5281('0x55')]=function(_0x5c2a9d,_0x365f9f){var _0x590788={'raw':!![],'where':{'id':_0x5c2a9d['params']['id']}},_0x563c69={};_0x563c69[_0x5281('0x42')]=_[_0x5281('0x56')](db['ChatQueue'][_0x5281('0x3f')]);_0x563c69['query']=_[_0x5281('0x56')](_0x5c2a9d[_0x5281('0x43')]);_0x563c69[_0x5281('0x44')]=_[_0x5281('0x45')](_0x563c69[_0x5281('0x42')],_0x563c69[_0x5281('0x43')]);_0x590788[_0x5281('0x47')]=_[_0x5281('0x45')](_0x563c69[_0x5281('0x42')],qs[_0x5281('0x46')](_0x5c2a9d[_0x5281('0x43')][_0x5281('0x46')]));_0x590788[_0x5281('0x47')]=_0x590788[_0x5281('0x47')][_0x5281('0x48')]?_0x590788['attributes']:_0x563c69[_0x5281('0x42')];if(_0x5c2a9d[_0x5281('0x43')][_0x5281('0x51')]){_0x590788[_0x5281('0x52')]=[{'all':!![]}];}_0x590788=_[_0x5281('0x50')]({},_0x590788,_0x5c2a9d[_0x5281('0x57')]);return db['ChatQueue'][_0x5281('0x58')](_0x590788)['then'](handleEntityNotFound(_0x365f9f,null))[_0x5281('0x37')](respondWithResult(_0x365f9f,null))[_0x5281('0x59')](handleError(_0x365f9f,null));};exports['create']=function(_0x37865a,_0x4cd7d7){return db['ChatQueue']['create'](_0x37865a['body'],{})[_0x5281('0x37')](function(_0x5dbe12){var _0x4b4345=_0x37865a['user'][_0x5281('0x39')]({'plain':!![]});if(!_0x4b4345)throw new Error(_0x5281('0x5a'));if(_0x4b4345[_0x5281('0x5b')]===_0x5281('0x5c')){var _0x3562f9=_0x5dbe12[_0x5281('0x39')]({'plain':!![]});var _0x4593f9=_0x5281('0x5d');return db[_0x5281('0x5e')][_0x5281('0x58')]({'where':{'name':_0x4593f9,'userProfileId':_0x4b4345[_0x5281('0x5f')]},'raw':!![]})[_0x5281('0x37')](function(_0x3a36b6){if(_0x3a36b6&&_0x3a36b6['autoAssociation']===0x0){return db[_0x5281('0x60')][_0x5281('0x61')]({'name':_0x3562f9[_0x5281('0x3b')],'resourceId':_0x3562f9['id'],'type':_0x3a36b6['name'],'sectionId':_0x3a36b6['id']},{})[_0x5281('0x37')](function(){return _0x5dbe12;});}else{return _0x5dbe12;}})[_0x5281('0x59')](function(_0x3d7e54){logger[_0x5281('0x25')](_0x5281('0x62'),_0x3d7e54);throw _0x3d7e54;});}return _0x5dbe12;})[_0x5281('0x37')](respondWithResult(_0x4cd7d7,0xc9))[_0x5281('0x59')](handleError(_0x4cd7d7,null));};exports[_0x5281('0x36')]=function(_0x5cd811,_0x55eccf){if(_0x5cd811[_0x5281('0x63')]['id']){delete _0x5cd811[_0x5281('0x63')]['id'];}return db[_0x5281('0x3e')][_0x5281('0x58')]({'where':{'id':_0x5cd811[_0x5281('0x64')]['id']}})[_0x5281('0x37')](handleEntityNotFound(_0x55eccf,null))[_0x5281('0x37')](saveUpdates(_0x5cd811[_0x5281('0x63')],null))[_0x5281('0x37')](respondWithResult(_0x55eccf,null))[_0x5281('0x59')](handleError(_0x55eccf,null));};exports['destroy']=function(_0x500db5,_0x390600){return db[_0x5281('0x3e')]['find']({'where':{'id':_0x500db5[_0x5281('0x64')]['id']}})[_0x5281('0x37')](handleEntityNotFound(_0x390600,null))[_0x5281('0x37')](removeEntity(_0x390600,null))[_0x5281('0x59')](handleError(_0x390600,null));};exports['describe']=function(_0x14901c,_0x3ed600){return db[_0x5281('0x3e')][_0x5281('0x65')]()['then'](respondWithResult(_0x3ed600,null))['catch'](handleError(_0x3ed600,null));};exports[_0x5281('0x66')]=function(_0x632bbd,_0x5bf86c,_0x5b7053){var _0x4ac8ab={'raw':!![],'where':{}},_0x434463={},_0x4ba052;return db[_0x5281('0x3e')][_0x5281('0x67')]({'where':{'id':_0x632bbd['params']['id']}})[_0x5281('0x37')](handleEntityNotFound(_0x5bf86c,null))[_0x5281('0x37')](function(_0x1b51f8){if(_0x1b51f8){_0x4ba052=_0x1b51f8[_0x5281('0x39')]({'plain':!![]});_0x434463['model']=_[_0x5281('0x56')](db[_0x5281('0x68')][_0x5281('0x3f')]);_0x434463[_0x5281('0x43')]=_[_0x5281('0x56')](_0x632bbd['query']);_0x434463[_0x5281('0x44')]=_['intersection'](_0x434463['model'],_0x434463['query']);_0x4ac8ab[_0x5281('0x47')]=_['intersection'](_0x434463[_0x5281('0x42')],qs['fields'](_0x632bbd['query'][_0x5281('0x46')]));_0x4ac8ab[_0x5281('0x47')]=_0x4ac8ab['attributes']['length']?_0x4ac8ab['attributes']:_0x434463[_0x5281('0x42')];if(!_0x632bbd['query'][_0x5281('0x49')](_0x5281('0x4a'))){_0x4ac8ab['limit']=qs[_0x5281('0x30')](_0x632bbd[_0x5281('0x43')]['limit']);_0x4ac8ab[_0x5281('0x2d')]=qs[_0x5281('0x2d')](_0x632bbd[_0x5281('0x43')][_0x5281('0x2d')]);}_0x4ac8ab[_0x5281('0x4b')]=qs[_0x5281('0x4c')](_0x632bbd[_0x5281('0x43')][_0x5281('0x4c')]);_0x4ac8ab[_0x5281('0x4d')]=qs[_0x5281('0x44')](_[_0x5281('0x4e')](_0x632bbd[_0x5281('0x43')],_0x434463[_0x5281('0x44')]));_0x4ac8ab['where'][_0x5281('0x69')]=_0x1b51f8['id'];if(_0x632bbd[_0x5281('0x43')][_0x5281('0x4f')]){_0x4ac8ab[_0x5281('0x4d')]=_[_0x5281('0x50')](_0x4ac8ab[_0x5281('0x4d')],{'$or':_[_0x5281('0x3d')](_0x4ac8ab[_0x5281('0x47')],function(_0x198109){var _0x1c1d6e={};_0x1c1d6e[_0x198109]={'$like':'%'+_0x632bbd[_0x5281('0x43')][_0x5281('0x4f')]+'%'};return _0x1c1d6e;})});}_0x4ac8ab=_['merge']({},_0x4ac8ab,_0x632bbd['options']);return db[_0x5281('0x68')][_0x5281('0x53')](_0x4ac8ab);}})[_0x5281('0x37')](function(_0x477bb7){if(_0x477bb7){return db[_0x5281('0x6a')][_0x5281('0x6b')]({'where':{'id':_[_0x5281('0x3d')](_0x477bb7,'UserId'),'role':'agent'},'attributes':['id','name',_0x5281('0x6c'),_0x5281('0x6d'),_0x5281('0x6e')]});}})[_0x5281('0x37')](function(_0xc6d047){if(_0xc6d047){return{'count':_0xc6d047[_0x5281('0x2f')],'rows':_[_0x5281('0x3d')](_0xc6d047['rows'],function(_0x278958){return{'membername':_0x278958[_0x5281('0x3b')],'UserId':_0x278958['id'],'queue_name':_0x4ba052[_0x5281('0x3b')],'ChatQueueId':_0x4ba052['id'],'interface':util[_0x5281('0x6f')]('%s/%s',_0x5281('0x70'),_0x278958[_0x5281('0x3b')]),'penalty':0x0,'paused':_0x278958['chatPause'],'createdAt':_0x278958[_0x5281('0x6e')],'updatedAt':_0x278958[_0x5281('0x6d')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x5281('0x37')](respondWithFilteredResult(_0x5bf86c,_0x4ac8ab))['catch'](handleError(_0x5bf86c,null));};exports['getTeams']=function(_0x9e0e87,_0x4c1f51,_0x350ed6){var _0x5c1e9d={};var _0x1d3c20={};var _0x569565;var _0x1238ff;return db['ChatQueue'][_0x5281('0x67')]({'where':{'id':_0x9e0e87[_0x5281('0x64')]['id']}})[_0x5281('0x37')](handleEntityNotFound(_0x4c1f51,null))[_0x5281('0x37')](function(_0x1fdaa7){if(_0x1fdaa7){_0x569565=_0x1fdaa7;_0x1d3c20[_0x5281('0x42')]=_[_0x5281('0x56')](db[_0x5281('0x71')][_0x5281('0x3f')]);_0x1d3c20[_0x5281('0x43')]=_[_0x5281('0x56')](_0x9e0e87['query']);_0x1d3c20['filters']=_[_0x5281('0x45')](_0x1d3c20[_0x5281('0x42')],_0x1d3c20[_0x5281('0x43')]);_0x5c1e9d[_0x5281('0x47')]=_['intersection'](_0x1d3c20['model'],qs['fields'](_0x9e0e87[_0x5281('0x43')][_0x5281('0x46')]));_0x5c1e9d['attributes']=_0x5c1e9d[_0x5281('0x47')]['length']?_0x5c1e9d[_0x5281('0x47')]:_0x1d3c20[_0x5281('0x42')];_0x5c1e9d[_0x5281('0x4b')]=qs['sort'](_0x9e0e87[_0x5281('0x43')][_0x5281('0x4c')]);_0x5c1e9d[_0x5281('0x4d')]=qs[_0x5281('0x44')](_[_0x5281('0x4e')](_0x9e0e87[_0x5281('0x43')],_0x1d3c20[_0x5281('0x44')]));if(_0x9e0e87[_0x5281('0x43')]['filter']){_0x5c1e9d[_0x5281('0x4d')]=_[_0x5281('0x50')](_0x5c1e9d['where'],{'$or':_[_0x5281('0x3d')](_0x5c1e9d[_0x5281('0x47')],function(_0x7ce894){var _0x97bfff={};_0x97bfff[_0x7ce894]={'$like':'%'+_0x9e0e87[_0x5281('0x43')]['filter']+'%'};return _0x97bfff;})});}_0x5c1e9d=_[_0x5281('0x50')]({},_0x5c1e9d,_0x9e0e87[_0x5281('0x57')]);return _0x569565[_0x5281('0x72')](_0x5c1e9d);}})[_0x5281('0x37')](function(_0x1b4b48){if(_0x1b4b48){_0x1238ff=_0x1b4b48['length'];if(!_0x9e0e87['query'][_0x5281('0x49')](_0x5281('0x4a'))){_0x5c1e9d['limit']=qs[_0x5281('0x30')](_0x9e0e87[_0x5281('0x43')][_0x5281('0x30')]);_0x5c1e9d['offset']=qs[_0x5281('0x2d')](_0x9e0e87['query'][_0x5281('0x2d')]);}return _0x569565[_0x5281('0x72')](_0x5c1e9d);}})[_0x5281('0x37')](function(_0x408be9){if(_0x408be9){return _0x408be9?{'count':_0x1238ff,'rows':_0x408be9}:null;}})[_0x5281('0x37')](respondWithResult(_0x4c1f51,null))[_0x5281('0x59')](handleError(_0x4c1f51,null));};exports[_0x5281('0x73')]=function(_0x5e2d33,_0x41233f,_0x5d24bf){var _0x1cee89=_0x5e2d33[_0x5281('0x63')]['ids'];return db[_0x5281('0x71')]['findAll']({'where':{'id':_0x1cee89},'attributes':['id'],'include':[{'model':db[_0x5281('0x6a')],'as':'Agents','attributes':['id','name',_0x5281('0x74'),_0x5281('0x75'),_0x5281('0x76')],'raw':!![]}]})[_0x5281('0x37')](function(_0x2c3665){if(_0x2c3665){var _0x33b3cc=_[_0x5281('0x77')](_0x2c3665,function(_0x355bd9){var _0x43c0a8=_0x355bd9['get']({'plain':!![]});return _0x43c0a8[_0x5281('0x78')];});return db[_0x5281('0x3e')]['find']({'where':{'id':_0x5e2d33['params']['id']}})['then'](function(_0x4785e9){return db[_0x5281('0x79')][_0x5281('0x7a')](function(_0xbe7ca4){return _0x4785e9[_0x5281('0x73')](_0x1cee89,{'transaction':_0xbe7ca4})[_0x5281('0x37')](function(){return BPromise[_0x5281('0x7b')](_0x33b3cc,function(_0xa524dc){return db['UserChatQueue'][_0x5281('0x7c')]({'where':{'UserId':_0xa524dc['id'],'ChatQueueId':_0x5e2d33[_0x5281('0x64')]['id']},'transaction':_0xbe7ca4});});})[_0x5281('0x37')](function(){_0x33b3cc['forEach'](function(_0x18b1d9){socket[_0x5281('0x7d')](_0x5281('0x7e'),{'UserId':_0x18b1d9['id'],'ChatQueueId':_0x4785e9['id']});});});});});}})[_0x5281('0x37')](respondWithStatusCode(_0x41233f,null))[_0x5281('0x59')](handleError(_0x41233f,null));};exports[_0x5281('0x7f')]=function(_0x3ff5fd,_0x363c55,_0x5bda2e){return db['Team'][_0x5281('0x53')]({'where':{'id':_0x3ff5fd[_0x5281('0x43')][_0x5281('0x80')]},'attributes':['id'],'include':[{'model':db[_0x5281('0x6a')],'as':_0x5281('0x78'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x363c55,null))[_0x5281('0x37')](function(_0x36337a){var _0xc29475=_[_0x5281('0x3d')](_0x36337a,'id');var _0x416f33=[];var _0x20a5ba=[];var _0x45127b=squel[_0x5281('0x81')]();_0x45127b[_0x5281('0x82')](_0x5281('0x83'))[_0x5281('0x84')]('team_has_chat_queues','tq')[_0x5281('0x85')]('user_has_teams','ut',_0x5281('0x86'))[_0x5281('0x4d')](_0x5281('0x87'),_0x3ff5fd[_0x5281('0x64')]['id']);for(var _0x39cf45=0x0;_0x39cf45<_0x36337a[_0x5281('0x48')];_0x39cf45+=0x1){let _0x2b413d=_0x36337a[_0x39cf45];for(var _0x200c2e=0x0;_0x200c2e<_0x2b413d[_0x5281('0x78')]['length'];_0x200c2e+=0x1){let _0x280d59=_0x2b413d[_0x5281('0x78')][_0x200c2e];var _0x8c762b=_0x45127b[_0x5281('0x88')]();_0x8c762b[_0x5281('0x4d')](_0x5281('0x89'),_0x280d59['id']);_0x20a5ba['push'](db[_0x5281('0x79')][_0x5281('0x43')](_0x8c762b[_0x5281('0x8a')](),{'type':db[_0x5281('0x79')][_0x5281('0x8b')][_0x5281('0x8c')]})['then'](function(_0x26b886){if(_0x26b886[_0x5281('0x48')]===0x1){return _0x280d59['id'];}else{var _0x361fd3=_[_0x5281('0x8d')](_[_0x5281('0x3d')](_0x26b886,_0x5281('0x8e')),function(_0x34fdf4){return _[_0x5281('0x8f')](_0xc29475,_0x34fdf4);});if(_0x361fd3){return _0x280d59['id'];}}}));}}return BPromise[_0x5281('0x90')](_0x20a5ba)[_0x5281('0x37')](function(_0x16cc9c){_0x416f33=_(_0x416f33)[_0x5281('0x91')](_0x16cc9c)[_0x5281('0x92')]()[_0x5281('0x93')]();return db[_0x5281('0x3e')][_0x5281('0x58')]({'where':{'id':_0x3ff5fd[_0x5281('0x64')]['id']}})[_0x5281('0x37')](function(_0x1727ee){return db[_0x5281('0x79')][_0x5281('0x7a')](function(_0x1ca0ed){return _0x1727ee['removeTeams'](_0x3ff5fd[_0x5281('0x43')][_0x5281('0x80')],{'transaction':_0x1ca0ed})[_0x5281('0x37')](function(){if(!_[_0x5281('0x94')](_0x416f33)){return _0x1727ee[_0x5281('0x95')](_0x416f33,{'transaction':_0x1ca0ed});}})[_0x5281('0x37')](function(){_0x416f33['forEach'](function(_0x1b1950){socket['emit']('userChatQueue:remove',{'UserId':_0x1b1950,'ChatQueueId':_0x1727ee['id']});});});});});});})[_0x5281('0x37')](respondWithStatusCode(_0x363c55,null))['catch'](handleError(_0x363c55,null));};exports[_0x5281('0x96')]=function(_0x1dae0f,_0x570609,_0x21e2d9){return db[_0x5281('0x3e')][_0x5281('0x58')]({'where':{'id':_0x1dae0f[_0x5281('0x64')]['id']}})[_0x5281('0x37')](handleEntityNotFound(_0x570609,null))[_0x5281('0x37')](function(_0x4e8268){if(_0x4e8268){return _0x4e8268[_0x5281('0x96')](_0x1dae0f[_0x5281('0x63')][_0x5281('0x80')],_[_0x5281('0x97')](_0x1dae0f['body'],[_0x5281('0x80'),'id'])||{})['spread'](function(_0x340421){for(var _0xadca8e=0x0;_0xadca8e<_0x1dae0f[_0x5281('0x63')][_0x5281('0x80')][_0x5281('0x48')];_0xadca8e+=0x1){socket[_0x5281('0x7d')](_0x5281('0x7e'),{'UserId':Number(_0x1dae0f[_0x5281('0x63')][_0x5281('0x80')][_0xadca8e]),'ChatQueueId':Number(_0x1dae0f['params']['id'])});}return _0x340421;});}})[_0x5281('0x37')](respondWithResult(_0x570609,null))['catch'](handleError(_0x570609,null));};exports[_0x5281('0x95')]=function(_0x4f7820,_0x59655d,_0x18b1f5){return db[_0x5281('0x3e')][_0x5281('0x58')]({'where':{'id':_0x4f7820['params']['id']}})[_0x5281('0x37')](handleEntityNotFound(_0x59655d,null))['then'](function(_0x58922b){if(_0x58922b){return _0x58922b[_0x5281('0x95')](_0x4f7820['query'][_0x5281('0x80')])[_0x5281('0x37')](function(){if(_[_0x5281('0x98')](_0x4f7820[_0x5281('0x43')][_0x5281('0x80')])){for(var _0x5b92d3=0x0;_0x5b92d3<_0x4f7820[_0x5281('0x43')]['ids']['length'];_0x5b92d3+=0x1){socket[_0x5281('0x7d')](_0x5281('0x99'),{'UserId':Number(_0x4f7820[_0x5281('0x43')]['ids'][_0x5b92d3]),'ChatQueueId':Number(_0x4f7820[_0x5281('0x64')]['id'])});}}else{socket['emit'](_0x5281('0x99'),{'UserId':Number(_0x4f7820[_0x5281('0x43')]['ids']),'ChatQueueId':Number(_0x4f7820[_0x5281('0x64')]['id'])});}});}})[_0x5281('0x37')](respondWithStatusCode(_0x59655d,null))[_0x5281('0x59')](handleError(_0x59655d,null));};exports['getAgents']=function(_0xd5d91c,_0xc3f13,_0x5b14e6){var _0x837b38={};var _0x5e772e={};var _0x3a15f5;var _0x15301b;return db['ChatQueue'][_0x5281('0x67')]({'where':{'id':_0xd5d91c[_0x5281('0x64')]['id']}})[_0x5281('0x37')](handleEntityNotFound(_0xc3f13,null))[_0x5281('0x37')](function(_0x39496c){if(_0x39496c){_0x3a15f5=_0x39496c;_0x5e772e['model']=_[_0x5281('0x56')](db[_0x5281('0x6a')]['rawAttributes']);_0x5e772e[_0x5281('0x43')]=_[_0x5281('0x56')](_0xd5d91c['query']);_0x5e772e[_0x5281('0x44')]=_[_0x5281('0x45')](_0x5e772e[_0x5281('0x42')],_0x5e772e[_0x5281('0x43')]);_0x837b38[_0x5281('0x47')]=_[_0x5281('0x45')](_0x5e772e['model'],qs[_0x5281('0x46')](_0xd5d91c[_0x5281('0x43')][_0x5281('0x46')]));_0x837b38[_0x5281('0x47')]=_0x837b38[_0x5281('0x47')]['length']?_0x837b38['attributes']:_0x5e772e['model'];_0x837b38[_0x5281('0x4b')]=qs['sort'](_0xd5d91c['query']['sort']);_0x837b38[_0x5281('0x4d')]=qs[_0x5281('0x44')](_[_0x5281('0x4e')](_0xd5d91c[_0x5281('0x43')],_0x5e772e[_0x5281('0x44')]));if(_0xd5d91c['query']['filter']){_0x837b38[_0x5281('0x4d')]=_[_0x5281('0x50')](_0x837b38[_0x5281('0x4d')],{'$or':_[_0x5281('0x3d')](_0x837b38[_0x5281('0x47')],function(_0xe9cab7){var _0x170ab9={};_0x170ab9[_0xe9cab7]={'$like':'%'+_0xd5d91c[_0x5281('0x43')][_0x5281('0x4f')]+'%'};return _0x170ab9;})});}_0x837b38=_['merge']({},_0x837b38,_0xd5d91c[_0x5281('0x57')]);return _0x3a15f5['getAgents'](_0x837b38);}})[_0x5281('0x37')](function(_0x4117eb){if(_0x4117eb){_0x15301b=_0x4117eb[_0x5281('0x48')];if(!_0xd5d91c[_0x5281('0x43')]['hasOwnProperty'](_0x5281('0x4a'))){_0x837b38['limit']=qs[_0x5281('0x30')](_0xd5d91c[_0x5281('0x43')]['limit']);_0x837b38[_0x5281('0x2d')]=qs[_0x5281('0x2d')](_0xd5d91c[_0x5281('0x43')][_0x5281('0x2d')]);}return _0x3a15f5[_0x5281('0x9a')](_0x837b38);}})[_0x5281('0x37')](function(_0x3cb2d7){if(_0x3cb2d7){return _0x3cb2d7?{'count':_0x15301b,'rows':_0x3cb2d7}:null;}})['then'](respondWithResult(_0xc3f13,null))['catch'](handleError(_0xc3f13,null));};