Built motion from commit 19a84241.|2.5.34
[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 _0x77a9=['api','../../config/utils','../../config/environment','../../config/license/util','defaults','redis','localhost','./chatQueue.socket','jayson/promise','client','http','ChatQueue,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','catch','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','save','destroy','then','get','UserProfileResource','stack','name','send','index','map','fieldName','type','key','query','keys','model','attributes','intersection','nolimit','order','sort','where','filters','pick','merge','VIRTUAL','filter','options','ChatQueue','includeAll','include','findAll','rows','show','params','rawAttributes','fields','length','find','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','ChatQueues','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','UserChatQueue','hasOwnProperty','ChatQueueId','User','findAndCountAll','UserId','agent','chatPause','updatedAt','createdAt','%s/%s','findOne','Team','getTeams','addTeams','body','ids','Agents','voicePause','interface','flatMap','transaction','each','forEach','userChatQueue:save','removeTeams','select','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','sequelize','toString','QueryTypes','TeamId','includes','all','union','isEmpty','removeAgents','emit','userChatQueue:remove','addAgents','omit','spread','isArray','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger'];(function(_0x960006,_0x23a842){var _0x46a9e5=function(_0xcf5a5d){while(--_0xcf5a5d){_0x960006['push'](_0x960006['shift']());}};_0x46a9e5(++_0x23a842);}(_0x77a9,0x121));var _0x977a=function(_0x4b67a2,_0x112225){_0x4b67a2=_0x4b67a2-0x0;var _0x707b71=_0x77a9[_0x4b67a2];return _0x707b71;};'use strict';var emlformat=require(_0x977a('0x0'));var rimraf=require(_0x977a('0x1'));var zipdir=require(_0x977a('0x2'));var jsonpatch=require(_0x977a('0x3'));var rp=require('request-promise');var moment=require(_0x977a('0x4'));var BPromise=require(_0x977a('0x5'));var Mustache=require(_0x977a('0x6'));var util=require(_0x977a('0x7'));var path=require(_0x977a('0x8'));var sox=require(_0x977a('0x9'));var csv=require(_0x977a('0xa'));var ejs=require(_0x977a('0xb'));var fs=require('fs');var fs_extra=require(_0x977a('0xc'));var _=require(_0x977a('0xd'));var squel=require(_0x977a('0xe'));var crypto=require(_0x977a('0xf'));var jsforce=require(_0x977a('0x10'));var deskjs=require(_0x977a('0x11'));var toCsv=require(_0x977a('0xa'));var querystring=require(_0x977a('0x12'));var Papa=require(_0x977a('0x13'));var Redis=require(_0x977a('0x14'));var authService=require(_0x977a('0x15'));var qs=require('../../components/parsers/qs');var as=require(_0x977a('0x16'));var hardwareService=require(_0x977a('0x17'));var logger=require(_0x977a('0x18'))(_0x977a('0x19'));var utils=require(_0x977a('0x1a'));var config=require(_0x977a('0x1b'));var licenseUtil=require(_0x977a('0x1c'));var db=require('../../mysqldb')['db'];config['redis']=_[_0x977a('0x1d')](config[_0x977a('0x1e')],{'host':_0x977a('0x1f'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x977a('0x1e')]));require(_0x977a('0x20'))['register'](socket);var jayson=require(_0x977a('0x21'));var client=jayson[_0x977a('0x22')][_0x977a('0x23')]({'port':0x232a});function respondWithRpcPromise(_0x3e7e9a,_0x2eb00,_0x13007c,_0x22a078){return new BPromise(function(_0x471039,_0x3159ac){var _0x33332b=_0x22a078||client;return _0x33332b['request'](_0x3e7e9a,_0x13007c)['then'](function(_0x370763){logger['info'](_0x977a('0x24'),_0x2eb00,'request\x20sent');logger['debug']('ChatQueue,\x20%s,\x20%s,\x20%s',_0x2eb00,_0x977a('0x25'),JSON[_0x977a('0x26')](_0x370763));if(_0x370763[_0x977a('0x27')]){if(_0x370763['error'][_0x977a('0x28')]===0x1f4){logger[_0x977a('0x27')]('ChatQueue,\x20%s,\x20%s',_0x2eb00,_0x370763[_0x977a('0x27')][_0x977a('0x29')]);return _0x3159ac(_0x370763['error'][_0x977a('0x29')]);}logger['error'](_0x977a('0x24'),_0x2eb00,_0x370763[_0x977a('0x27')][_0x977a('0x29')]);return _0x471039(_0x370763[_0x977a('0x27')][_0x977a('0x29')]);}else{logger[_0x977a('0x2a')](_0x977a('0x24'),_0x2eb00,'request\x20sent');_0x471039(_0x370763[_0x977a('0x2b')][_0x977a('0x29')]);}})[_0x977a('0x2c')](function(_0xee1073){logger[_0x977a('0x27')](_0x977a('0x24'),_0x2eb00,_0xee1073);_0x3159ac(_0xee1073);});});}function respondWithStatusCode(_0xfafb7c,_0x59d8fc){_0x59d8fc=_0x59d8fc||0xcc;return function(_0x49d984){if(_0x49d984){return _0xfafb7c[_0x977a('0x2d')](_0x59d8fc);}return _0xfafb7c[_0x977a('0x2e')](_0x59d8fc)[_0x977a('0x2f')]();};}function respondWithResult(_0x1a6d46,_0x544027){_0x544027=_0x544027||0xc8;return function(_0x2ff574){if(_0x2ff574){return _0x1a6d46[_0x977a('0x2e')](_0x544027)[_0x977a('0x30')](_0x2ff574);}};}function respondWithFilteredResult(_0x21536d,_0x130812){return function(_0xf3a8bb){if(_0xf3a8bb){var _0x1f15a1=typeof _0x130812[_0x977a('0x31')]==='undefined'&&typeof _0x130812[_0x977a('0x32')]===_0x977a('0x33');var _0x8b3614=_0xf3a8bb['count'];var _0x156a37=_0x1f15a1?0x0:_0x130812[_0x977a('0x31')];var _0x49aff9=_0x1f15a1?_0xf3a8bb[_0x977a('0x34')]:_0x130812[_0x977a('0x31')]+_0x130812[_0x977a('0x32')];var _0x178cff;if(_0x49aff9>=_0x8b3614){_0x49aff9=_0x8b3614;_0x178cff=0xc8;}else{_0x178cff=0xce;}_0x21536d['status'](_0x178cff);return _0x21536d[_0x977a('0x35')](_0x977a('0x36'),_0x156a37+'-'+_0x49aff9+'/'+_0x8b3614)[_0x977a('0x30')](_0xf3a8bb);}return null;};}function patchUpdates(_0x2b9e67){return function(_0x102a30){try{jsonpatch[_0x977a('0x37')](_0x102a30,_0x2b9e67,!![]);}catch(_0x4d7370){return BPromise['reject'](_0x4d7370);}return _0x102a30[_0x977a('0x38')]();};}function saveUpdates(_0x37e60c,_0x4a9a94){return function(_0x56df2d){if(_0x56df2d){return _0x56df2d['update'](_0x37e60c)['then'](function(_0x1f6c20){return _0x1f6c20;});}return null;};}function removeEntity(_0x50be2d,_0x51e851){return function(_0x1b1b07){if(_0x1b1b07){return _0x1b1b07[_0x977a('0x39')]()[_0x977a('0x3a')](function(){var _0x333ef4=_0x1b1b07[_0x977a('0x3b')]({'plain':!![]});var _0x3c17a3='ChatQueues';return db[_0x977a('0x3c')]['destroy']({'where':{'type':_0x3c17a3,'resourceId':_0x333ef4['id']}})[_0x977a('0x3a')](function(){return _0x1b1b07;});})['then'](function(){_0x50be2d[_0x977a('0x2e')](0xcc)[_0x977a('0x2f')]();});}};}function handleEntityNotFound(_0x412264,_0x46ce1a){return function(_0x373ac4){if(!_0x373ac4){_0x412264[_0x977a('0x2d')](0x194);}return _0x373ac4;};}function handleError(_0x188cfd,_0x5ac5a1){_0x5ac5a1=_0x5ac5a1||0x1f4;return function(_0x6c99d3){logger[_0x977a('0x27')](_0x6c99d3[_0x977a('0x3d')]);if(_0x6c99d3[_0x977a('0x3e')]){delete _0x6c99d3[_0x977a('0x3e')];}_0x188cfd[_0x977a('0x2e')](_0x5ac5a1)[_0x977a('0x3f')](_0x6c99d3);};}exports[_0x977a('0x40')]=function(_0x64af02,_0x2d5b63){var _0x2bc6a4={},_0x1801b4={},_0xcc3695={'count':0x0,'rows':[]};var _0x320652=_[_0x977a('0x41')](db['ChatQueue']['rawAttributes'],function(_0x31cbab){return{'name':_0x31cbab[_0x977a('0x42')],'type':_0x31cbab[_0x977a('0x43')][_0x977a('0x44')]};});_0x1801b4['model']=_[_0x977a('0x41')](_0x320652,_0x977a('0x3e'));_0x1801b4[_0x977a('0x45')]=_[_0x977a('0x46')](_0x64af02[_0x977a('0x45')]);_0x1801b4['filters']=_['intersection'](_0x1801b4[_0x977a('0x47')],_0x1801b4[_0x977a('0x45')]);_0x2bc6a4[_0x977a('0x48')]=_[_0x977a('0x49')](_0x1801b4[_0x977a('0x47')],qs['fields'](_0x64af02['query']['fields']));_0x2bc6a4[_0x977a('0x48')]=_0x2bc6a4[_0x977a('0x48')]['length']?_0x2bc6a4[_0x977a('0x48')]:_0x1801b4[_0x977a('0x47')];if(!_0x64af02[_0x977a('0x45')]['hasOwnProperty'](_0x977a('0x4a'))){_0x2bc6a4[_0x977a('0x32')]=qs[_0x977a('0x32')](_0x64af02[_0x977a('0x45')]['limit']);_0x2bc6a4[_0x977a('0x31')]=qs[_0x977a('0x31')](_0x64af02[_0x977a('0x45')][_0x977a('0x31')]);}_0x2bc6a4[_0x977a('0x4b')]=qs[_0x977a('0x4c')](_0x64af02[_0x977a('0x45')][_0x977a('0x4c')]);_0x2bc6a4[_0x977a('0x4d')]=qs[_0x977a('0x4e')](_[_0x977a('0x4f')](_0x64af02[_0x977a('0x45')],_0x1801b4[_0x977a('0x4e')]),_0x320652);if(_0x64af02[_0x977a('0x45')]['filter']){_0x2bc6a4[_0x977a('0x4d')]=_[_0x977a('0x50')](_0x2bc6a4['where'],{'$or':_[_0x977a('0x41')](_0x320652,function(_0x5936f1){if(_0x5936f1[_0x977a('0x43')]!==_0x977a('0x51')){var _0x5d514a={};_0x5d514a[_0x5936f1[_0x977a('0x3e')]]={'$like':'%'+_0x64af02['query'][_0x977a('0x52')]+'%'};return _0x5d514a;}})});}_0x2bc6a4=_['merge']({},_0x2bc6a4,_0x64af02[_0x977a('0x53')]);var _0xd850de={'where':_0x2bc6a4[_0x977a('0x4d')]};return db[_0x977a('0x54')][_0x977a('0x34')](_0xd850de)['then'](function(_0x29a838){_0xcc3695['count']=_0x29a838;if(_0x64af02[_0x977a('0x45')][_0x977a('0x55')]){_0x2bc6a4[_0x977a('0x56')]=[{'all':!![]}];}return db[_0x977a('0x54')][_0x977a('0x57')](_0x2bc6a4);})[_0x977a('0x3a')](function(_0x15bad6){_0xcc3695[_0x977a('0x58')]=_0x15bad6;return _0xcc3695;})['then'](respondWithFilteredResult(_0x2d5b63,_0x2bc6a4))[_0x977a('0x2c')](handleError(_0x2d5b63,null));};exports[_0x977a('0x59')]=function(_0x1dd5d6,_0x4df0ec){var _0x15e021={'raw':!![],'where':{'id':_0x1dd5d6[_0x977a('0x5a')]['id']}},_0x3ed6ad={};_0x3ed6ad[_0x977a('0x47')]=_['keys'](db[_0x977a('0x54')][_0x977a('0x5b')]);_0x3ed6ad[_0x977a('0x45')]=_[_0x977a('0x46')](_0x1dd5d6['query']);_0x3ed6ad[_0x977a('0x4e')]=_['intersection'](_0x3ed6ad[_0x977a('0x47')],_0x3ed6ad[_0x977a('0x45')]);_0x15e021['attributes']=_[_0x977a('0x49')](_0x3ed6ad[_0x977a('0x47')],qs[_0x977a('0x5c')](_0x1dd5d6[_0x977a('0x45')][_0x977a('0x5c')]));_0x15e021[_0x977a('0x48')]=_0x15e021[_0x977a('0x48')][_0x977a('0x5d')]?_0x15e021[_0x977a('0x48')]:_0x3ed6ad[_0x977a('0x47')];if(_0x1dd5d6[_0x977a('0x45')][_0x977a('0x55')]){_0x15e021[_0x977a('0x56')]=[{'all':!![]}];}_0x15e021=_[_0x977a('0x50')]({},_0x15e021,_0x1dd5d6[_0x977a('0x53')]);return db[_0x977a('0x54')][_0x977a('0x5e')](_0x15e021)[_0x977a('0x3a')](handleEntityNotFound(_0x4df0ec,null))[_0x977a('0x3a')](respondWithResult(_0x4df0ec,null))[_0x977a('0x2c')](handleError(_0x4df0ec,null));};exports[_0x977a('0x5f')]=function(_0x1f17b2,_0x40f485){return db[_0x977a('0x54')][_0x977a('0x5f')](_0x1f17b2['body'],{})['then'](function(_0x197aaf){var _0x4845e4=_0x1f17b2['user'][_0x977a('0x3b')]({'plain':!![]});if(!_0x4845e4)throw new Error(_0x977a('0x60'));if(_0x4845e4[_0x977a('0x61')]===_0x977a('0x62')){var _0x2ae6ea=_0x197aaf[_0x977a('0x3b')]({'plain':!![]});var _0x30dba4=_0x977a('0x63');return db['UserProfileSection']['find']({'where':{'name':_0x30dba4,'userProfileId':_0x4845e4[_0x977a('0x64')]},'raw':!![]})[_0x977a('0x3a')](function(_0x4a6f52){if(_0x4a6f52&&_0x4a6f52['autoAssociation']===0x0){return db['UserProfileResource']['create']({'name':_0x2ae6ea['name'],'resourceId':_0x2ae6ea['id'],'type':_0x4a6f52['name'],'sectionId':_0x4a6f52['id']},{})[_0x977a('0x3a')](function(){return _0x197aaf;});}else{return _0x197aaf;}})[_0x977a('0x2c')](function(_0x26002f){logger['error'](_0x977a('0x65'),_0x26002f);throw _0x26002f;});}return _0x197aaf;})[_0x977a('0x3a')](respondWithResult(_0x40f485,0xc9))[_0x977a('0x2c')](handleError(_0x40f485,null));};exports['update']=function(_0x48a9a8,_0x26e1f0){if(_0x48a9a8['body']['id']){delete _0x48a9a8['body']['id'];}return db['ChatQueue'][_0x977a('0x5e')]({'where':{'id':_0x48a9a8[_0x977a('0x5a')]['id']}})[_0x977a('0x3a')](handleEntityNotFound(_0x26e1f0,null))[_0x977a('0x3a')](saveUpdates(_0x48a9a8['body'],null))[_0x977a('0x3a')](respondWithResult(_0x26e1f0,null))['catch'](handleError(_0x26e1f0,null));};exports[_0x977a('0x39')]=function(_0x7c8441,_0x34fbb6){return db[_0x977a('0x54')][_0x977a('0x5e')]({'where':{'id':_0x7c8441[_0x977a('0x5a')]['id']}})[_0x977a('0x3a')](handleEntityNotFound(_0x34fbb6,null))[_0x977a('0x3a')](removeEntity(_0x34fbb6,null))['catch'](handleError(_0x34fbb6,null));};exports[_0x977a('0x66')]=function(_0x242ced,_0x238bc9){return db['ChatQueue']['describe']()[_0x977a('0x3a')](respondWithResult(_0x238bc9,null))[_0x977a('0x2c')](handleError(_0x238bc9,null));};exports[_0x977a('0x67')]=function(_0xa3daa4,_0x58a5ee,_0x10f8b3){var _0x8d21df={'raw':!![],'where':{}},_0x242320={},_0x12ff41;return db[_0x977a('0x54')]['findOne']({'where':{'id':_0xa3daa4[_0x977a('0x5a')]['id']}})[_0x977a('0x3a')](handleEntityNotFound(_0x58a5ee,null))[_0x977a('0x3a')](function(_0x2de90){if(_0x2de90){_0x12ff41=_0x2de90[_0x977a('0x3b')]({'plain':!![]});_0x242320[_0x977a('0x47')]=_[_0x977a('0x46')](db[_0x977a('0x68')][_0x977a('0x5b')]);_0x242320[_0x977a('0x45')]=_[_0x977a('0x46')](_0xa3daa4['query']);_0x242320[_0x977a('0x4e')]=_[_0x977a('0x49')](_0x242320[_0x977a('0x47')],_0x242320[_0x977a('0x45')]);_0x8d21df[_0x977a('0x48')]=_['intersection'](_0x242320[_0x977a('0x47')],qs[_0x977a('0x5c')](_0xa3daa4[_0x977a('0x45')][_0x977a('0x5c')]));_0x8d21df[_0x977a('0x48')]=_0x8d21df[_0x977a('0x48')][_0x977a('0x5d')]?_0x8d21df[_0x977a('0x48')]:_0x242320[_0x977a('0x47')];if(!_0xa3daa4[_0x977a('0x45')][_0x977a('0x69')](_0x977a('0x4a'))){_0x8d21df[_0x977a('0x32')]=qs['limit'](_0xa3daa4[_0x977a('0x45')]['limit']);_0x8d21df[_0x977a('0x31')]=qs[_0x977a('0x31')](_0xa3daa4['query'][_0x977a('0x31')]);}_0x8d21df[_0x977a('0x4b')]=qs[_0x977a('0x4c')](_0xa3daa4[_0x977a('0x45')][_0x977a('0x4c')]);_0x8d21df['where']=qs[_0x977a('0x4e')](_[_0x977a('0x4f')](_0xa3daa4[_0x977a('0x45')],_0x242320[_0x977a('0x4e')]));_0x8d21df['where'][_0x977a('0x6a')]=_0x2de90['id'];if(_0xa3daa4['query']['filter']){_0x8d21df[_0x977a('0x4d')]=_[_0x977a('0x50')](_0x8d21df['where'],{'$or':_['map'](_0x8d21df[_0x977a('0x48')],function(_0x53eec8){var _0x319553={};_0x319553[_0x53eec8]={'$like':'%'+_0xa3daa4[_0x977a('0x45')][_0x977a('0x52')]+'%'};return _0x319553;})});}_0x8d21df=_[_0x977a('0x50')]({},_0x8d21df,_0xa3daa4[_0x977a('0x53')]);return db['UserChatQueue'][_0x977a('0x57')](_0x8d21df);}})[_0x977a('0x3a')](function(_0x4d5f88){if(_0x4d5f88){return db[_0x977a('0x6b')][_0x977a('0x6c')]({'where':{'id':_[_0x977a('0x41')](_0x4d5f88,_0x977a('0x6d')),'role':_0x977a('0x6e')},'attributes':['id','name',_0x977a('0x6f'),_0x977a('0x70'),_0x977a('0x71')]});}})[_0x977a('0x3a')](function(_0x1fa6e1){if(_0x1fa6e1){return{'count':_0x1fa6e1[_0x977a('0x34')],'rows':_['map'](_0x1fa6e1[_0x977a('0x58')],function(_0x3cca95){return{'membername':_0x3cca95[_0x977a('0x3e')],'UserId':_0x3cca95['id'],'queue_name':_0x12ff41[_0x977a('0x3e')],'ChatQueueId':_0x12ff41['id'],'interface':util['format'](_0x977a('0x72'),'SIP',_0x3cca95[_0x977a('0x3e')]),'penalty':0x0,'paused':_0x3cca95[_0x977a('0x6f')],'createdAt':_0x3cca95[_0x977a('0x71')],'updatedAt':_0x3cca95[_0x977a('0x70')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x58a5ee,_0x8d21df))[_0x977a('0x2c')](handleError(_0x58a5ee,null));};exports['getTeams']=function(_0x576db6,_0x3b34bd,_0x3a6704){var _0x419e27={};var _0xe4772a={};var _0x2fd8e4;var _0xbb662e;return db[_0x977a('0x54')][_0x977a('0x73')]({'where':{'id':_0x576db6[_0x977a('0x5a')]['id']}})[_0x977a('0x3a')](handleEntityNotFound(_0x3b34bd,null))[_0x977a('0x3a')](function(_0x47da86){if(_0x47da86){_0x2fd8e4=_0x47da86;_0xe4772a['model']=_[_0x977a('0x46')](db[_0x977a('0x74')][_0x977a('0x5b')]);_0xe4772a[_0x977a('0x45')]=_[_0x977a('0x46')](_0x576db6[_0x977a('0x45')]);_0xe4772a[_0x977a('0x4e')]=_[_0x977a('0x49')](_0xe4772a[_0x977a('0x47')],_0xe4772a['query']);_0x419e27['attributes']=_[_0x977a('0x49')](_0xe4772a[_0x977a('0x47')],qs[_0x977a('0x5c')](_0x576db6[_0x977a('0x45')]['fields']));_0x419e27[_0x977a('0x48')]=_0x419e27['attributes'][_0x977a('0x5d')]?_0x419e27[_0x977a('0x48')]:_0xe4772a[_0x977a('0x47')];_0x419e27['order']=qs[_0x977a('0x4c')](_0x576db6[_0x977a('0x45')][_0x977a('0x4c')]);_0x419e27[_0x977a('0x4d')]=qs[_0x977a('0x4e')](_[_0x977a('0x4f')](_0x576db6[_0x977a('0x45')],_0xe4772a[_0x977a('0x4e')]));if(_0x576db6[_0x977a('0x45')]['filter']){_0x419e27[_0x977a('0x4d')]=_['merge'](_0x419e27[_0x977a('0x4d')],{'$or':_['map'](_0x419e27[_0x977a('0x48')],function(_0x4ba6ed){var _0xf5bcd5={};_0xf5bcd5[_0x4ba6ed]={'$like':'%'+_0x576db6['query'][_0x977a('0x52')]+'%'};return _0xf5bcd5;})});}_0x419e27=_[_0x977a('0x50')]({},_0x419e27,_0x576db6[_0x977a('0x53')]);return _0x2fd8e4[_0x977a('0x75')](_0x419e27);}})[_0x977a('0x3a')](function(_0x4f041a){if(_0x4f041a){_0xbb662e=_0x4f041a[_0x977a('0x5d')];if(!_0x576db6[_0x977a('0x45')][_0x977a('0x69')](_0x977a('0x4a'))){_0x419e27['limit']=qs[_0x977a('0x32')](_0x576db6[_0x977a('0x45')][_0x977a('0x32')]);_0x419e27[_0x977a('0x31')]=qs[_0x977a('0x31')](_0x576db6[_0x977a('0x45')]['offset']);}return _0x2fd8e4[_0x977a('0x75')](_0x419e27);}})[_0x977a('0x3a')](function(_0x23d58c){if(_0x23d58c){return _0x23d58c?{'count':_0xbb662e,'rows':_0x23d58c}:null;}})[_0x977a('0x3a')](respondWithResult(_0x3b34bd,null))[_0x977a('0x2c')](handleError(_0x3b34bd,null));};exports[_0x977a('0x76')]=function(_0x1411e9,_0x3184f3,_0x363be4){var _0x2f3559=_0x1411e9[_0x977a('0x77')][_0x977a('0x78')];return db[_0x977a('0x74')][_0x977a('0x57')]({'where':{'id':_0x2f3559},'attributes':['id'],'include':[{'model':db[_0x977a('0x6b')],'as':_0x977a('0x79'),'attributes':['id','name','online',_0x977a('0x7a'),_0x977a('0x7b')],'raw':!![]}]})[_0x977a('0x3a')](function(_0x50c3db){if(_0x50c3db){var _0xf1316e=_[_0x977a('0x7c')](_0x50c3db,function(_0x3fa9b0){var _0x15eca3=_0x3fa9b0[_0x977a('0x3b')]({'plain':!![]});return _0x15eca3[_0x977a('0x79')];});return db[_0x977a('0x54')][_0x977a('0x5e')]({'where':{'id':_0x1411e9[_0x977a('0x5a')]['id']}})[_0x977a('0x3a')](function(_0x47f5f8){return db['sequelize'][_0x977a('0x7d')](function(_0x133e51){return _0x47f5f8[_0x977a('0x76')](_0x2f3559,{'transaction':_0x133e51})['then'](function(){return BPromise[_0x977a('0x7e')](_0xf1316e,function(_0x5743f4){return db[_0x977a('0x68')]['findOrCreate']({'where':{'UserId':_0x5743f4['id'],'ChatQueueId':_0x1411e9['params']['id']},'transaction':_0x133e51});});})[_0x977a('0x3a')](function(){_0xf1316e[_0x977a('0x7f')](function(_0x4ea3e4){socket['emit'](_0x977a('0x80'),{'UserId':_0x4ea3e4['id'],'ChatQueueId':_0x47f5f8['id']});});});});});}})[_0x977a('0x3a')](respondWithStatusCode(_0x3184f3,null))[_0x977a('0x2c')](handleError(_0x3184f3,null));};exports[_0x977a('0x81')]=function(_0x23f4d2,_0x4f4ba0,_0xc49a52){return db['Team']['findAll']({'where':{'id':_0x23f4d2[_0x977a('0x45')][_0x977a('0x78')]},'attributes':['id'],'include':[{'model':db[_0x977a('0x6b')],'as':_0x977a('0x79'),'attributes':['id'],'raw':!![]}]})[_0x977a('0x3a')](handleEntityNotFound(_0x4f4ba0,null))[_0x977a('0x3a')](function(_0x3cff70){var _0x39f5f4=_[_0x977a('0x41')](_0x3cff70,'id');var _0x46570b=[];var _0x32bf2f=[];var _0x34bba7=squel[_0x977a('0x82')]();_0x34bba7['field'](_0x977a('0x83'))[_0x977a('0x84')](_0x977a('0x85'),'tq')[_0x977a('0x86')](_0x977a('0x87'),'ut',_0x977a('0x88'))[_0x977a('0x4d')](_0x977a('0x89'),_0x23f4d2['params']['id']);for(var _0x1330f2=0x0;_0x1330f2<_0x3cff70[_0x977a('0x5d')];_0x1330f2+=0x1){let _0x380cc7=_0x3cff70[_0x1330f2];for(var _0x13cc34=0x0;_0x13cc34<_0x380cc7['Agents']['length'];_0x13cc34+=0x1){let _0xee2336=_0x380cc7['Agents'][_0x13cc34];var _0x5186de=_0x34bba7[_0x977a('0x8a')]();_0x5186de['where'](_0x977a('0x8b'),_0xee2336['id']);_0x32bf2f[_0x977a('0x8c')](db[_0x977a('0x8d')][_0x977a('0x45')](_0x5186de[_0x977a('0x8e')](),{'type':db[_0x977a('0x8d')][_0x977a('0x8f')]['SELECT']})[_0x977a('0x3a')](function(_0x4b20d9){if(_0x4b20d9[_0x977a('0x5d')]===0x1){return _0xee2336['id'];}else{var _0x38681f=_['every'](_[_0x977a('0x41')](_0x4b20d9,_0x977a('0x90')),function(_0xe4c250){return _[_0x977a('0x91')](_0x39f5f4,_0xe4c250);});if(_0x38681f){return _0xee2336['id'];}}}));}}return BPromise[_0x977a('0x92')](_0x32bf2f)[_0x977a('0x3a')](function(_0x377ed1){_0x46570b=_(_0x46570b)[_0x977a('0x93')](_0x377ed1)['compact']()['value']();return db[_0x977a('0x54')]['find']({'where':{'id':_0x23f4d2['params']['id']}})['then'](function(_0x15d5ef){return db[_0x977a('0x8d')][_0x977a('0x7d')](function(_0x5e1714){return _0x15d5ef[_0x977a('0x81')](_0x23f4d2['query'][_0x977a('0x78')],{'transaction':_0x5e1714})[_0x977a('0x3a')](function(){if(!_[_0x977a('0x94')](_0x46570b)){return _0x15d5ef[_0x977a('0x95')](_0x46570b,{'transaction':_0x5e1714});}})[_0x977a('0x3a')](function(){_0x46570b[_0x977a('0x7f')](function(_0x3cbf61){socket[_0x977a('0x96')](_0x977a('0x97'),{'UserId':_0x3cbf61,'ChatQueueId':_0x15d5ef['id']});});});});});});})[_0x977a('0x3a')](respondWithStatusCode(_0x4f4ba0,null))[_0x977a('0x2c')](handleError(_0x4f4ba0,null));};exports[_0x977a('0x98')]=function(_0x306e7a,_0x4804db,_0x3bb59e){return db[_0x977a('0x54')][_0x977a('0x5e')]({'where':{'id':_0x306e7a[_0x977a('0x5a')]['id']}})[_0x977a('0x3a')](handleEntityNotFound(_0x4804db,null))[_0x977a('0x3a')](function(_0x93c1c4){if(_0x93c1c4){return _0x93c1c4['addAgents'](_0x306e7a[_0x977a('0x77')][_0x977a('0x78')],_[_0x977a('0x99')](_0x306e7a['body'],['ids','id'])||{})[_0x977a('0x9a')](function(_0x18e114){for(var _0x18232a=0x0;_0x18232a<_0x306e7a[_0x977a('0x77')]['ids'][_0x977a('0x5d')];_0x18232a+=0x1){socket[_0x977a('0x96')](_0x977a('0x80'),{'UserId':Number(_0x306e7a[_0x977a('0x77')]['ids'][_0x18232a]),'ChatQueueId':Number(_0x306e7a['params']['id'])});}return _0x18e114;});}})['then'](respondWithResult(_0x4804db,null))['catch'](handleError(_0x4804db,null));};exports[_0x977a('0x95')]=function(_0x9f1954,_0x269b48,_0x68e9ad){return db[_0x977a('0x54')][_0x977a('0x5e')]({'where':{'id':_0x9f1954[_0x977a('0x5a')]['id']}})['then'](handleEntityNotFound(_0x269b48,null))[_0x977a('0x3a')](function(_0xe5ee5f){if(_0xe5ee5f){return _0xe5ee5f[_0x977a('0x95')](_0x9f1954[_0x977a('0x45')][_0x977a('0x78')])[_0x977a('0x3a')](function(){if(_[_0x977a('0x9b')](_0x9f1954[_0x977a('0x45')][_0x977a('0x78')])){for(var _0x26736a=0x0;_0x26736a<_0x9f1954[_0x977a('0x45')][_0x977a('0x78')][_0x977a('0x5d')];_0x26736a+=0x1){socket['emit'](_0x977a('0x97'),{'UserId':Number(_0x9f1954[_0x977a('0x45')]['ids'][_0x26736a]),'ChatQueueId':Number(_0x9f1954[_0x977a('0x5a')]['id'])});}}else{socket[_0x977a('0x96')](_0x977a('0x97'),{'UserId':Number(_0x9f1954[_0x977a('0x45')][_0x977a('0x78')]),'ChatQueueId':Number(_0x9f1954[_0x977a('0x5a')]['id'])});}});}})[_0x977a('0x3a')](respondWithStatusCode(_0x269b48,null))[_0x977a('0x2c')](handleError(_0x269b48,null));};exports[_0x977a('0x9c')]=function(_0x416d98,_0x3a1812,_0x263e44){var _0x2817bc={};var _0x3b6c52={};var _0x2f9046;var _0xb7681a;return db[_0x977a('0x54')][_0x977a('0x73')]({'where':{'id':_0x416d98[_0x977a('0x5a')]['id']}})[_0x977a('0x3a')](handleEntityNotFound(_0x3a1812,null))[_0x977a('0x3a')](function(_0x57a87f){if(_0x57a87f){_0x2f9046=_0x57a87f;_0x3b6c52['model']=_[_0x977a('0x46')](db['User']['rawAttributes']);_0x3b6c52[_0x977a('0x45')]=_[_0x977a('0x46')](_0x416d98['query']);_0x3b6c52[_0x977a('0x4e')]=_[_0x977a('0x49')](_0x3b6c52['model'],_0x3b6c52[_0x977a('0x45')]);_0x2817bc['attributes']=_['intersection'](_0x3b6c52[_0x977a('0x47')],qs[_0x977a('0x5c')](_0x416d98[_0x977a('0x45')][_0x977a('0x5c')]));_0x2817bc[_0x977a('0x48')]=_0x2817bc['attributes'][_0x977a('0x5d')]?_0x2817bc[_0x977a('0x48')]:_0x3b6c52['model'];_0x2817bc['order']=qs['sort'](_0x416d98[_0x977a('0x45')][_0x977a('0x4c')]);_0x2817bc['where']=qs[_0x977a('0x4e')](_['pick'](_0x416d98[_0x977a('0x45')],_0x3b6c52['filters']));if(_0x416d98[_0x977a('0x45')][_0x977a('0x52')]){_0x2817bc[_0x977a('0x4d')]=_[_0x977a('0x50')](_0x2817bc[_0x977a('0x4d')],{'$or':_[_0x977a('0x41')](_0x2817bc[_0x977a('0x48')],function(_0x4146bc){var _0x4b2b56={};_0x4b2b56[_0x4146bc]={'$like':'%'+_0x416d98[_0x977a('0x45')][_0x977a('0x52')]+'%'};return _0x4b2b56;})});}_0x2817bc=_['merge']({},_0x2817bc,_0x416d98[_0x977a('0x53')]);return _0x2f9046[_0x977a('0x9c')](_0x2817bc);}})[_0x977a('0x3a')](function(_0xe0741a){if(_0xe0741a){_0xb7681a=_0xe0741a[_0x977a('0x5d')];if(!_0x416d98[_0x977a('0x45')][_0x977a('0x69')](_0x977a('0x4a'))){_0x2817bc['limit']=qs[_0x977a('0x32')](_0x416d98[_0x977a('0x45')][_0x977a('0x32')]);_0x2817bc['offset']=qs['offset'](_0x416d98['query'][_0x977a('0x31')]);}return _0x2f9046[_0x977a('0x9c')](_0x2817bc);}})[_0x977a('0x3a')](function(_0x25323e){if(_0x25323e){return _0x25323e?{'count':_0xb7681a,'rows':_0x25323e}:null;}})[_0x977a('0x3a')](respondWithResult(_0x3a1812,null))[_0x977a('0x2c')](handleError(_0x3a1812,null));};