Built motion from commit (unavailable).|2.0.82
[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 _0x1ab7=['penalty','addTeams','removeTeams','removeAgents','addAgents','omit','spread','emit','userChatQueue:remove','getAgents','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','jsforce','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','socket.io-emitter','./chatQueue.socket','jayson/promise','client','request','info','request\x20sent','debug','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','ChatQueue,\x20%s,\x20%s','message','result','catch','sendStatus','status','end','json','offset','limit','set','Content-Range','apply','save','update','then','stack','name','send','index','ChatQueue','rawAttributes','model','keys','dateStart','query','dateEnd','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','add','day','merge','filter','map','options','count','include','findAll','rows','show','find','create','body','params','destroy','describe','getMembers','get','UserChatQueue','User','findAndCountAll','UserId','agent','chatPause','createdAt','format','%s/%s','updatedAt','findOne','Team','pick','getTeams','ids','Agents','union'];(function(_0x51a4d9,_0x48bd80){var _0x2ba30f=function(_0x3a71e8){while(--_0x3a71e8){_0x51a4d9['push'](_0x51a4d9['shift']());}};_0x2ba30f(++_0x48bd80);}(_0x1ab7,0x166));var _0x71ab=function(_0x52c3c3,_0x5af662){_0x52c3c3=_0x52c3c3-0x0;var _0x34389a=_0x1ab7[_0x52c3c3];return _0x34389a;};'use strict';var pdf=require(_0x71ab('0x0'));var emlformat=require(_0x71ab('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x71ab('0x2'));var jsonpatch=require(_0x71ab('0x3'));var rp=require(_0x71ab('0x4'));var moment=require(_0x71ab('0x5'));var BPromise=require(_0x71ab('0x6'));var Mustache=require(_0x71ab('0x7'));var util=require(_0x71ab('0x8'));var path=require(_0x71ab('0x9'));var sox=require(_0x71ab('0xa'));var csv=require(_0x71ab('0xb'));var ejs=require(_0x71ab('0xc'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x71ab('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x71ab('0xb'));var querystring=require(_0x71ab('0xe'));var Papa=require(_0x71ab('0xf'));var qs=require(_0x71ab('0x10'));var logger=require(_0x71ab('0x11'))(_0x71ab('0x12'));var utils=require(_0x71ab('0x13'));var config=require('../../config/environment');var db=require(_0x71ab('0x14'))['db'];var socket=require(_0x71ab('0x15'))({'host':'localhost','port':0x18eb});require(_0x71ab('0x16'))['register'](socket);var jayson=require(_0x71ab('0x17'));var client=jayson[_0x71ab('0x18')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1d5fef,_0x368c18,_0x4f92d3,_0x2e25ff){return new BPromise(function(_0x33be5b,_0x3c2954){var _0x2f36dd=_0x2e25ff||client;return _0x2f36dd[_0x71ab('0x19')](_0x1d5fef,_0x4f92d3)['then'](function(_0x45eea0){logger[_0x71ab('0x1a')]('ChatQueue,\x20%s,\x20%s',_0x368c18,_0x71ab('0x1b'));logger[_0x71ab('0x1c')](_0x71ab('0x1d'),_0x368c18,'request\x20sent',JSON[_0x71ab('0x1e')](_0x45eea0));if(_0x45eea0[_0x71ab('0x1f')]){if(_0x45eea0[_0x71ab('0x1f')][_0x71ab('0x20')]===0x1f4){logger[_0x71ab('0x1f')](_0x71ab('0x21'),_0x368c18,_0x45eea0[_0x71ab('0x1f')][_0x71ab('0x22')]);return _0x3c2954(_0x45eea0[_0x71ab('0x1f')][_0x71ab('0x22')]);}logger[_0x71ab('0x1f')](_0x71ab('0x21'),_0x368c18,_0x45eea0[_0x71ab('0x1f')][_0x71ab('0x22')]);return _0x33be5b(_0x45eea0[_0x71ab('0x1f')]['message']);}else{logger[_0x71ab('0x1a')]('ChatQueue,\x20%s,\x20%s',_0x368c18,_0x71ab('0x1b'));_0x33be5b(_0x45eea0[_0x71ab('0x23')][_0x71ab('0x22')]);}})[_0x71ab('0x24')](function(_0x3f6e5a){logger[_0x71ab('0x1f')](_0x71ab('0x21'),_0x368c18,_0x3f6e5a);_0x3c2954(_0x3f6e5a);});});}function respondWithStatusCode(_0x450a98,_0x4efe40){_0x4efe40=_0x4efe40||0xcc;return function(_0x2db21a){if(_0x2db21a){return _0x450a98[_0x71ab('0x25')](_0x4efe40);}return _0x450a98[_0x71ab('0x26')](_0x4efe40)[_0x71ab('0x27')]();};}function respondWithResult(_0x559e47,_0x11f3cf){_0x11f3cf=_0x11f3cf||0xc8;return function(_0xe69a56){if(_0xe69a56){return _0x559e47[_0x71ab('0x26')](_0x11f3cf)[_0x71ab('0x28')](_0xe69a56);}};}function respondWithFilteredResult(_0x4463b7,_0x2cfa48){return function(_0x231d93){if(_0x231d93){var _0x407ae0=_0x231d93['count'],_0x4c9ec8=_0x2cfa48[_0x71ab('0x29')],_0x3f536c=_0x2cfa48[_0x71ab('0x29')]+_0x2cfa48[_0x71ab('0x2a')],_0x37adcd;if(_0x3f536c>=_0x407ae0){_0x3f536c=_0x407ae0;_0x37adcd=0xc8;}else{_0x37adcd=0xce;}_0x4463b7['status'](_0x37adcd);return _0x4463b7[_0x71ab('0x2b')](_0x71ab('0x2c'),_0x4c9ec8+'-'+_0x3f536c+'/'+_0x407ae0)['json'](_0x231d93);}return null;};}function patchUpdates(_0x444c78){return function(_0x2b14b2){try{jsonpatch[_0x71ab('0x2d')](_0x2b14b2,_0x444c78,!![]);}catch(_0x56079b){return BPromise['reject'](_0x56079b);}return _0x2b14b2[_0x71ab('0x2e')]();};}function saveUpdates(_0x20555f,_0x39aa4b){return function(_0xefdd2e){if(_0xefdd2e){return _0xefdd2e[_0x71ab('0x2f')](_0x20555f)[_0x71ab('0x30')](function(_0x21a23a){return _0x21a23a;});}return null;};}function removeEntity(_0x56d4b8,_0x10afad){return function(_0x123bab){if(_0x123bab){return _0x123bab['destroy']()['then'](function(){_0x56d4b8[_0x71ab('0x26')](0xcc)[_0x71ab('0x27')]();});}};}function handleEntityNotFound(_0x3b59a1,_0x22c2d0){return function(_0x25b386){if(!_0x25b386){_0x3b59a1[_0x71ab('0x25')](0x194);}return _0x25b386;};}function handleError(_0x536b92,_0x4392db){_0x4392db=_0x4392db||0x1f4;return function(_0x484353){logger['error'](_0x484353[_0x71ab('0x31')]);if(_0x484353[_0x71ab('0x32')]){delete _0x484353['name'];}_0x536b92[_0x71ab('0x26')](_0x4392db)[_0x71ab('0x33')](_0x484353);};}exports[_0x71ab('0x34')]=function(_0x239e5b,_0x5362e0){var _0x4ebaa4={},_0x4607d8={},_0x5ebb54={'count':0x0,'rows':[]};var _0x2c0ec6=db[_0x71ab('0x35')][_0x71ab('0x36')];_0x4607d8[_0x71ab('0x37')]=_[_0x71ab('0x38')](_0x2c0ec6);var _0x1dbbf8={'dateStart':_0x239e5b['query'][_0x71ab('0x39')],'dateEnd':_0x239e5b[_0x71ab('0x3a')][_0x71ab('0x3b')]};delete _0x239e5b['query'][_0x71ab('0x39')];delete _0x239e5b[_0x71ab('0x3a')][_0x71ab('0x3b')];_0x4607d8[_0x71ab('0x3a')]=_[_0x71ab('0x38')](_0x239e5b[_0x71ab('0x3a')]);_0x4607d8['filters']=_[_0x71ab('0x3c')](_0x4607d8[_0x71ab('0x37')],_0x4607d8[_0x71ab('0x3a')]);_0x4ebaa4['attributes']=_[_0x71ab('0x3c')](_0x4607d8[_0x71ab('0x37')],qs[_0x71ab('0x3d')](_0x239e5b[_0x71ab('0x3a')][_0x71ab('0x3d')]));_0x4ebaa4[_0x71ab('0x3e')]=_0x4ebaa4['attributes'][_0x71ab('0x3f')]?_0x4ebaa4[_0x71ab('0x3e')]:_0x4607d8[_0x71ab('0x37')];if(!_0x239e5b['query'][_0x71ab('0x40')](_0x71ab('0x41'))){_0x4ebaa4[_0x71ab('0x2a')]=qs[_0x71ab('0x2a')](_0x239e5b[_0x71ab('0x3a')][_0x71ab('0x2a')]);_0x4ebaa4[_0x71ab('0x29')]=qs[_0x71ab('0x29')](_0x239e5b[_0x71ab('0x3a')][_0x71ab('0x29')]);}_0x4ebaa4[_0x71ab('0x42')]=qs[_0x71ab('0x43')](_0x239e5b[_0x71ab('0x3a')]['sort']);_0x4ebaa4[_0x71ab('0x44')]=qs['filters'](_['pick'](_0x239e5b[_0x71ab('0x3a')],_0x4607d8[_0x71ab('0x45')]));if(_0x1dbbf8[_0x71ab('0x39')]){if(_0x1dbbf8[_0x71ab('0x3b')]){_0x1dbbf8[_0x71ab('0x3b')]=moment(_0x1dbbf8['dateEnd'])[_0x71ab('0x46')](0x1,_0x71ab('0x47'));}else{_0x1dbbf8['dateEnd']=moment(_0x1dbbf8['dateStart'])['add'](0x1,_0x71ab('0x47'));}_[_0x71ab('0x48')](_0x4ebaa4[_0x71ab('0x44')],{'createdAt':{'$gte':_0x1dbbf8[_0x71ab('0x39')],'$lte':_0x1dbbf8[_0x71ab('0x3b')]}});}if(_0x239e5b[_0x71ab('0x3a')][_0x71ab('0x49')]){_0x4ebaa4['where']=_[_0x71ab('0x48')](_0x4ebaa4[_0x71ab('0x44')],{'$or':_[_0x71ab('0x4a')](_0x4ebaa4[_0x71ab('0x3e')],function(_0x23e1f0){var _0x52a26a={};_0x52a26a[_0x23e1f0]={'$like':'%'+_0x239e5b[_0x71ab('0x3a')]['filter']+'%'};return _0x52a26a;})});}_0x4ebaa4=_[_0x71ab('0x48')]({},_0x4ebaa4,_0x239e5b[_0x71ab('0x4b')]);var _0x417142={'where':_0x4ebaa4[_0x71ab('0x44')]};return db['ChatQueue'][_0x71ab('0x4c')](_0x417142)[_0x71ab('0x30')](function(_0x5e9c3d){_0x5ebb54['count']=_0x5e9c3d;if(_0x239e5b[_0x71ab('0x3a')]['includeAll']){_0x4ebaa4[_0x71ab('0x4d')]=[{'all':!![]}];}return db[_0x71ab('0x35')][_0x71ab('0x4e')](_0x4ebaa4);})[_0x71ab('0x30')](function(_0x11aac2){_0x5ebb54[_0x71ab('0x4f')]=_0x11aac2;return _0x5ebb54;})[_0x71ab('0x30')](respondWithFilteredResult(_0x5362e0,_0x4ebaa4))['catch'](handleError(_0x5362e0,null));};exports[_0x71ab('0x50')]=function(_0x1c54df,_0x3d68f4){var _0x22ebc1={'raw':!![],'where':{'id':_0x1c54df['params']['id']}},_0x7d04d4={};_0x7d04d4[_0x71ab('0x37')]=_['keys'](db['ChatQueue'][_0x71ab('0x36')]);_0x7d04d4['query']=_['keys'](_0x1c54df[_0x71ab('0x3a')]);_0x7d04d4[_0x71ab('0x45')]=_[_0x71ab('0x3c')](_0x7d04d4[_0x71ab('0x37')],_0x7d04d4['query']);_0x22ebc1[_0x71ab('0x3e')]=_[_0x71ab('0x3c')](_0x7d04d4[_0x71ab('0x37')],qs[_0x71ab('0x3d')](_0x1c54df[_0x71ab('0x3a')][_0x71ab('0x3d')]));_0x22ebc1[_0x71ab('0x3e')]=_0x22ebc1['attributes'][_0x71ab('0x3f')]?_0x22ebc1[_0x71ab('0x3e')]:_0x7d04d4['model'];if(_0x1c54df[_0x71ab('0x3a')]['includeAll']){_0x22ebc1['include']=[{'all':!![]}];}_0x22ebc1=_[_0x71ab('0x48')]({},_0x22ebc1,_0x1c54df[_0x71ab('0x4b')]);return db[_0x71ab('0x35')][_0x71ab('0x51')](_0x22ebc1)['then'](handleEntityNotFound(_0x3d68f4,null))[_0x71ab('0x30')](respondWithResult(_0x3d68f4,null))[_0x71ab('0x24')](handleError(_0x3d68f4,null));};exports['create']=function(_0xb47323,_0xd21277){return db[_0x71ab('0x35')][_0x71ab('0x52')](_0xb47323[_0x71ab('0x53')],{})[_0x71ab('0x30')](respondWithResult(_0xd21277,0xc9))[_0x71ab('0x24')](handleError(_0xd21277,null));};exports[_0x71ab('0x2f')]=function(_0x454754,_0x2d0932){if(_0x454754[_0x71ab('0x53')]['id']){delete _0x454754[_0x71ab('0x53')]['id'];}return db[_0x71ab('0x35')][_0x71ab('0x51')]({'where':{'id':_0x454754[_0x71ab('0x54')]['id']}})[_0x71ab('0x30')](handleEntityNotFound(_0x2d0932,null))[_0x71ab('0x30')](saveUpdates(_0x454754[_0x71ab('0x53')],null))[_0x71ab('0x30')](respondWithResult(_0x2d0932,null))['catch'](handleError(_0x2d0932,null));};exports[_0x71ab('0x55')]=function(_0x49555f,_0x249461){return db['ChatQueue'][_0x71ab('0x51')]({'where':{'id':_0x49555f[_0x71ab('0x54')]['id']}})['then'](handleEntityNotFound(_0x249461,null))[_0x71ab('0x30')](removeEntity(_0x249461,null))[_0x71ab('0x24')](handleError(_0x249461,null));};exports['describe']=function(_0x4bb236,_0x56d55c){return db[_0x71ab('0x35')][_0x71ab('0x56')]()[_0x71ab('0x30')](respondWithResult(_0x56d55c,null))[_0x71ab('0x24')](handleError(_0x56d55c,null));};exports[_0x71ab('0x57')]=function(_0x33aee6,_0x379c76,_0x18ee22){var _0x5aefd2={'raw':!![],'where':{}},_0x231c7c={},_0x1af3b4;return db[_0x71ab('0x35')]['findOne']({'where':{'id':_0x33aee6[_0x71ab('0x54')]['id']}})[_0x71ab('0x30')](handleEntityNotFound(_0x379c76,null))[_0x71ab('0x30')](function(_0x5d5f31){if(_0x5d5f31){_0x1af3b4=_0x5d5f31[_0x71ab('0x58')]({'plain':!![]});_0x231c7c['model']=_[_0x71ab('0x38')](db[_0x71ab('0x59')][_0x71ab('0x36')]);_0x231c7c[_0x71ab('0x3a')]=_[_0x71ab('0x38')](_0x33aee6['query']);_0x231c7c[_0x71ab('0x45')]=_[_0x71ab('0x3c')](_0x231c7c[_0x71ab('0x37')],_0x231c7c[_0x71ab('0x3a')]);_0x5aefd2[_0x71ab('0x3e')]=_['intersection'](_0x231c7c['model'],qs[_0x71ab('0x3d')](_0x33aee6['query'][_0x71ab('0x3d')]));_0x5aefd2[_0x71ab('0x3e')]=_0x5aefd2[_0x71ab('0x3e')]['length']?_0x5aefd2[_0x71ab('0x3e')]:_0x231c7c[_0x71ab('0x37')];if(!_0x33aee6[_0x71ab('0x3a')][_0x71ab('0x40')]('nolimit')){_0x5aefd2['limit']=qs[_0x71ab('0x2a')](_0x33aee6['query'][_0x71ab('0x2a')]);_0x5aefd2[_0x71ab('0x29')]=qs[_0x71ab('0x29')](_0x33aee6[_0x71ab('0x3a')][_0x71ab('0x29')]);}_0x5aefd2[_0x71ab('0x42')]=qs[_0x71ab('0x43')](_0x33aee6['query'][_0x71ab('0x43')]);_0x5aefd2['where']=qs[_0x71ab('0x45')](_['pick'](_0x33aee6[_0x71ab('0x3a')],_0x231c7c[_0x71ab('0x45')]));_0x5aefd2[_0x71ab('0x44')]['ChatQueueId']=_0x5d5f31['id'];if(_0x33aee6['query'][_0x71ab('0x49')]){_0x5aefd2[_0x71ab('0x44')]=_[_0x71ab('0x48')](_0x5aefd2[_0x71ab('0x44')],{'$or':_[_0x71ab('0x4a')](_0x5aefd2[_0x71ab('0x3e')],function(_0x3a2311){var _0x5aa7d3={};_0x5aa7d3[_0x3a2311]={'$like':'%'+_0x33aee6[_0x71ab('0x3a')][_0x71ab('0x49')]+'%'};return _0x5aa7d3;})});}_0x5aefd2=_['merge']({},_0x5aefd2,_0x33aee6['options']);return db[_0x71ab('0x59')]['findAll'](_0x5aefd2);}})[_0x71ab('0x30')](function(_0x5c7b11){if(_0x5c7b11){return db[_0x71ab('0x5a')][_0x71ab('0x5b')]({'where':{'id':_[_0x71ab('0x4a')](_0x5c7b11,_0x71ab('0x5c')),'role':_0x71ab('0x5d')},'attributes':['id',_0x71ab('0x32'),_0x71ab('0x5e'),'updatedAt',_0x71ab('0x5f')]});}})[_0x71ab('0x30')](function(_0x45fba3){if(_0x45fba3){return{'count':_0x45fba3[_0x71ab('0x4c')],'rows':_[_0x71ab('0x4a')](_0x45fba3['rows'],function(_0x1f9384){return{'membername':_0x1f9384[_0x71ab('0x32')],'UserId':_0x1f9384['id'],'queue_name':_0x1af3b4['name'],'ChatQueueId':_0x1af3b4['id'],'interface':util[_0x71ab('0x60')](_0x71ab('0x61'),'SIP',_0x1f9384[_0x71ab('0x32')]),'penalty':0x0,'paused':_0x1f9384[_0x71ab('0x5e')],'createdAt':_0x1f9384['createdAt'],'updatedAt':_0x1f9384[_0x71ab('0x62')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x71ab('0x30')](respondWithFilteredResult(_0x379c76,_0x5aefd2))[_0x71ab('0x24')](handleError(_0x379c76,null));};exports['getTeams']=function(_0xb1a784,_0x5c0ae7,_0x2ac6d7){var _0x501138={};var _0x185e19={};var _0x44c953;var _0x539f71;return db[_0x71ab('0x35')][_0x71ab('0x63')]({'where':{'id':_0xb1a784[_0x71ab('0x54')]['id']}})[_0x71ab('0x30')](handleEntityNotFound(_0x5c0ae7,null))[_0x71ab('0x30')](function(_0x4a007d){if(_0x4a007d){_0x44c953=_0x4a007d;_0x185e19[_0x71ab('0x37')]=_[_0x71ab('0x38')](db[_0x71ab('0x64')][_0x71ab('0x36')]);_0x185e19[_0x71ab('0x3a')]=_['keys'](_0xb1a784[_0x71ab('0x3a')]);_0x185e19[_0x71ab('0x45')]=_[_0x71ab('0x3c')](_0x185e19[_0x71ab('0x37')],_0x185e19[_0x71ab('0x3a')]);_0x501138['attributes']=_['intersection'](_0x185e19[_0x71ab('0x37')],qs[_0x71ab('0x3d')](_0xb1a784['query'][_0x71ab('0x3d')]));_0x501138[_0x71ab('0x3e')]=_0x501138['attributes']['length']?_0x501138[_0x71ab('0x3e')]:_0x185e19[_0x71ab('0x37')];_0x501138[_0x71ab('0x42')]=qs[_0x71ab('0x43')](_0xb1a784[_0x71ab('0x3a')][_0x71ab('0x43')]);_0x501138['where']=qs[_0x71ab('0x45')](_[_0x71ab('0x65')](_0xb1a784['query'],_0x185e19[_0x71ab('0x45')]));if(_0xb1a784[_0x71ab('0x3a')]['filter']){_0x501138[_0x71ab('0x44')]=_[_0x71ab('0x48')](_0x501138[_0x71ab('0x44')],{'$or':_['map'](_0x501138[_0x71ab('0x3e')],function(_0x1e2988){var _0x2f49d6={};_0x2f49d6[_0x1e2988]={'$like':'%'+_0xb1a784[_0x71ab('0x3a')][_0x71ab('0x49')]+'%'};return _0x2f49d6;})});}_0x501138=_[_0x71ab('0x48')]({},_0x501138,_0xb1a784[_0x71ab('0x4b')]);return _0x44c953[_0x71ab('0x66')](_0x501138);}})[_0x71ab('0x30')](function(_0x4d9203){if(_0x4d9203){_0x539f71=_0x4d9203[_0x71ab('0x3f')];if(!_0xb1a784[_0x71ab('0x3a')][_0x71ab('0x40')](_0x71ab('0x41'))){_0x501138[_0x71ab('0x2a')]=qs[_0x71ab('0x2a')](_0xb1a784['query'][_0x71ab('0x2a')]);_0x501138['offset']=qs[_0x71ab('0x29')](_0xb1a784['query'][_0x71ab('0x29')]);}return _0x44c953[_0x71ab('0x66')](_0x501138);}})[_0x71ab('0x30')](function(_0x583938){if(_0x583938){return _0x583938?{'count':_0x539f71,'rows':_0x583938}:null;}})[_0x71ab('0x30')](respondWithResult(_0x5c0ae7,null))[_0x71ab('0x24')](handleError(_0x5c0ae7,null));};exports['addTeams']=function(_0x504c47,_0x2f70c6,_0x5e903e){var _0x1ca117=[];var _0x43fe4c;return db['Team'][_0x71ab('0x4e')]({'where':{'id':_0x504c47[_0x71ab('0x53')][_0x71ab('0x67')]},'attributes':['id'],'include':[{'model':db['User'],'as':'Agents','attributes':['id'],'raw':!![]}]})['then'](function(_0x5da0de){if(_0x5da0de){for(var _0x57e886=0x0;_0x57e886<_0x5da0de[_0x71ab('0x3f')];_0x57e886+=0x1){for(var _0x36fbc4=0x0;_0x36fbc4<_0x5da0de[_0x57e886][_0x71ab('0x68')]['length'];_0x36fbc4+=0x1){_0x1ca117=_[_0x71ab('0x69')](_0x1ca117,[_0x5da0de[_0x57e886][_0x71ab('0x68')][_0x36fbc4]['id']]);}}return _0x1ca117;}})['then'](function(_0x5306de){if(_0x5306de){return db[_0x71ab('0x35')][_0x71ab('0x51')]({'where':{'id':_0x504c47[_0x71ab('0x54')]['id']}});}})[_0x71ab('0x30')](function(_0x21b0fd){if(_0x21b0fd){_0x43fe4c=_0x21b0fd;return _0x43fe4c['addAgents'](_0x1ca117,{'penalty':_0x504c47[_0x71ab('0x53')][_0x71ab('0x6a')]});}})[_0x71ab('0x30')](function(_0x439142){if(_0x439142){return _0x43fe4c[_0x71ab('0x6b')](_0x504c47[_0x71ab('0x53')][_0x71ab('0x67')]);}})[_0x71ab('0x30')](handleEntityNotFound(_0x2f70c6,null))[_0x71ab('0x30')](respondWithStatusCode(_0x2f70c6,null))[_0x71ab('0x24')](handleError(_0x2f70c6,null));};exports[_0x71ab('0x6c')]=function(_0x534e26,_0x3d4245,_0x5e1c37){var _0x2087c6=[];var _0x4def3e;return db[_0x71ab('0x64')][_0x71ab('0x4e')]({'where':{'id':_0x534e26[_0x71ab('0x3a')][_0x71ab('0x67')]},'attributes':['id'],'include':[{'model':db[_0x71ab('0x5a')],'as':_0x71ab('0x68'),'attributes':['id'],'raw':!![]}]})['then'](function(_0x9e3313){if(_0x9e3313){for(var _0x1f8df6=0x0;_0x1f8df6<_0x9e3313[_0x71ab('0x3f')];_0x1f8df6+=0x1){for(var _0x54c2e1=0x0;_0x54c2e1<_0x9e3313[_0x1f8df6][_0x71ab('0x68')][_0x71ab('0x3f')];_0x54c2e1+=0x1){_0x2087c6=_[_0x71ab('0x69')](_0x2087c6,[_0x9e3313[_0x1f8df6]['Agents'][_0x54c2e1]['id']]);}}return _0x2087c6;}})['then'](function(_0x2c0134){if(_0x2c0134){return db[_0x71ab('0x35')][_0x71ab('0x51')]({'where':{'id':_0x534e26[_0x71ab('0x54')]['id']}});}})[_0x71ab('0x30')](function(_0x2b750c){if(_0x2b750c){_0x4def3e=_0x2b750c;return _0x4def3e[_0x71ab('0x6d')](_0x2087c6);}})[_0x71ab('0x30')](function(_0x2f9ac0){if(_0x4def3e){return _0x4def3e[_0x71ab('0x6c')](_0x534e26[_0x71ab('0x3a')][_0x71ab('0x67')]);}})[_0x71ab('0x30')](handleEntityNotFound(_0x3d4245,null))[_0x71ab('0x30')](respondWithStatusCode(_0x3d4245,null))[_0x71ab('0x24')](handleError(_0x3d4245,null));};exports[_0x71ab('0x6e')]=function(_0x12cb6f,_0x196ead,_0x106c65){return db[_0x71ab('0x35')]['find']({'where':{'id':_0x12cb6f[_0x71ab('0x54')]['id']}})[_0x71ab('0x30')](handleEntityNotFound(_0x196ead,null))[_0x71ab('0x30')](function(_0x356d54){if(_0x356d54){return _0x356d54[_0x71ab('0x6e')](_0x12cb6f[_0x71ab('0x53')][_0x71ab('0x67')],_[_0x71ab('0x6f')](_0x12cb6f[_0x71ab('0x53')],[_0x71ab('0x67'),'id'])||{})[_0x71ab('0x70')](function(_0xe1e1e9){for(var _0x2a9a4e=0x0;_0x2a9a4e<_0x12cb6f[_0x71ab('0x53')][_0x71ab('0x67')][_0x71ab('0x3f')];_0x2a9a4e+=0x1){socket[_0x71ab('0x71')]('userChatQueue:save',{'UserId':_0x12cb6f[_0x71ab('0x53')][_0x71ab('0x67')][_0x2a9a4e],'ChatQueueId':_0x12cb6f['params']['id']});}return _0xe1e1e9;});}})[_0x71ab('0x30')](respondWithResult(_0x196ead,null))[_0x71ab('0x24')](handleError(_0x196ead,null));};exports['removeAgents']=function(_0x5931bd,_0x117c76,_0x402c11){var _0x571f23;return db[_0x71ab('0x35')]['find']({'where':{'id':_0x5931bd[_0x71ab('0x54')]['id']}})[_0x71ab('0x30')](handleEntityNotFound(_0x117c76,null))[_0x71ab('0x30')](function(_0x223fed){if(_0x223fed){return _0x223fed[_0x71ab('0x6d')](_0x5931bd['query'][_0x71ab('0x67')])[_0x71ab('0x30')](function(_0x285b59){if(_['isArray'](_0x5931bd[_0x71ab('0x3a')][_0x71ab('0x67')])){for(var _0x4c0b05=0x0;_0x4c0b05<_0x5931bd[_0x71ab('0x3a')]['ids'][_0x71ab('0x3f')];_0x4c0b05+=0x1){socket[_0x71ab('0x71')](_0x71ab('0x72'),{'UserId':_0x5931bd['query'][_0x71ab('0x67')][_0x4c0b05],'ChatQueueId':_0x5931bd[_0x71ab('0x54')]['id']});}}else{socket[_0x71ab('0x71')]('userChatQueue:remove',{'UserId':_0x5931bd[_0x71ab('0x3a')][_0x71ab('0x67')],'ChatQueueId':_0x5931bd['params']['id']});}});}})[_0x71ab('0x30')](respondWithStatusCode(_0x117c76,null))[_0x71ab('0x24')](handleError(_0x117c76,null));};exports[_0x71ab('0x73')]=function(_0x4f6114,_0x306895,_0x320b80){var _0x2c7c96={};var _0x462426={};var _0x4968fe;var _0x293d60;return db['ChatQueue'][_0x71ab('0x63')]({'where':{'id':_0x4f6114[_0x71ab('0x54')]['id']}})[_0x71ab('0x30')](handleEntityNotFound(_0x306895,null))['then'](function(_0x50ff06){if(_0x50ff06){_0x4968fe=_0x50ff06;_0x462426['model']=_[_0x71ab('0x38')](db[_0x71ab('0x5a')]['rawAttributes']);_0x462426['query']=_['keys'](_0x4f6114[_0x71ab('0x3a')]);_0x462426[_0x71ab('0x45')]=_[_0x71ab('0x3c')](_0x462426[_0x71ab('0x37')],_0x462426[_0x71ab('0x3a')]);_0x2c7c96['attributes']=_[_0x71ab('0x3c')](_0x462426['model'],qs['fields'](_0x4f6114[_0x71ab('0x3a')][_0x71ab('0x3d')]));_0x2c7c96['attributes']=_0x2c7c96['attributes'][_0x71ab('0x3f')]?_0x2c7c96[_0x71ab('0x3e')]:_0x462426[_0x71ab('0x37')];_0x2c7c96[_0x71ab('0x42')]=qs[_0x71ab('0x43')](_0x4f6114['query']['sort']);_0x2c7c96[_0x71ab('0x44')]=qs[_0x71ab('0x45')](_['pick'](_0x4f6114['query'],_0x462426[_0x71ab('0x45')]));if(_0x4f6114[_0x71ab('0x3a')][_0x71ab('0x49')]){_0x2c7c96[_0x71ab('0x44')]=_[_0x71ab('0x48')](_0x2c7c96['where'],{'$or':_[_0x71ab('0x4a')](_0x2c7c96[_0x71ab('0x3e')],function(_0x63ea59){var _0x5cf301={};_0x5cf301[_0x63ea59]={'$like':'%'+_0x4f6114[_0x71ab('0x3a')][_0x71ab('0x49')]+'%'};return _0x5cf301;})});}_0x2c7c96=_[_0x71ab('0x48')]({},_0x2c7c96,_0x4f6114['options']);return _0x4968fe[_0x71ab('0x73')](_0x2c7c96);}})[_0x71ab('0x30')](function(_0x25b7cc){if(_0x25b7cc){_0x293d60=_0x25b7cc[_0x71ab('0x3f')];if(!_0x4f6114[_0x71ab('0x3a')][_0x71ab('0x40')](_0x71ab('0x41'))){_0x2c7c96[_0x71ab('0x2a')]=qs[_0x71ab('0x2a')](_0x4f6114[_0x71ab('0x3a')]['limit']);_0x2c7c96['offset']=qs[_0x71ab('0x29')](_0x4f6114['query'][_0x71ab('0x29')]);}return _0x4968fe['getAgents'](_0x2c7c96);}})['then'](function(_0x240f65){if(_0x240f65){return _0x240f65?{'count':_0x293d60,'rows':_0x240f65}:null;}})['then'](respondWithResult(_0x306895,null))[_0x71ab('0x24')](handleError(_0x306895,null));};