2429a8f85917b5f99d92eb242d5c482eab6573fd
[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 _0x4f1c=['jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','register','jayson/promise','http','test','Sequelize','then','info','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','ChatQueue,\x20%s,\x20%s,\x20%s','error','message','catch','sendStatus','status','json','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','get','ChatQueues','UserProfileResource','end','stack','name','send','index','map','rawAttributes','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filter','VIRTUAL','merge','options','ChatQueue','includeAll','findAll','rows','length','include','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','params','describe','getMembers','findOne','UserChatQueue','ChatQueueId','User','chatPause','updatedAt','createdAt','%s/%s','SIP','getTeams','Team','pick','ids','Agents','voicePause','interface','sequelize','addTeams','findOrCreate','forEach','emit','removeTeams','select','tq.TeamId','from','team_has_chat_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','ut.UserId\x20=\x20?','push','toString','QueryTypes','every','includes','all','union','compact','transaction','isEmpty','removeAgents','userChatQueue:remove','addAgents','omit','spread','getAgents','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','mustache','path','sox','lodash','crypto'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x4f1c,0x1a8));var _0xc4f1=function(_0x28d350,_0x2a7852){_0x28d350=_0x28d350-0x0;var _0x1531f1=_0x4f1c[_0x28d350];return _0x1531f1;};'use strict';var pdf=require(_0xc4f1('0x0'));var emlformat=require(_0xc4f1('0x1'));var rimraf=require(_0xc4f1('0x2'));var zipdir=require(_0xc4f1('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0xc4f1('0x4'));var moment=require(_0xc4f1('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xc4f1('0x6'));var util=require('util');var path=require(_0xc4f1('0x7'));var sox=require(_0xc4f1('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0xc4f1('0x9'));var squel=require('squel');var crypto=require(_0xc4f1('0xa'));var jsforce=require(_0xc4f1('0xb'));var deskjs=require(_0xc4f1('0xc'));var toCsv=require(_0xc4f1('0xd'));var querystring=require(_0xc4f1('0xe'));var Papa=require(_0xc4f1('0xf'));var Redis=require(_0xc4f1('0x10'));var authService=require(_0xc4f1('0x11'));var qs=require(_0xc4f1('0x12'));var as=require(_0xc4f1('0x13'));var hardwareService=require(_0xc4f1('0x14'));var logger=require(_0xc4f1('0x15'))(_0xc4f1('0x16'));var utils=require('../../config/utils');var config=require(_0xc4f1('0x17'));var db=require(_0xc4f1('0x18'))['db'];config['redis']=_[_0xc4f1('0x19')](config[_0xc4f1('0x1a')],{'host':_0xc4f1('0x1b'),'port':0x18eb});var socket=require(_0xc4f1('0x1c'))(new Redis(config[_0xc4f1('0x1a')]));require('./chatQueue.socket')[_0xc4f1('0x1d')](socket);var jayson=require(_0xc4f1('0x1e'));var client=jayson['client'][_0xc4f1('0x1f')]({'port':0x232a});function checkPasswordPattern(_0x10e081,_0x2d0e05,_0xe0348a){if(_0xe0348a){var _0x5d15d3=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x5d15d3[_0xc4f1('0x20')](_0x2d0e05)){return _0x10e081;}else{throw new db[(_0xc4f1('0x21'))]['ValidationError']('The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.');}}else{return _0x10e081;}}function respondWithRpcPromise(_0xf12939,_0x31edc2,_0x5e798f,_0x59cff3){return new BPromise(function(_0x219557,_0x7619e5){var _0xd408bc=_0x59cff3||client;return _0xd408bc['request'](_0xf12939,_0x5e798f)[_0xc4f1('0x22')](function(_0x1a4edd){logger[_0xc4f1('0x23')](_0xc4f1('0x24'),_0x31edc2,_0xc4f1('0x25'));logger[_0xc4f1('0x26')](_0xc4f1('0x27'),_0x31edc2,_0xc4f1('0x25'),JSON['stringify'](_0x1a4edd));if(_0x1a4edd['error']){if(_0x1a4edd[_0xc4f1('0x28')]['code']===0x1f4){logger['error'](_0xc4f1('0x24'),_0x31edc2,_0x1a4edd[_0xc4f1('0x28')][_0xc4f1('0x29')]);return _0x7619e5(_0x1a4edd[_0xc4f1('0x28')][_0xc4f1('0x29')]);}logger['error']('ChatQueue,\x20%s,\x20%s',_0x31edc2,_0x1a4edd[_0xc4f1('0x28')]['message']);return _0x219557(_0x1a4edd[_0xc4f1('0x28')]['message']);}else{logger['info'](_0xc4f1('0x24'),_0x31edc2,_0xc4f1('0x25'));_0x219557(_0x1a4edd['result']['message']);}})[_0xc4f1('0x2a')](function(_0x53851c){logger['error'](_0xc4f1('0x24'),_0x31edc2,_0x53851c);_0x7619e5(_0x53851c);});});}function respondWithStatusCode(_0x111eae,_0x14c35e){_0x14c35e=_0x14c35e||0xcc;return function(_0x2004a2){if(_0x2004a2){return _0x111eae[_0xc4f1('0x2b')](_0x14c35e);}return _0x111eae[_0xc4f1('0x2c')](_0x14c35e)['end']();};}function respondWithResult(_0x46a931,_0x521a){_0x521a=_0x521a||0xc8;return function(_0x131665){if(_0x131665){return _0x46a931[_0xc4f1('0x2c')](_0x521a)[_0xc4f1('0x2d')](_0x131665);}};}function respondWithFilteredResult(_0x52e06d,_0x330f07){return function(_0x12d02e){if(_0x12d02e){var _0x345928=_0x12d02e[_0xc4f1('0x2e')],_0x13914b=_0x330f07[_0xc4f1('0x2f')],_0x677924=_0x330f07[_0xc4f1('0x2f')]+_0x330f07[_0xc4f1('0x30')],_0x4e3aa5;if(_0x677924>=_0x345928){_0x677924=_0x345928;_0x4e3aa5=0xc8;}else{_0x4e3aa5=0xce;}_0x52e06d[_0xc4f1('0x2c')](_0x4e3aa5);return _0x52e06d[_0xc4f1('0x31')](_0xc4f1('0x32'),_0x13914b+'-'+_0x677924+'/'+_0x345928)[_0xc4f1('0x2d')](_0x12d02e);}return null;};}function patchUpdates(_0x483085){return function(_0x50c7d7){try{jsonpatch[_0xc4f1('0x33')](_0x50c7d7,_0x483085,!![]);}catch(_0x5a31f0){return BPromise[_0xc4f1('0x34')](_0x5a31f0);}return _0x50c7d7[_0xc4f1('0x35')]();};}function saveUpdates(_0x2c3f92,_0x7ebfb4){return function(_0x5dc04f){if(_0x5dc04f){return _0x5dc04f[_0xc4f1('0x36')](_0x2c3f92)['then'](function(_0x3cfdc6){return _0x3cfdc6;});}return null;};}function removeEntity(_0x554332,_0xf8a81){return function(_0x11b0ef){if(_0x11b0ef){return _0x11b0ef[_0xc4f1('0x37')]()['then'](function(){var _0x1b3f8f=_0x11b0ef[_0xc4f1('0x38')]({'plain':!![]});var _0x4416a5=_0xc4f1('0x39');return db[_0xc4f1('0x3a')][_0xc4f1('0x37')]({'where':{'type':_0x4416a5,'resourceId':_0x1b3f8f['id']}})[_0xc4f1('0x22')](function(){return _0x11b0ef;});})[_0xc4f1('0x22')](function(){_0x554332[_0xc4f1('0x2c')](0xcc)[_0xc4f1('0x3b')]();});}};}function handleEntityNotFound(_0x1208b7,_0x33220b){return function(_0x3fec35){if(!_0x3fec35){_0x1208b7['sendStatus'](0x194);}return _0x3fec35;};}function handleError(_0x242613,_0x4ce539){_0x4ce539=_0x4ce539||0x1f4;return function(_0x1c2b07){logger[_0xc4f1('0x28')](_0x1c2b07[_0xc4f1('0x3c')]);if(_0x1c2b07[_0xc4f1('0x3d')]){delete _0x1c2b07[_0xc4f1('0x3d')];}_0x242613[_0xc4f1('0x2c')](_0x4ce539)[_0xc4f1('0x3e')](_0x1c2b07);};}exports[_0xc4f1('0x3f')]=function(_0x270d0f,_0x2f898f){var _0x44b8bc={},_0x3f88ec={},_0xd8e484={'count':0x0,'rows':[]};var _0x48d4df=_[_0xc4f1('0x40')](db['ChatQueue'][_0xc4f1('0x41')],function(_0x49e71a){return{'name':_0x49e71a['fieldName'],'type':_0x49e71a['type'][_0xc4f1('0x42')]};});_0x3f88ec[_0xc4f1('0x43')]=_[_0xc4f1('0x40')](_0x48d4df,_0xc4f1('0x3d'));_0x3f88ec[_0xc4f1('0x44')]=_[_0xc4f1('0x45')](_0x270d0f[_0xc4f1('0x44')]);_0x3f88ec[_0xc4f1('0x46')]=_[_0xc4f1('0x47')](_0x3f88ec[_0xc4f1('0x43')],_0x3f88ec[_0xc4f1('0x44')]);_0x44b8bc[_0xc4f1('0x48')]=_[_0xc4f1('0x47')](_0x3f88ec[_0xc4f1('0x43')],qs[_0xc4f1('0x49')](_0x270d0f[_0xc4f1('0x44')]['fields']));_0x44b8bc[_0xc4f1('0x48')]=_0x44b8bc[_0xc4f1('0x48')]['length']?_0x44b8bc[_0xc4f1('0x48')]:_0x3f88ec[_0xc4f1('0x43')];if(!_0x270d0f[_0xc4f1('0x44')][_0xc4f1('0x4a')](_0xc4f1('0x4b'))){_0x44b8bc[_0xc4f1('0x30')]=qs['limit'](_0x270d0f[_0xc4f1('0x44')][_0xc4f1('0x30')]);_0x44b8bc[_0xc4f1('0x2f')]=qs[_0xc4f1('0x2f')](_0x270d0f[_0xc4f1('0x44')][_0xc4f1('0x2f')]);}_0x44b8bc[_0xc4f1('0x4c')]=qs[_0xc4f1('0x4d')](_0x270d0f[_0xc4f1('0x44')][_0xc4f1('0x4d')]);_0x44b8bc[_0xc4f1('0x4e')]=qs[_0xc4f1('0x46')](_['pick'](_0x270d0f['query'],_0x3f88ec[_0xc4f1('0x46')]),_0x48d4df);if(_0x270d0f['query'][_0xc4f1('0x4f')]){_0x44b8bc[_0xc4f1('0x4e')]=_['merge'](_0x44b8bc[_0xc4f1('0x4e')],{'$or':_[_0xc4f1('0x40')](_0x48d4df,function(_0x416c04){if(_0x416c04['type']!==_0xc4f1('0x50')){var _0x244c6d={};_0x244c6d[_0x416c04[_0xc4f1('0x3d')]]={'$like':'%'+_0x270d0f[_0xc4f1('0x44')]['filter']+'%'};return _0x244c6d;}})});}_0x44b8bc=_[_0xc4f1('0x51')]({},_0x44b8bc,_0x270d0f[_0xc4f1('0x52')]);var _0x3adf51={'where':_0x44b8bc['where']};return db[_0xc4f1('0x53')][_0xc4f1('0x2e')](_0x3adf51)[_0xc4f1('0x22')](function(_0x2b2ec4){_0xd8e484[_0xc4f1('0x2e')]=_0x2b2ec4;if(_0x270d0f[_0xc4f1('0x44')][_0xc4f1('0x54')]){_0x44b8bc['include']=[{'all':!![]}];}return db[_0xc4f1('0x53')][_0xc4f1('0x55')](_0x44b8bc);})[_0xc4f1('0x22')](function(_0x1361bb){_0xd8e484[_0xc4f1('0x56')]=_0x1361bb;return _0xd8e484;})[_0xc4f1('0x22')](respondWithFilteredResult(_0x2f898f,_0x44b8bc))['catch'](handleError(_0x2f898f,null));};exports['show']=function(_0xcd33d,_0x2ef941){var _0x3a2154={'raw':!![],'where':{'id':_0xcd33d['params']['id']}},_0x54aa1b={};_0x54aa1b[_0xc4f1('0x43')]=_[_0xc4f1('0x45')](db[_0xc4f1('0x53')][_0xc4f1('0x41')]);_0x54aa1b[_0xc4f1('0x44')]=_[_0xc4f1('0x45')](_0xcd33d[_0xc4f1('0x44')]);_0x54aa1b['filters']=_['intersection'](_0x54aa1b[_0xc4f1('0x43')],_0x54aa1b[_0xc4f1('0x44')]);_0x3a2154[_0xc4f1('0x48')]=_['intersection'](_0x54aa1b['model'],qs[_0xc4f1('0x49')](_0xcd33d['query'][_0xc4f1('0x49')]));_0x3a2154[_0xc4f1('0x48')]=_0x3a2154['attributes'][_0xc4f1('0x57')]?_0x3a2154[_0xc4f1('0x48')]:_0x54aa1b[_0xc4f1('0x43')];if(_0xcd33d[_0xc4f1('0x44')]['includeAll']){_0x3a2154[_0xc4f1('0x58')]=[{'all':!![]}];}_0x3a2154=_['merge']({},_0x3a2154,_0xcd33d[_0xc4f1('0x52')]);return db[_0xc4f1('0x53')]['find'](_0x3a2154)[_0xc4f1('0x22')](handleEntityNotFound(_0x2ef941,null))[_0xc4f1('0x22')](respondWithResult(_0x2ef941,null))[_0xc4f1('0x2a')](handleError(_0x2ef941,null));};exports[_0xc4f1('0x59')]=function(_0x4f6dc4,_0x5398ff){return db['ChatQueue'][_0xc4f1('0x59')](_0x4f6dc4[_0xc4f1('0x5a')],{})['then'](function(_0x204e42){var _0x492b80=_0x4f6dc4[_0xc4f1('0x5b')][_0xc4f1('0x38')]({'plain':!![]});if(!_0x492b80)throw new Error(_0xc4f1('0x5c'));if(_0x492b80['role']===_0xc4f1('0x5b')){var _0x11d004=_0x204e42['get']({'plain':!![]});var _0x26de7c=_0xc4f1('0x39');return db[_0xc4f1('0x5d')][_0xc4f1('0x5e')]({'where':{'name':_0x26de7c,'userProfileId':_0x492b80['userProfileId']},'raw':!![]})['then'](function(_0x263e45){if(_0x263e45&&_0x263e45['autoAssociation']===0x0){return db[_0xc4f1('0x3a')][_0xc4f1('0x59')]({'name':_0x11d004['name'],'resourceId':_0x11d004['id'],'type':_0x263e45[_0xc4f1('0x3d')],'sectionId':_0x263e45['id']},{})[_0xc4f1('0x22')](function(){return _0x204e42;});}else{return _0x204e42;}})[_0xc4f1('0x2a')](function(_0x422b36){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x422b36);throw _0x422b36;});}return _0x204e42;})[_0xc4f1('0x22')](respondWithResult(_0x5398ff,0xc9))['catch'](handleError(_0x5398ff,null));};exports['update']=function(_0x3c4286,_0x43916b){if(_0x3c4286[_0xc4f1('0x5a')]['id']){delete _0x3c4286['body']['id'];}return db['ChatQueue'][_0xc4f1('0x5e')]({'where':{'id':_0x3c4286[_0xc4f1('0x5f')]['id']}})['then'](handleEntityNotFound(_0x43916b,null))[_0xc4f1('0x22')](saveUpdates(_0x3c4286[_0xc4f1('0x5a')],null))['then'](respondWithResult(_0x43916b,null))['catch'](handleError(_0x43916b,null));};exports[_0xc4f1('0x37')]=function(_0x248a69,_0x330828){return db[_0xc4f1('0x53')][_0xc4f1('0x5e')]({'where':{'id':_0x248a69[_0xc4f1('0x5f')]['id']}})[_0xc4f1('0x22')](handleEntityNotFound(_0x330828,null))[_0xc4f1('0x22')](removeEntity(_0x330828,null))[_0xc4f1('0x2a')](handleError(_0x330828,null));};exports[_0xc4f1('0x60')]=function(_0x52cc07,_0x39e0a8){return db[_0xc4f1('0x53')]['describe']()['then'](respondWithResult(_0x39e0a8,null))[_0xc4f1('0x2a')](handleError(_0x39e0a8,null));};exports[_0xc4f1('0x61')]=function(_0x5596d3,_0x1f5255,_0x1a58a6){var _0x2ebdfe={'raw':!![],'where':{}},_0x545ef0={},_0x2f39f4;return db['ChatQueue'][_0xc4f1('0x62')]({'where':{'id':_0x5596d3[_0xc4f1('0x5f')]['id']}})['then'](handleEntityNotFound(_0x1f5255,null))[_0xc4f1('0x22')](function(_0x25dce9){if(_0x25dce9){_0x2f39f4=_0x25dce9[_0xc4f1('0x38')]({'plain':!![]});_0x545ef0['model']=_['keys'](db[_0xc4f1('0x63')][_0xc4f1('0x41')]);_0x545ef0[_0xc4f1('0x44')]=_[_0xc4f1('0x45')](_0x5596d3[_0xc4f1('0x44')]);_0x545ef0['filters']=_[_0xc4f1('0x47')](_0x545ef0[_0xc4f1('0x43')],_0x545ef0[_0xc4f1('0x44')]);_0x2ebdfe['attributes']=_[_0xc4f1('0x47')](_0x545ef0[_0xc4f1('0x43')],qs['fields'](_0x5596d3[_0xc4f1('0x44')]['fields']));_0x2ebdfe['attributes']=_0x2ebdfe[_0xc4f1('0x48')][_0xc4f1('0x57')]?_0x2ebdfe['attributes']:_0x545ef0[_0xc4f1('0x43')];if(!_0x5596d3[_0xc4f1('0x44')][_0xc4f1('0x4a')](_0xc4f1('0x4b'))){_0x2ebdfe[_0xc4f1('0x30')]=qs['limit'](_0x5596d3[_0xc4f1('0x44')][_0xc4f1('0x30')]);_0x2ebdfe[_0xc4f1('0x2f')]=qs[_0xc4f1('0x2f')](_0x5596d3[_0xc4f1('0x44')][_0xc4f1('0x2f')]);}_0x2ebdfe[_0xc4f1('0x4c')]=qs[_0xc4f1('0x4d')](_0x5596d3[_0xc4f1('0x44')][_0xc4f1('0x4d')]);_0x2ebdfe['where']=qs[_0xc4f1('0x46')](_['pick'](_0x5596d3[_0xc4f1('0x44')],_0x545ef0[_0xc4f1('0x46')]));_0x2ebdfe[_0xc4f1('0x4e')][_0xc4f1('0x64')]=_0x25dce9['id'];if(_0x5596d3[_0xc4f1('0x44')][_0xc4f1('0x4f')]){_0x2ebdfe['where']=_['merge'](_0x2ebdfe[_0xc4f1('0x4e')],{'$or':_[_0xc4f1('0x40')](_0x2ebdfe[_0xc4f1('0x48')],function(_0x2bb4f8){var _0x999beb={};_0x999beb[_0x2bb4f8]={'$like':'%'+_0x5596d3['query'][_0xc4f1('0x4f')]+'%'};return _0x999beb;})});}_0x2ebdfe=_['merge']({},_0x2ebdfe,_0x5596d3[_0xc4f1('0x52')]);return db[_0xc4f1('0x63')][_0xc4f1('0x55')](_0x2ebdfe);}})[_0xc4f1('0x22')](function(_0x55d750){if(_0x55d750){return db[_0xc4f1('0x65')]['findAndCountAll']({'where':{'id':_[_0xc4f1('0x40')](_0x55d750,'UserId'),'role':'agent'},'attributes':['id',_0xc4f1('0x3d'),_0xc4f1('0x66'),_0xc4f1('0x67'),_0xc4f1('0x68')]});}})[_0xc4f1('0x22')](function(_0x396715){if(_0x396715){return{'count':_0x396715[_0xc4f1('0x2e')],'rows':_[_0xc4f1('0x40')](_0x396715[_0xc4f1('0x56')],function(_0x40b2ce){return{'membername':_0x40b2ce['name'],'UserId':_0x40b2ce['id'],'queue_name':_0x2f39f4[_0xc4f1('0x3d')],'ChatQueueId':_0x2f39f4['id'],'interface':util['format'](_0xc4f1('0x69'),_0xc4f1('0x6a'),_0x40b2ce['name']),'penalty':0x0,'paused':_0x40b2ce['chatPause'],'createdAt':_0x40b2ce[_0xc4f1('0x68')],'updatedAt':_0x40b2ce[_0xc4f1('0x67')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x1f5255,_0x2ebdfe))[_0xc4f1('0x2a')](handleError(_0x1f5255,null));};exports[_0xc4f1('0x6b')]=function(_0x4fc132,_0xd5cd05,_0x145c5c){var _0x3e9f12={};var _0x5da3ba={};var _0x4e54d2;var _0x155cb7;return db[_0xc4f1('0x53')]['findOne']({'where':{'id':_0x4fc132['params']['id']}})[_0xc4f1('0x22')](handleEntityNotFound(_0xd5cd05,null))[_0xc4f1('0x22')](function(_0x120dbc){if(_0x120dbc){_0x4e54d2=_0x120dbc;_0x5da3ba[_0xc4f1('0x43')]=_[_0xc4f1('0x45')](db[_0xc4f1('0x6c')][_0xc4f1('0x41')]);_0x5da3ba['query']=_['keys'](_0x4fc132[_0xc4f1('0x44')]);_0x5da3ba['filters']=_[_0xc4f1('0x47')](_0x5da3ba[_0xc4f1('0x43')],_0x5da3ba[_0xc4f1('0x44')]);_0x3e9f12[_0xc4f1('0x48')]=_[_0xc4f1('0x47')](_0x5da3ba[_0xc4f1('0x43')],qs[_0xc4f1('0x49')](_0x4fc132[_0xc4f1('0x44')][_0xc4f1('0x49')]));_0x3e9f12[_0xc4f1('0x48')]=_0x3e9f12[_0xc4f1('0x48')][_0xc4f1('0x57')]?_0x3e9f12['attributes']:_0x5da3ba[_0xc4f1('0x43')];_0x3e9f12['order']=qs[_0xc4f1('0x4d')](_0x4fc132['query'][_0xc4f1('0x4d')]);_0x3e9f12[_0xc4f1('0x4e')]=qs[_0xc4f1('0x46')](_[_0xc4f1('0x6d')](_0x4fc132[_0xc4f1('0x44')],_0x5da3ba[_0xc4f1('0x46')]));if(_0x4fc132[_0xc4f1('0x44')][_0xc4f1('0x4f')]){_0x3e9f12[_0xc4f1('0x4e')]=_[_0xc4f1('0x51')](_0x3e9f12[_0xc4f1('0x4e')],{'$or':_['map'](_0x3e9f12[_0xc4f1('0x48')],function(_0x45be22){var _0x3321c8={};_0x3321c8[_0x45be22]={'$like':'%'+_0x4fc132[_0xc4f1('0x44')][_0xc4f1('0x4f')]+'%'};return _0x3321c8;})});}_0x3e9f12=_[_0xc4f1('0x51')]({},_0x3e9f12,_0x4fc132[_0xc4f1('0x52')]);return _0x4e54d2['getTeams'](_0x3e9f12);}})['then'](function(_0x22d731){if(_0x22d731){_0x155cb7=_0x22d731['length'];if(!_0x4fc132[_0xc4f1('0x44')][_0xc4f1('0x4a')](_0xc4f1('0x4b'))){_0x3e9f12['limit']=qs[_0xc4f1('0x30')](_0x4fc132[_0xc4f1('0x44')][_0xc4f1('0x30')]);_0x3e9f12[_0xc4f1('0x2f')]=qs[_0xc4f1('0x2f')](_0x4fc132[_0xc4f1('0x44')][_0xc4f1('0x2f')]);}return _0x4e54d2[_0xc4f1('0x6b')](_0x3e9f12);}})[_0xc4f1('0x22')](function(_0xcd9048){if(_0xcd9048){return _0xcd9048?{'count':_0x155cb7,'rows':_0xcd9048}:null;}})[_0xc4f1('0x22')](respondWithResult(_0xd5cd05,null))[_0xc4f1('0x2a')](handleError(_0xd5cd05,null));};exports['addTeams']=function(_0x6f1951,_0x57609b,_0x5cfd71){var _0x453f3d=_0x6f1951[_0xc4f1('0x5a')][_0xc4f1('0x6e')];return db[_0xc4f1('0x6c')]['findAll']({'where':{'id':_0x453f3d},'attributes':['id'],'include':[{'model':db['User'],'as':_0xc4f1('0x6f'),'attributes':['id','name','online',_0xc4f1('0x70'),_0xc4f1('0x71')],'raw':!![]}]})[_0xc4f1('0x22')](function(_0x36c979){if(_0x36c979){var _0x421f4a=_['flatMap'](_0x36c979,function(_0x21e2d3){var _0x2a7767=_0x21e2d3['get']({'plain':!![]});return _0x2a7767[_0xc4f1('0x6f')];});return db[_0xc4f1('0x53')][_0xc4f1('0x5e')]({'where':{'id':_0x6f1951[_0xc4f1('0x5f')]['id']}})[_0xc4f1('0x22')](function(_0x369ab8){return db[_0xc4f1('0x72')]['transaction'](function(_0x136863){return _0x369ab8[_0xc4f1('0x73')](_0x453f3d,{'transaction':_0x136863})[_0xc4f1('0x22')](function(){return BPromise['each'](_0x421f4a,function(_0x3fcc5f){return db['UserChatQueue'][_0xc4f1('0x74')]({'where':{'UserId':_0x3fcc5f['id'],'ChatQueueId':_0x6f1951[_0xc4f1('0x5f')]['id']},'transaction':_0x136863});});})[_0xc4f1('0x22')](function(){_0x421f4a[_0xc4f1('0x75')](function(_0x593a7d){socket[_0xc4f1('0x76')]('userChatQueue:save',{'UserId':_0x593a7d['id'],'ChatQueueId':_0x369ab8['id']});});});});});}})[_0xc4f1('0x22')](respondWithStatusCode(_0x57609b,null))[_0xc4f1('0x2a')](handleError(_0x57609b,null));};exports[_0xc4f1('0x77')]=function(_0x29e617,_0x546fa5,_0x416599){return db['Team'][_0xc4f1('0x55')]({'where':{'id':_0x29e617[_0xc4f1('0x44')][_0xc4f1('0x6e')]},'attributes':['id'],'include':[{'model':db[_0xc4f1('0x65')],'as':_0xc4f1('0x6f'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x546fa5,null))[_0xc4f1('0x22')](function(_0x26d0c2){var _0x1dda73=_['map'](_0x26d0c2,'id');var _0xb1bf8e=[];var _0x271f4a=[];var _0x77ecc9=squel[_0xc4f1('0x78')]();_0x77ecc9['field'](_0xc4f1('0x79'))[_0xc4f1('0x7a')](_0xc4f1('0x7b'),'tq')[_0xc4f1('0x7c')](_0xc4f1('0x7d'),'ut',_0xc4f1('0x7e'))[_0xc4f1('0x4e')](_0xc4f1('0x7f'),_0x29e617['params']['id']);for(var _0x28dfdb=0x0;_0x28dfdb<_0x26d0c2[_0xc4f1('0x57')];_0x28dfdb+=0x1){let _0x2c6f25=_0x26d0c2[_0x28dfdb];for(var _0x74cea6=0x0;_0x74cea6<_0x2c6f25[_0xc4f1('0x6f')][_0xc4f1('0x57')];_0x74cea6+=0x1){let _0x4f16bb=_0x2c6f25[_0xc4f1('0x6f')][_0x74cea6];var _0x41c161=_0x77ecc9['clone']();_0x41c161['where'](_0xc4f1('0x80'),_0x4f16bb['id']);_0x271f4a[_0xc4f1('0x81')](db['sequelize'][_0xc4f1('0x44')](_0x41c161[_0xc4f1('0x82')](),{'type':db[_0xc4f1('0x72')][_0xc4f1('0x83')]['SELECT']})[_0xc4f1('0x22')](function(_0x727350){if(_0x727350['length']===0x1){return _0x4f16bb['id'];}else{var _0x25915c=_[_0xc4f1('0x84')](_[_0xc4f1('0x40')](_0x727350,'TeamId'),function(_0xbb0b84){return _[_0xc4f1('0x85')](_0x1dda73,_0xbb0b84);});if(_0x25915c){return _0x4f16bb['id'];}}}));}}return BPromise[_0xc4f1('0x86')](_0x271f4a)[_0xc4f1('0x22')](function(_0x37bb0e){_0xb1bf8e=_(_0xb1bf8e)[_0xc4f1('0x87')](_0x37bb0e)[_0xc4f1('0x88')]()['value']();return db[_0xc4f1('0x53')]['find']({'where':{'id':_0x29e617['params']['id']}})[_0xc4f1('0x22')](function(_0x1cda6e){return db[_0xc4f1('0x72')][_0xc4f1('0x89')](function(_0x2dcf09){return _0x1cda6e[_0xc4f1('0x77')](_0x29e617[_0xc4f1('0x44')]['ids'],{'transaction':_0x2dcf09})[_0xc4f1('0x22')](function(){if(!_[_0xc4f1('0x8a')](_0xb1bf8e)){return _0x1cda6e[_0xc4f1('0x8b')](_0xb1bf8e,{'transaction':_0x2dcf09});}})[_0xc4f1('0x22')](function(){_0xb1bf8e[_0xc4f1('0x75')](function(_0x2e710f){socket['emit'](_0xc4f1('0x8c'),{'UserId':_0x2e710f,'ChatQueueId':_0x1cda6e['id']});});});});});});})['then'](respondWithStatusCode(_0x546fa5,null))[_0xc4f1('0x2a')](handleError(_0x546fa5,null));};exports[_0xc4f1('0x8d')]=function(_0x29c6cf,_0x26d379,_0x2c5cd6){return db[_0xc4f1('0x53')][_0xc4f1('0x5e')]({'where':{'id':_0x29c6cf[_0xc4f1('0x5f')]['id']}})[_0xc4f1('0x22')](handleEntityNotFound(_0x26d379,null))[_0xc4f1('0x22')](function(_0x546d18){if(_0x546d18){return _0x546d18[_0xc4f1('0x8d')](_0x29c6cf[_0xc4f1('0x5a')]['ids'],_[_0xc4f1('0x8e')](_0x29c6cf[_0xc4f1('0x5a')],['ids','id'])||{})[_0xc4f1('0x8f')](function(_0x590da0){for(var _0xc44005=0x0;_0xc44005<_0x29c6cf[_0xc4f1('0x5a')][_0xc4f1('0x6e')][_0xc4f1('0x57')];_0xc44005+=0x1){socket[_0xc4f1('0x76')]('userChatQueue:save',{'UserId':_0x29c6cf[_0xc4f1('0x5a')][_0xc4f1('0x6e')][_0xc44005],'ChatQueueId':_0x29c6cf[_0xc4f1('0x5f')]['id']});}return _0x590da0;});}})[_0xc4f1('0x22')](respondWithResult(_0x26d379,null))[_0xc4f1('0x2a')](handleError(_0x26d379,null));};exports['removeAgents']=function(_0x4767a5,_0x59b04b,_0x160575){return db[_0xc4f1('0x53')][_0xc4f1('0x5e')]({'where':{'id':_0x4767a5['params']['id']}})[_0xc4f1('0x22')](handleEntityNotFound(_0x59b04b,null))[_0xc4f1('0x22')](function(_0x5a1c03){if(_0x5a1c03){return _0x5a1c03['removeAgents'](_0x4767a5[_0xc4f1('0x44')]['ids'])['then'](function(){if(_['isArray'](_0x4767a5[_0xc4f1('0x44')][_0xc4f1('0x6e')])){for(var _0xde668f=0x0;_0xde668f<_0x4767a5['query'][_0xc4f1('0x6e')][_0xc4f1('0x57')];_0xde668f+=0x1){socket['emit']('userChatQueue:remove',{'UserId':Number(_0x4767a5[_0xc4f1('0x44')][_0xc4f1('0x6e')][_0xde668f]),'ChatQueueId':Number(_0x4767a5[_0xc4f1('0x5f')]['id'])});}}else{socket['emit'](_0xc4f1('0x8c'),{'UserId':Number(_0x4767a5['query'][_0xc4f1('0x6e')]),'ChatQueueId':Number(_0x4767a5[_0xc4f1('0x5f')]['id'])});}});}})[_0xc4f1('0x22')](respondWithStatusCode(_0x59b04b,null))[_0xc4f1('0x2a')](handleError(_0x59b04b,null));};exports[_0xc4f1('0x90')]=function(_0x29dbf4,_0x225d5b,_0x411cf6){var _0x58ed67={};var _0x56b61e={};var _0x3299dc;var _0x3f6d8b;return db[_0xc4f1('0x53')][_0xc4f1('0x62')]({'where':{'id':_0x29dbf4['params']['id']}})['then'](handleEntityNotFound(_0x225d5b,null))[_0xc4f1('0x22')](function(_0x1d23cd){if(_0x1d23cd){_0x3299dc=_0x1d23cd;_0x56b61e[_0xc4f1('0x43')]=_['keys'](db[_0xc4f1('0x65')][_0xc4f1('0x41')]);_0x56b61e[_0xc4f1('0x44')]=_['keys'](_0x29dbf4['query']);_0x56b61e[_0xc4f1('0x46')]=_[_0xc4f1('0x47')](_0x56b61e[_0xc4f1('0x43')],_0x56b61e[_0xc4f1('0x44')]);_0x58ed67[_0xc4f1('0x48')]=_[_0xc4f1('0x47')](_0x56b61e[_0xc4f1('0x43')],qs['fields'](_0x29dbf4['query']['fields']));_0x58ed67[_0xc4f1('0x48')]=_0x58ed67[_0xc4f1('0x48')][_0xc4f1('0x57')]?_0x58ed67[_0xc4f1('0x48')]:_0x56b61e['model'];_0x58ed67[_0xc4f1('0x4c')]=qs[_0xc4f1('0x4d')](_0x29dbf4['query'][_0xc4f1('0x4d')]);_0x58ed67[_0xc4f1('0x4e')]=qs[_0xc4f1('0x46')](_[_0xc4f1('0x6d')](_0x29dbf4['query'],_0x56b61e[_0xc4f1('0x46')]));if(_0x29dbf4['query']['filter']){_0x58ed67['where']=_[_0xc4f1('0x51')](_0x58ed67[_0xc4f1('0x4e')],{'$or':_[_0xc4f1('0x40')](_0x58ed67[_0xc4f1('0x48')],function(_0x14d040){var _0x10db1e={};_0x10db1e[_0x14d040]={'$like':'%'+_0x29dbf4[_0xc4f1('0x44')][_0xc4f1('0x4f')]+'%'};return _0x10db1e;})});}_0x58ed67=_['merge']({},_0x58ed67,_0x29dbf4['options']);return _0x3299dc['getAgents'](_0x58ed67);}})[_0xc4f1('0x22')](function(_0x2605d6){if(_0x2605d6){_0x3f6d8b=_0x2605d6['length'];if(!_0x29dbf4[_0xc4f1('0x44')][_0xc4f1('0x4a')](_0xc4f1('0x4b'))){_0x58ed67[_0xc4f1('0x30')]=qs['limit'](_0x29dbf4[_0xc4f1('0x44')]['limit']);_0x58ed67[_0xc4f1('0x2f')]=qs[_0xc4f1('0x2f')](_0x29dbf4[_0xc4f1('0x44')]['offset']);}return _0x3299dc[_0xc4f1('0x90')](_0x58ed67);}})[_0xc4f1('0x22')](function(_0x396f30){if(_0x396f30){return _0x396f30?{'count':_0x3f6d8b,'rows':_0x396f30}:null;}})[_0xc4f1('0x22')](respondWithResult(_0x225d5b,null))[_0xc4f1('0x2a')](handleError(_0x225d5b,null));};