d55b80427fae28cb25b16855fd4840b00f57238f
[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 _0x916d=['jayson/promise','client','http','then','info','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','end','status','json','offset','set','Content-Range','apply','reject','save','update','destroy','get','stack','name','send','index','map','ChatQueue','rawAttributes','fieldName','type','key','query','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','filter','merge','VIRTUAL','options','count','includeAll','include','findAll','rows','show','keys','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','ChatQueues','UserProfileSection','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','describe','getMembers','findOne','UserChatQueue','limit','order','ChatQueueId','User','findAndCountAll','UserId','agent','chatPause','updatedAt','createdAt','format','Team','getTeams','ids','online','voicePause','Agents','sequelize','transaction','addTeams','each','findOrCreate','forEach','emit','userChatQueue:save','removeTeams','select','tq.TeamId','team_has_chat_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','ut.UserId\x20=\x20?','push','QueryTypes','SELECT','TeamId','includes','all','union','compact','value','isEmpty','removeAgents','userChatQueue:remove','omit','spread','isArray','getAgents','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','sox','ejs','fs-extra','lodash','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./chatQueue.socket','register'];(function(_0xb85321,_0x11566c){var _0x495df4=function(_0x535574){while(--_0x535574){_0xb85321['push'](_0xb85321['shift']());}};_0x495df4(++_0x11566c);}(_0x916d,0x11d));var _0xd916=function(_0x3596fa,_0x4783df){_0x3596fa=_0x3596fa-0x0;var _0x35ef9d=_0x916d[_0x3596fa];return _0x35ef9d;};'use strict';var emlformat=require(_0xd916('0x0'));var rimraf=require(_0xd916('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xd916('0x2'));var rp=require(_0xd916('0x3'));var moment=require(_0xd916('0x4'));var BPromise=require(_0xd916('0x5'));var Mustache=require('mustache');var util=require(_0xd916('0x6'));var path=require('path');var sox=require(_0xd916('0x7'));var csv=require('to-csv');var ejs=require(_0xd916('0x8'));var fs=require('fs');var fs_extra=require(_0xd916('0x9'));var _=require(_0xd916('0xa'));var squel=require('squel');var crypto=require(_0xd916('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xd916('0xc'));var toCsv=require(_0xd916('0xd'));var querystring=require(_0xd916('0xe'));var Papa=require(_0xd916('0xf'));var Redis=require(_0xd916('0x10'));var authService=require(_0xd916('0x11'));var qs=require(_0xd916('0x12'));var as=require(_0xd916('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xd916('0x14'))(_0xd916('0x15'));var utils=require(_0xd916('0x16'));var config=require(_0xd916('0x17'));var licenseUtil=require(_0xd916('0x18'));var db=require(_0xd916('0x19'))['db'];config[_0xd916('0x1a')]=_[_0xd916('0x1b')](config['redis'],{'host':_0xd916('0x1c'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xd916('0x1a')]));require(_0xd916('0x1d'))[_0xd916('0x1e')](socket);var jayson=require(_0xd916('0x1f'));var client=jayson[_0xd916('0x20')][_0xd916('0x21')]({'port':0x232a});function respondWithRpcPromise(_0x2d93c1,_0xb68302,_0x6d5d64,_0x202bcc){return new BPromise(function(_0x2a2688,_0x2827eb){var _0x2d3b93=_0x202bcc||client;return _0x2d3b93['request'](_0x2d93c1,_0x6d5d64)[_0xd916('0x22')](function(_0x1589b8){logger[_0xd916('0x23')](_0xd916('0x24'),_0xb68302,_0xd916('0x25'));logger[_0xd916('0x26')](_0xd916('0x27'),_0xb68302,_0xd916('0x25'),JSON[_0xd916('0x28')](_0x1589b8));if(_0x1589b8[_0xd916('0x29')]){if(_0x1589b8['error'][_0xd916('0x2a')]===0x1f4){logger['error'](_0xd916('0x24'),_0xb68302,_0x1589b8[_0xd916('0x29')][_0xd916('0x2b')]);return _0x2827eb(_0x1589b8[_0xd916('0x29')]['message']);}logger[_0xd916('0x29')](_0xd916('0x24'),_0xb68302,_0x1589b8[_0xd916('0x29')]['message']);return _0x2a2688(_0x1589b8[_0xd916('0x29')][_0xd916('0x2b')]);}else{logger['info']('ChatQueue,\x20%s,\x20%s',_0xb68302,'request\x20sent');_0x2a2688(_0x1589b8[_0xd916('0x2c')][_0xd916('0x2b')]);}})[_0xd916('0x2d')](function(_0x4c2bbc){logger['error'](_0xd916('0x24'),_0xb68302,_0x4c2bbc);_0x2827eb(_0x4c2bbc);});});}function respondWithStatusCode(_0xdac98e,_0x374a22){_0x374a22=_0x374a22||0xcc;return function(_0x283970){if(_0x283970){return _0xdac98e[_0xd916('0x2e')](_0x374a22);}return _0xdac98e['status'](_0x374a22)[_0xd916('0x2f')]();};}function respondWithResult(_0x2860e2,_0x1c38d1){_0x1c38d1=_0x1c38d1||0xc8;return function(_0x45340c){if(_0x45340c){return _0x2860e2[_0xd916('0x30')](_0x1c38d1)[_0xd916('0x31')](_0x45340c);}};}function respondWithFilteredResult(_0x483d67,_0x3366a7){return function(_0x47d4ac){if(_0x47d4ac){var _0x423b8a=typeof _0x3366a7[_0xd916('0x32')]==='undefined'&&typeof _0x3366a7['limit']==='undefined';var _0x10b59e=_0x47d4ac['count'];var _0x1d34af=_0x423b8a?0x0:_0x3366a7[_0xd916('0x32')];var _0x550bdb=_0x423b8a?_0x47d4ac['count']:_0x3366a7[_0xd916('0x32')]+_0x3366a7['limit'];var _0x21b59d;if(_0x550bdb>=_0x10b59e){_0x550bdb=_0x10b59e;_0x21b59d=0xc8;}else{_0x21b59d=0xce;}_0x483d67['status'](_0x21b59d);return _0x483d67[_0xd916('0x33')](_0xd916('0x34'),_0x1d34af+'-'+_0x550bdb+'/'+_0x10b59e)['json'](_0x47d4ac);}return null;};}function patchUpdates(_0x26dc20){return function(_0x59c212){try{jsonpatch[_0xd916('0x35')](_0x59c212,_0x26dc20,!![]);}catch(_0x37658c){return BPromise[_0xd916('0x36')](_0x37658c);}return _0x59c212[_0xd916('0x37')]();};}function saveUpdates(_0x17c40a,_0x33cb06){return function(_0x7d29ff){if(_0x7d29ff){return _0x7d29ff[_0xd916('0x38')](_0x17c40a)[_0xd916('0x22')](function(_0x1dc138){return _0x1dc138;});}return null;};}function removeEntity(_0x3e02d5,_0x1c2ad2){return function(_0x132d27){if(_0x132d27){return _0x132d27[_0xd916('0x39')]()[_0xd916('0x22')](function(){var _0xf46ee7=_0x132d27[_0xd916('0x3a')]({'plain':!![]});var _0x5b67ea='ChatQueues';return db['UserProfileResource']['destroy']({'where':{'type':_0x5b67ea,'resourceId':_0xf46ee7['id']}})[_0xd916('0x22')](function(){return _0x132d27;});})[_0xd916('0x22')](function(){_0x3e02d5[_0xd916('0x30')](0xcc)['end']();});}};}function handleEntityNotFound(_0x366a71,_0x463029){return function(_0x15aedc){if(!_0x15aedc){_0x366a71[_0xd916('0x2e')](0x194);}return _0x15aedc;};}function handleError(_0xef0725,_0x8a7c49){_0x8a7c49=_0x8a7c49||0x1f4;return function(_0x274080){logger[_0xd916('0x29')](_0x274080[_0xd916('0x3b')]);if(_0x274080[_0xd916('0x3c')]){delete _0x274080[_0xd916('0x3c')];}_0xef0725[_0xd916('0x30')](_0x8a7c49)[_0xd916('0x3d')](_0x274080);};}exports[_0xd916('0x3e')]=function(_0x241746,_0x2447ee){var _0x1d8ea0={},_0x572e97={},_0x47dd92={'count':0x0,'rows':[]};var _0x40b00d=_[_0xd916('0x3f')](db[_0xd916('0x40')][_0xd916('0x41')],function(_0x54b233){return{'name':_0x54b233[_0xd916('0x42')],'type':_0x54b233[_0xd916('0x43')][_0xd916('0x44')]};});_0x572e97['model']=_['map'](_0x40b00d,_0xd916('0x3c'));_0x572e97['query']=_['keys'](_0x241746[_0xd916('0x45')]);_0x572e97['filters']=_[_0xd916('0x46')](_0x572e97['model'],_0x572e97[_0xd916('0x45')]);_0x1d8ea0[_0xd916('0x47')]=_['intersection'](_0x572e97[_0xd916('0x48')],qs[_0xd916('0x49')](_0x241746[_0xd916('0x45')]['fields']));_0x1d8ea0[_0xd916('0x47')]=_0x1d8ea0['attributes'][_0xd916('0x4a')]?_0x1d8ea0[_0xd916('0x47')]:_0x572e97[_0xd916('0x48')];if(!_0x241746[_0xd916('0x45')][_0xd916('0x4b')](_0xd916('0x4c'))){_0x1d8ea0['limit']=qs['limit'](_0x241746[_0xd916('0x45')]['limit']);_0x1d8ea0[_0xd916('0x32')]=qs[_0xd916('0x32')](_0x241746['query'][_0xd916('0x32')]);}_0x1d8ea0['order']=qs[_0xd916('0x4d')](_0x241746[_0xd916('0x45')][_0xd916('0x4d')]);_0x1d8ea0[_0xd916('0x4e')]=qs[_0xd916('0x4f')](_[_0xd916('0x50')](_0x241746[_0xd916('0x45')],_0x572e97[_0xd916('0x4f')]),_0x40b00d);if(_0x241746[_0xd916('0x45')][_0xd916('0x51')]){_0x1d8ea0[_0xd916('0x4e')]=_[_0xd916('0x52')](_0x1d8ea0[_0xd916('0x4e')],{'$or':_[_0xd916('0x3f')](_0x40b00d,function(_0x556150){if(_0x556150['type']!==_0xd916('0x53')){var _0x513f93={};_0x513f93[_0x556150['name']]={'$like':'%'+_0x241746[_0xd916('0x45')]['filter']+'%'};return _0x513f93;}})});}_0x1d8ea0=_[_0xd916('0x52')]({},_0x1d8ea0,_0x241746[_0xd916('0x54')]);var _0x23f1a6={'where':_0x1d8ea0[_0xd916('0x4e')]};return db['ChatQueue'][_0xd916('0x55')](_0x23f1a6)[_0xd916('0x22')](function(_0x38e668){_0x47dd92[_0xd916('0x55')]=_0x38e668;if(_0x241746[_0xd916('0x45')][_0xd916('0x56')]){_0x1d8ea0[_0xd916('0x57')]=[{'all':!![]}];}return db[_0xd916('0x40')][_0xd916('0x58')](_0x1d8ea0);})[_0xd916('0x22')](function(_0x3cbeca){_0x47dd92[_0xd916('0x59')]=_0x3cbeca;return _0x47dd92;})[_0xd916('0x22')](respondWithFilteredResult(_0x2447ee,_0x1d8ea0))[_0xd916('0x2d')](handleError(_0x2447ee,null));};exports[_0xd916('0x5a')]=function(_0x4bd52b,_0x2a41a9){var _0x3f1f98={'raw':!![],'where':{'id':_0x4bd52b['params']['id']}},_0x2e68c3={};_0x2e68c3[_0xd916('0x48')]=_[_0xd916('0x5b')](db[_0xd916('0x40')][_0xd916('0x41')]);_0x2e68c3[_0xd916('0x45')]=_['keys'](_0x4bd52b[_0xd916('0x45')]);_0x2e68c3[_0xd916('0x4f')]=_['intersection'](_0x2e68c3[_0xd916('0x48')],_0x2e68c3[_0xd916('0x45')]);_0x3f1f98['attributes']=_[_0xd916('0x46')](_0x2e68c3[_0xd916('0x48')],qs['fields'](_0x4bd52b[_0xd916('0x45')][_0xd916('0x49')]));_0x3f1f98[_0xd916('0x47')]=_0x3f1f98['attributes']['length']?_0x3f1f98['attributes']:_0x2e68c3['model'];if(_0x4bd52b[_0xd916('0x45')][_0xd916('0x56')]){_0x3f1f98['include']=[{'all':!![]}];}_0x3f1f98=_[_0xd916('0x52')]({},_0x3f1f98,_0x4bd52b[_0xd916('0x54')]);return db[_0xd916('0x40')][_0xd916('0x5c')](_0x3f1f98)[_0xd916('0x22')](handleEntityNotFound(_0x2a41a9,null))['then'](respondWithResult(_0x2a41a9,null))[_0xd916('0x2d')](handleError(_0x2a41a9,null));};exports[_0xd916('0x5d')]=function(_0xb187af,_0x210d91){return db[_0xd916('0x40')][_0xd916('0x5d')](_0xb187af['body'],{})[_0xd916('0x22')](function(_0x144496){var _0x216853=_0xb187af[_0xd916('0x5e')]['get']({'plain':!![]});if(!_0x216853)throw new Error(_0xd916('0x5f'));if(_0x216853[_0xd916('0x60')]===_0xd916('0x5e')){var _0x5aa3e4=_0x144496['get']({'plain':!![]});var _0x196ad9=_0xd916('0x61');return db[_0xd916('0x62')][_0xd916('0x5c')]({'where':{'name':_0x196ad9,'userProfileId':_0x216853[_0xd916('0x63')]},'raw':!![]})[_0xd916('0x22')](function(_0x57ade5){if(_0x57ade5&&_0x57ade5['autoAssociation']===0x0){return db[_0xd916('0x64')]['create']({'name':_0x5aa3e4['name'],'resourceId':_0x5aa3e4['id'],'type':_0x57ade5[_0xd916('0x3c')],'sectionId':_0x57ade5['id']},{})[_0xd916('0x22')](function(){return _0x144496;});}else{return _0x144496;}})[_0xd916('0x2d')](function(_0x5bd738){logger[_0xd916('0x29')](_0xd916('0x65'),_0x5bd738);throw _0x5bd738;});}return _0x144496;})[_0xd916('0x22')](respondWithResult(_0x210d91,0xc9))[_0xd916('0x2d')](handleError(_0x210d91,null));};exports[_0xd916('0x38')]=function(_0x4f5630,_0x155b57){if(_0x4f5630[_0xd916('0x66')]['id']){delete _0x4f5630[_0xd916('0x66')]['id'];}return db['ChatQueue'][_0xd916('0x5c')]({'where':{'id':_0x4f5630[_0xd916('0x67')]['id']}})[_0xd916('0x22')](handleEntityNotFound(_0x155b57,null))[_0xd916('0x22')](saveUpdates(_0x4f5630[_0xd916('0x66')],null))[_0xd916('0x22')](respondWithResult(_0x155b57,null))['catch'](handleError(_0x155b57,null));};exports[_0xd916('0x39')]=function(_0x20f4e5,_0x8c84f7){return db[_0xd916('0x40')][_0xd916('0x5c')]({'where':{'id':_0x20f4e5[_0xd916('0x67')]['id']}})[_0xd916('0x22')](handleEntityNotFound(_0x8c84f7,null))['then'](removeEntity(_0x8c84f7,null))[_0xd916('0x2d')](handleError(_0x8c84f7,null));};exports[_0xd916('0x68')]=function(_0x4a1f57,_0x5b07c2){return db[_0xd916('0x40')][_0xd916('0x68')]()['then'](respondWithResult(_0x5b07c2,null))['catch'](handleError(_0x5b07c2,null));};exports[_0xd916('0x69')]=function(_0x8a077a,_0x2777e3,_0xa4f8d){var _0x1e2bb0={'raw':!![],'where':{}},_0x4a1965={},_0x23c119;return db[_0xd916('0x40')][_0xd916('0x6a')]({'where':{'id':_0x8a077a['params']['id']}})[_0xd916('0x22')](handleEntityNotFound(_0x2777e3,null))[_0xd916('0x22')](function(_0x107735){if(_0x107735){_0x23c119=_0x107735[_0xd916('0x3a')]({'plain':!![]});_0x4a1965[_0xd916('0x48')]=_['keys'](db[_0xd916('0x6b')][_0xd916('0x41')]);_0x4a1965['query']=_[_0xd916('0x5b')](_0x8a077a[_0xd916('0x45')]);_0x4a1965['filters']=_[_0xd916('0x46')](_0x4a1965[_0xd916('0x48')],_0x4a1965[_0xd916('0x45')]);_0x1e2bb0[_0xd916('0x47')]=_[_0xd916('0x46')](_0x4a1965[_0xd916('0x48')],qs[_0xd916('0x49')](_0x8a077a[_0xd916('0x45')]['fields']));_0x1e2bb0[_0xd916('0x47')]=_0x1e2bb0[_0xd916('0x47')][_0xd916('0x4a')]?_0x1e2bb0['attributes']:_0x4a1965[_0xd916('0x48')];if(!_0x8a077a['query']['hasOwnProperty'](_0xd916('0x4c'))){_0x1e2bb0[_0xd916('0x6c')]=qs[_0xd916('0x6c')](_0x8a077a[_0xd916('0x45')][_0xd916('0x6c')]);_0x1e2bb0['offset']=qs[_0xd916('0x32')](_0x8a077a[_0xd916('0x45')][_0xd916('0x32')]);}_0x1e2bb0[_0xd916('0x6d')]=qs[_0xd916('0x4d')](_0x8a077a[_0xd916('0x45')][_0xd916('0x4d')]);_0x1e2bb0['where']=qs['filters'](_[_0xd916('0x50')](_0x8a077a[_0xd916('0x45')],_0x4a1965[_0xd916('0x4f')]));_0x1e2bb0['where'][_0xd916('0x6e')]=_0x107735['id'];if(_0x8a077a[_0xd916('0x45')][_0xd916('0x51')]){_0x1e2bb0[_0xd916('0x4e')]=_[_0xd916('0x52')](_0x1e2bb0[_0xd916('0x4e')],{'$or':_['map'](_0x1e2bb0[_0xd916('0x47')],function(_0x55f8b0){var _0x5972c8={};_0x5972c8[_0x55f8b0]={'$like':'%'+_0x8a077a[_0xd916('0x45')][_0xd916('0x51')]+'%'};return _0x5972c8;})});}_0x1e2bb0=_[_0xd916('0x52')]({},_0x1e2bb0,_0x8a077a[_0xd916('0x54')]);return db['UserChatQueue'][_0xd916('0x58')](_0x1e2bb0);}})['then'](function(_0x4b9a09){if(_0x4b9a09){return db[_0xd916('0x6f')][_0xd916('0x70')]({'where':{'id':_[_0xd916('0x3f')](_0x4b9a09,_0xd916('0x71')),'role':_0xd916('0x72')},'attributes':['id',_0xd916('0x3c'),_0xd916('0x73'),_0xd916('0x74'),_0xd916('0x75')]});}})[_0xd916('0x22')](function(_0x2ca655){if(_0x2ca655){return{'count':_0x2ca655['count'],'rows':_['map'](_0x2ca655[_0xd916('0x59')],function(_0x158367){return{'membername':_0x158367[_0xd916('0x3c')],'UserId':_0x158367['id'],'queue_name':_0x23c119[_0xd916('0x3c')],'ChatQueueId':_0x23c119['id'],'interface':util[_0xd916('0x76')]('%s/%s','SIP',_0x158367[_0xd916('0x3c')]),'penalty':0x0,'paused':_0x158367[_0xd916('0x73')],'createdAt':_0x158367[_0xd916('0x75')],'updatedAt':_0x158367[_0xd916('0x74')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xd916('0x22')](respondWithFilteredResult(_0x2777e3,_0x1e2bb0))[_0xd916('0x2d')](handleError(_0x2777e3,null));};exports['getTeams']=function(_0x5cca6d,_0x338cea,_0x35a0d7){var _0x1a45cf={};var _0x262b6b={};var _0x45a7e4;var _0x19a1f9;return db[_0xd916('0x40')][_0xd916('0x6a')]({'where':{'id':_0x5cca6d['params']['id']}})[_0xd916('0x22')](handleEntityNotFound(_0x338cea,null))['then'](function(_0x3fd814){if(_0x3fd814){_0x45a7e4=_0x3fd814;_0x262b6b[_0xd916('0x48')]=_[_0xd916('0x5b')](db[_0xd916('0x77')][_0xd916('0x41')]);_0x262b6b[_0xd916('0x45')]=_[_0xd916('0x5b')](_0x5cca6d['query']);_0x262b6b[_0xd916('0x4f')]=_['intersection'](_0x262b6b['model'],_0x262b6b[_0xd916('0x45')]);_0x1a45cf[_0xd916('0x47')]=_[_0xd916('0x46')](_0x262b6b[_0xd916('0x48')],qs['fields'](_0x5cca6d[_0xd916('0x45')][_0xd916('0x49')]));_0x1a45cf[_0xd916('0x47')]=_0x1a45cf['attributes']['length']?_0x1a45cf['attributes']:_0x262b6b[_0xd916('0x48')];_0x1a45cf[_0xd916('0x6d')]=qs[_0xd916('0x4d')](_0x5cca6d[_0xd916('0x45')][_0xd916('0x4d')]);_0x1a45cf['where']=qs[_0xd916('0x4f')](_['pick'](_0x5cca6d[_0xd916('0x45')],_0x262b6b[_0xd916('0x4f')]));if(_0x5cca6d['query'][_0xd916('0x51')]){_0x1a45cf[_0xd916('0x4e')]=_[_0xd916('0x52')](_0x1a45cf[_0xd916('0x4e')],{'$or':_[_0xd916('0x3f')](_0x1a45cf[_0xd916('0x47')],function(_0x53c95d){var _0x483f65={};_0x483f65[_0x53c95d]={'$like':'%'+_0x5cca6d[_0xd916('0x45')][_0xd916('0x51')]+'%'};return _0x483f65;})});}_0x1a45cf=_['merge']({},_0x1a45cf,_0x5cca6d['options']);return _0x45a7e4[_0xd916('0x78')](_0x1a45cf);}})[_0xd916('0x22')](function(_0x55ad11){if(_0x55ad11){_0x19a1f9=_0x55ad11[_0xd916('0x4a')];if(!_0x5cca6d['query']['hasOwnProperty'](_0xd916('0x4c'))){_0x1a45cf[_0xd916('0x6c')]=qs[_0xd916('0x6c')](_0x5cca6d[_0xd916('0x45')][_0xd916('0x6c')]);_0x1a45cf[_0xd916('0x32')]=qs['offset'](_0x5cca6d[_0xd916('0x45')][_0xd916('0x32')]);}return _0x45a7e4['getTeams'](_0x1a45cf);}})[_0xd916('0x22')](function(_0x58a407){if(_0x58a407){return _0x58a407?{'count':_0x19a1f9,'rows':_0x58a407}:null;}})[_0xd916('0x22')](respondWithResult(_0x338cea,null))[_0xd916('0x2d')](handleError(_0x338cea,null));};exports['addTeams']=function(_0x1b1fdd,_0x94a86,_0x56f080){var _0x5d4199=_0x1b1fdd[_0xd916('0x66')][_0xd916('0x79')];return db[_0xd916('0x77')][_0xd916('0x58')]({'where':{'id':_0x5d4199},'attributes':['id'],'include':[{'model':db['User'],'as':'Agents','attributes':['id',_0xd916('0x3c'),_0xd916('0x7a'),_0xd916('0x7b'),'interface'],'raw':!![]}]})[_0xd916('0x22')](function(_0x4d3356){if(_0x4d3356){var _0x187df8=_['flatMap'](_0x4d3356,function(_0x17f1d9){var _0x552291=_0x17f1d9['get']({'plain':!![]});return _0x552291[_0xd916('0x7c')];});return db['ChatQueue'][_0xd916('0x5c')]({'where':{'id':_0x1b1fdd['params']['id']}})[_0xd916('0x22')](function(_0x1555a9){return db[_0xd916('0x7d')][_0xd916('0x7e')](function(_0x179668){return _0x1555a9[_0xd916('0x7f')](_0x5d4199,{'transaction':_0x179668})['then'](function(){return BPromise[_0xd916('0x80')](_0x187df8,function(_0x60a6c4){return db['UserChatQueue'][_0xd916('0x81')]({'where':{'UserId':_0x60a6c4['id'],'ChatQueueId':_0x1b1fdd[_0xd916('0x67')]['id']},'transaction':_0x179668});});})[_0xd916('0x22')](function(){_0x187df8[_0xd916('0x82')](function(_0x57797c){socket[_0xd916('0x83')](_0xd916('0x84'),{'UserId':_0x57797c['id'],'ChatQueueId':_0x1555a9['id']});});});});});}})[_0xd916('0x22')](respondWithStatusCode(_0x94a86,null))[_0xd916('0x2d')](handleError(_0x94a86,null));};exports[_0xd916('0x85')]=function(_0x3ed457,_0x29976e,_0x20ebb5){return db[_0xd916('0x77')]['findAll']({'where':{'id':_0x3ed457['query'][_0xd916('0x79')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0xd916('0x7c'),'attributes':['id'],'raw':!![]}]})[_0xd916('0x22')](handleEntityNotFound(_0x29976e,null))[_0xd916('0x22')](function(_0x41c2a7){var _0x5e7620=_[_0xd916('0x3f')](_0x41c2a7,'id');var _0x1a7dd3=[];var _0x699f00=[];var _0x5df826=squel[_0xd916('0x86')]();_0x5df826['field'](_0xd916('0x87'))['from'](_0xd916('0x88'),'tq')[_0xd916('0x89')](_0xd916('0x8a'),'ut',_0xd916('0x8b'))[_0xd916('0x4e')](_0xd916('0x8c'),_0x3ed457[_0xd916('0x67')]['id']);for(var _0x32d7b6=0x0;_0x32d7b6<_0x41c2a7[_0xd916('0x4a')];_0x32d7b6+=0x1){let _0x34227b=_0x41c2a7[_0x32d7b6];for(var _0x4ed502=0x0;_0x4ed502<_0x34227b[_0xd916('0x7c')][_0xd916('0x4a')];_0x4ed502+=0x1){let _0x445999=_0x34227b[_0xd916('0x7c')][_0x4ed502];var _0x98c281=_0x5df826['clone']();_0x98c281[_0xd916('0x4e')](_0xd916('0x8d'),_0x445999['id']);_0x699f00[_0xd916('0x8e')](db['sequelize'][_0xd916('0x45')](_0x98c281['toString'](),{'type':db[_0xd916('0x7d')][_0xd916('0x8f')][_0xd916('0x90')]})[_0xd916('0x22')](function(_0x2fe4e1){if(_0x2fe4e1[_0xd916('0x4a')]===0x1){return _0x445999['id'];}else{var _0x4cc08e=_['every'](_[_0xd916('0x3f')](_0x2fe4e1,_0xd916('0x91')),function(_0xc79494){return _[_0xd916('0x92')](_0x5e7620,_0xc79494);});if(_0x4cc08e){return _0x445999['id'];}}}));}}return BPromise[_0xd916('0x93')](_0x699f00)[_0xd916('0x22')](function(_0xf6e429){_0x1a7dd3=_(_0x1a7dd3)[_0xd916('0x94')](_0xf6e429)[_0xd916('0x95')]()[_0xd916('0x96')]();return db[_0xd916('0x40')]['find']({'where':{'id':_0x3ed457[_0xd916('0x67')]['id']}})[_0xd916('0x22')](function(_0x23b80d){return db[_0xd916('0x7d')][_0xd916('0x7e')](function(_0x46a578){return _0x23b80d[_0xd916('0x85')](_0x3ed457[_0xd916('0x45')][_0xd916('0x79')],{'transaction':_0x46a578})[_0xd916('0x22')](function(){if(!_[_0xd916('0x97')](_0x1a7dd3)){return _0x23b80d[_0xd916('0x98')](_0x1a7dd3,{'transaction':_0x46a578});}})[_0xd916('0x22')](function(){_0x1a7dd3[_0xd916('0x82')](function(_0x343bf1){socket['emit'](_0xd916('0x99'),{'UserId':_0x343bf1,'ChatQueueId':_0x23b80d['id']});});});});});});})['then'](respondWithStatusCode(_0x29976e,null))[_0xd916('0x2d')](handleError(_0x29976e,null));};exports['addAgents']=function(_0x5e39a8,_0x300f48,_0x42c7d3){return db['ChatQueue'][_0xd916('0x5c')]({'where':{'id':_0x5e39a8['params']['id']}})[_0xd916('0x22')](handleEntityNotFound(_0x300f48,null))['then'](function(_0x1be476){if(_0x1be476){return _0x1be476['addAgents'](_0x5e39a8[_0xd916('0x66')]['ids'],_[_0xd916('0x9a')](_0x5e39a8[_0xd916('0x66')],[_0xd916('0x79'),'id'])||{})[_0xd916('0x9b')](function(_0x546ce2){for(var _0x1f54a3=0x0;_0x1f54a3<_0x5e39a8[_0xd916('0x66')]['ids'][_0xd916('0x4a')];_0x1f54a3+=0x1){socket[_0xd916('0x83')](_0xd916('0x84'),{'UserId':Number(_0x5e39a8[_0xd916('0x66')]['ids'][_0x1f54a3]),'ChatQueueId':Number(_0x5e39a8[_0xd916('0x67')]['id'])});}return _0x546ce2;});}})[_0xd916('0x22')](respondWithResult(_0x300f48,null))['catch'](handleError(_0x300f48,null));};exports['removeAgents']=function(_0xad025a,_0x97aa1f,_0x326c33){return db['ChatQueue'][_0xd916('0x5c')]({'where':{'id':_0xad025a[_0xd916('0x67')]['id']}})[_0xd916('0x22')](handleEntityNotFound(_0x97aa1f,null))['then'](function(_0x39ffba){if(_0x39ffba){return _0x39ffba['removeAgents'](_0xad025a[_0xd916('0x45')][_0xd916('0x79')])[_0xd916('0x22')](function(){if(_[_0xd916('0x9c')](_0xad025a['query'][_0xd916('0x79')])){for(var _0x190979=0x0;_0x190979<_0xad025a[_0xd916('0x45')][_0xd916('0x79')]['length'];_0x190979+=0x1){socket[_0xd916('0x83')](_0xd916('0x99'),{'UserId':Number(_0xad025a[_0xd916('0x45')][_0xd916('0x79')][_0x190979]),'ChatQueueId':Number(_0xad025a[_0xd916('0x67')]['id'])});}}else{socket[_0xd916('0x83')](_0xd916('0x99'),{'UserId':Number(_0xad025a[_0xd916('0x45')][_0xd916('0x79')]),'ChatQueueId':Number(_0xad025a['params']['id'])});}});}})[_0xd916('0x22')](respondWithStatusCode(_0x97aa1f,null))[_0xd916('0x2d')](handleError(_0x97aa1f,null));};exports[_0xd916('0x9d')]=function(_0x13137a,_0x3d4bfb,_0x1a937b){var _0x12e011={};var _0x25eb02={};var _0x5146e9;var _0x6f4669;return db[_0xd916('0x40')][_0xd916('0x6a')]({'where':{'id':_0x13137a['params']['id']}})[_0xd916('0x22')](handleEntityNotFound(_0x3d4bfb,null))[_0xd916('0x22')](function(_0x5d4494){if(_0x5d4494){_0x5146e9=_0x5d4494;_0x25eb02['model']=_[_0xd916('0x5b')](db['User'][_0xd916('0x41')]);_0x25eb02[_0xd916('0x45')]=_[_0xd916('0x5b')](_0x13137a['query']);_0x25eb02[_0xd916('0x4f')]=_['intersection'](_0x25eb02[_0xd916('0x48')],_0x25eb02[_0xd916('0x45')]);_0x12e011[_0xd916('0x47')]=_[_0xd916('0x46')](_0x25eb02[_0xd916('0x48')],qs['fields'](_0x13137a[_0xd916('0x45')][_0xd916('0x49')]));_0x12e011[_0xd916('0x47')]=_0x12e011[_0xd916('0x47')][_0xd916('0x4a')]?_0x12e011[_0xd916('0x47')]:_0x25eb02[_0xd916('0x48')];_0x12e011[_0xd916('0x6d')]=qs['sort'](_0x13137a[_0xd916('0x45')][_0xd916('0x4d')]);_0x12e011[_0xd916('0x4e')]=qs[_0xd916('0x4f')](_[_0xd916('0x50')](_0x13137a[_0xd916('0x45')],_0x25eb02['filters']));if(_0x13137a[_0xd916('0x45')][_0xd916('0x51')]){_0x12e011[_0xd916('0x4e')]=_[_0xd916('0x52')](_0x12e011[_0xd916('0x4e')],{'$or':_[_0xd916('0x3f')](_0x12e011[_0xd916('0x47')],function(_0x2126ba){var _0x1d8452={};_0x1d8452[_0x2126ba]={'$like':'%'+_0x13137a[_0xd916('0x45')][_0xd916('0x51')]+'%'};return _0x1d8452;})});}_0x12e011=_['merge']({},_0x12e011,_0x13137a[_0xd916('0x54')]);return _0x5146e9[_0xd916('0x9d')](_0x12e011);}})['then'](function(_0x25c1d3){if(_0x25c1d3){_0x6f4669=_0x25c1d3['length'];if(!_0x13137a[_0xd916('0x45')][_0xd916('0x4b')](_0xd916('0x4c'))){_0x12e011[_0xd916('0x6c')]=qs[_0xd916('0x6c')](_0x13137a[_0xd916('0x45')][_0xd916('0x6c')]);_0x12e011[_0xd916('0x32')]=qs[_0xd916('0x32')](_0x13137a[_0xd916('0x45')][_0xd916('0x32')]);}return _0x5146e9[_0xd916('0x9d')](_0x12e011);}})['then'](function(_0x29d166){if(_0x29d166){return _0x29d166?{'count':_0x6f4669,'rows':_0x29d166}:null;}})[_0xd916('0x22')](respondWithResult(_0x3d4bfb,null))['catch'](handleError(_0x3d4bfb,null));};