Built motion from commit fe909640.|2.6.8
[motion2.git] / server / api / user / user.rpc.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 _0x257d=['body','DEFAULT\x20PAUSE','role','internal','bulkCreate','type','UnpauseUser','channel','Channel\x20parameter\x20%s\x20is\x20invalid','findOne','online','voicePause','mailPause','chatPause','openchannelPause','whatsappPause','pauseType','lastPauseAt','params','unpause','system','update','all','mobile','loginInPause','SIP/%s','count','agent','getLicense','agents','getVoiceQueues','upsert','UserVoiceQueue.penalty','merge','LOGIN','callysquare','LOGININPAUSE','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','redis','defaults','localhost','./user.socket','findAll','options','where','attributes','limit','include','map','model','info','GetUser','debug','stringify','error','message','ShowUser','User','find','raw','then','catch','PauseUser','name','interface','UserVoiceQueueRt','MemberReport','length','format','YYYY-MM-DD\x20HH:mm:ss','getChannels','forEach','push','isNil','PAUSE'];(function(_0x17a128,_0x480ba0){var _0x4fbd75=function(_0x185029){while(--_0x185029){_0x17a128['push'](_0x17a128['shift']());}};_0x4fbd75(++_0x480ba0);}(_0x257d,0x1c4));var _0xd257=function(_0x5b03bf,_0x2c89d5){_0x5b03bf=_0x5b03bf-0x0;var _0x4edbbb=_0x257d[_0x5b03bf];return _0x4edbbb;};'use strict';var _=require(_0xd257('0x0'));var util=require(_0xd257('0x1'));var moment=require(_0xd257('0x2'));var BPromise=require(_0xd257('0x3'));var Redis=require(_0xd257('0x4'));var db=require(_0xd257('0x5'))['db'];var utils=require(_0xd257('0x6'));var logger=require(_0xd257('0x7'))(_0xd257('0x8'));var config=require('../../config/environment');config[_0xd257('0x9')]=_[_0xd257('0xa')](config['redis'],{'host':_0xd257('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xd257('0x9')]));require(_0xd257('0xc'))['register'](socket);exports['GetUser']=function(_0x4ad684){var _0x313377=this;return new Promise(function(_0x2799d2,_0x34de86){return db['User'][_0xd257('0xd')]({'raw':_0x4ad684['options']?_0x4ad684[_0xd257('0xe')]['raw']===undefined?!![]:![]:!![],'where':_0x4ad684['options']?_0x4ad684[_0xd257('0xe')][_0xd257('0xf')]||null:null,'attributes':_0x4ad684[_0xd257('0xe')]?_0x4ad684[_0xd257('0xe')][_0xd257('0x10')]||null:null,'limit':_0x4ad684[_0xd257('0xe')]?_0x4ad684[_0xd257('0xe')][_0xd257('0x11')]||null:null,'include':_0x4ad684['options']?_0x4ad684['options'][_0xd257('0x12')]?_[_0xd257('0x13')](_0x4ad684[_0xd257('0xe')][_0xd257('0x12')],function(_0x5df906){return{'model':db[_0x5df906['model']],'as':_0x5df906['as'],'attributes':_0x5df906[_0xd257('0x10')],'include':_0x5df906[_0xd257('0x12')]?_[_0xd257('0x13')](_0x5df906[_0xd257('0x12')],function(_0x2bf3ce){return{'model':db[_0x2bf3ce['model']],'as':_0x2bf3ce['as'],'attributes':_0x2bf3ce['attributes'],'include':_0x2bf3ce[_0xd257('0x12')]?_[_0xd257('0x13')](_0x2bf3ce['include'],function(_0xdaa786){return{'model':db[_0xdaa786[_0xd257('0x14')]],'as':_0xdaa786['as'],'attributes':_0xdaa786[_0xd257('0x10')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x4ad3f0){logger[_0xd257('0x15')](_0xd257('0x16'),_0x4ad684);logger[_0xd257('0x17')](_0xd257('0x16'),_0x4ad684,JSON[_0xd257('0x18')](_0x4ad3f0));_0x2799d2(_0x4ad3f0);})['catch'](function(_0x3341e4){logger['error'](_0xd257('0x16'),_0x3341e4['message'],_0x4ad684);_0x34de86(_0x313377[_0xd257('0x19')](0x1f4,_0x3341e4[_0xd257('0x1a')]));});});};exports[_0xd257('0x1b')]=function(_0x5b8fa3){var _0x361a88=this;return new Promise(function(_0x4e14a0,_0x4facd2){return db[_0xd257('0x1c')][_0xd257('0x1d')]({'raw':_0x5b8fa3[_0xd257('0xe')]?_0x5b8fa3['options'][_0xd257('0x1e')]===undefined?!![]:![]:!![],'where':_0x5b8fa3[_0xd257('0xe')]?_0x5b8fa3['options']['where']||null:null,'attributes':_0x5b8fa3['options']?_0x5b8fa3['options']['attributes']||null:null,'include':_0x5b8fa3[_0xd257('0xe')]?_0x5b8fa3[_0xd257('0xe')]['include']?_['map'](_0x5b8fa3[_0xd257('0xe')][_0xd257('0x12')],function(_0x6468ab){return{'model':db[_0x6468ab[_0xd257('0x14')]],'as':_0x6468ab['as'],'attributes':_0x6468ab['attributes'],'include':_0x6468ab[_0xd257('0x12')]?_[_0xd257('0x13')](_0x6468ab[_0xd257('0x12')],function(_0x4e7821){return{'model':db[_0x4e7821[_0xd257('0x14')]],'as':_0x4e7821['as'],'attributes':_0x4e7821[_0xd257('0x10')],'include':_0x4e7821['include']?_['map'](_0x4e7821[_0xd257('0x12')],function(_0x4ecaad){return{'model':db[_0x4ecaad['model']],'as':_0x4ecaad['as'],'attributes':_0x4ecaad[_0xd257('0x10')]};}):[]};}):[]};}):[]:[]})[_0xd257('0x1f')](function(_0x404abe){logger[_0xd257('0x15')](_0xd257('0x1b'),_0x5b8fa3);logger[_0xd257('0x17')](_0xd257('0x1b'),_0x5b8fa3,JSON[_0xd257('0x18')](_0x404abe));_0x4e14a0(_0x404abe);})[_0xd257('0x20')](function(_0x5d4a0b){logger[_0xd257('0x19')](_0xd257('0x1b'),_0x5d4a0b[_0xd257('0x1a')],_0x5b8fa3);_0x4facd2(_0x361a88[_0xd257('0x19')](0x1f4,_0x5d4a0b[_0xd257('0x1a')]));});});};exports[_0xd257('0x21')]=function(_0x2380b8){var _0x419730=this;return new Promise(function(_0xf9a14d,_0x4bb9b8){var _0x23e4bf;return db[_0xd257('0x1c')][_0xd257('0x1d')]({'where':_0x2380b8['options'][_0xd257('0xf')]||{},'attributes':['id',_0xd257('0x22'),'role','internal',_0xd257('0x23')]})[_0xd257('0x1f')](function(_0x198b7f){if(_0x198b7f){_0x23e4bf=_0x198b7f;return db[_0xd257('0x24')]['update']({'paused':0x1},{'where':{'UserId':_0x23e4bf['id']},'individualHooks':!![]});}})[_0xd257('0x1f')](function(){if(_0x23e4bf){return db[_0xd257('0x25')][_0xd257('0xd')]({'where':{'membername':_0x23e4bf[_0xd257('0x22')],'type':'PAUSE','exitAt':null}});}})[_0xd257('0x1f')](function(_0x3cd5dd){if(_0x23e4bf){if(_0x3cd5dd&&_0x3cd5dd[_0xd257('0x26')]){var _0x546d27=moment()[_0xd257('0x27')](_0xd257('0x28'));for(var _0x2802ba=0x0,_0x5f59db=_0x3cd5dd[_0xd257('0x26')];_0x2802ba<_0x5f59db;_0x2802ba++){_0x3cd5dd[_0x2802ba]['updateAttributes']({'exitAt':_0x546d27});}}}})[_0xd257('0x1f')](function(){if(_0x23e4bf){var _0x1206db=[];var _0x39880c=utils[_0xd257('0x29')]();_0x39880c[_0xd257('0x2a')](function(_0x3d4da1){_0x1206db[_0xd257('0x2b')]({'channel':_0x3d4da1,'membername':_0x23e4bf['name'],'interface':_[_0xd257('0x2c')](_0x23e4bf[_0xd257('0x23')])?util[_0xd257('0x27')]('SIP/%s',_0x23e4bf['name']):_0x23e4bf[_0xd257('0x23')],'type':_0xd257('0x2d'),'enterAt':moment()[_0xd257('0x27')](_0xd257('0x28')),'data1':_0x2380b8[_0xd257('0x2e')]['type']||_0xd257('0x2f'),'role':_0x23e4bf[_0xd257('0x30')],'internal':_0x23e4bf[_0xd257('0x31')],'uniqueid':_0x2380b8[_0xd257('0x2e')]['uniqueid']||null});});return db['MemberReport'][_0xd257('0x32')](_0x1206db,{'individualHooks':!![]});}})['then'](function(){if(_0x23e4bf){return _0x23e4bf['update']({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x2380b8[_0xd257('0x2e')][_0xd257('0x33')]||_0xd257('0x2f'),'lastPauseAt':moment()[_0xd257('0x27')](_0xd257('0x28'))});}})[_0xd257('0x1f')](function(_0x37a335){_0xf9a14d(_0x37a335);})['catch'](function(_0x2b9156){_0x4bb9b8(_0x419730[_0xd257('0x19')](0x1f4,_0x2b9156[_0xd257('0x1a')]));});});};exports[_0xd257('0x34')]=function(_0x18c9ca){var _0x452042=this;return new Promise(function(_0x5a7fb4,_0x4d5d2b){if(_0x18c9ca[_0xd257('0x2e')][_0xd257('0x35')]&&!utils['isValidChannel'](_0x18c9ca['body']['channel'])){throw new Error(util[_0xd257('0x27')](_0xd257('0x36'),_0x18c9ca['body'][_0xd257('0x35')]));}return db[_0xd257('0x1c')][_0xd257('0x37')]({'where':_0x18c9ca[_0xd257('0xe')][_0xd257('0xf')]||{},'attributes':['id',_0xd257('0x22'),_0xd257('0x30'),_0xd257('0x31'),_0xd257('0x23'),_0xd257('0x38'),_0xd257('0x39'),_0xd257('0x3a'),_0xd257('0x3b'),'faxPause',_0xd257('0x3c'),'smsPause',_0xd257('0x3d'),_0xd257('0x3e'),_0xd257('0x3f')]})[_0xd257('0x1f')](function(_0x3babed){if(!_0x3babed){throw new Error(util[_0xd257('0x27')]('User\x20with\x20id\x20%s\x20not\x20found',_0x18c9ca[_0xd257('0x40')]['id']));}return _0x3babed[_0xd257('0x41')](_0x18c9ca[_0xd257('0x2e')]['channel'],_0xd257('0x42'));})['then'](function(_0x30b0a9){_0x5a7fb4(_0x30b0a9);})[_0xd257('0x20')](function(_0x220b87){_0x4d5d2b(_0x452042[_0xd257('0x19')](0x1f4,_0x220b87[_0xd257('0x1a')]));});});};exports['LogoutUser']=function(_0x4e5747){var _0x4bbbe1=this;return new Promise(function(_0x427916,_0x47d4e0){var _0x5709d5;return db[_0xd257('0x1c')][_0xd257('0x37')]({'where':_0x4e5747[_0xd257('0xe')]['where']||{},'attributes':['id',_0xd257('0x22')]})['then'](function(_0x34db18){if(_0x34db18){_0x5709d5=_0x34db18;return db[_0xd257('0x24')]['destroy']({'where':{'membername':_0x5709d5['name']},'individualHooks':!![]});}})[_0xd257('0x1f')](function(){if(_0x5709d5){return db[_0xd257('0x25')][_0xd257('0xd')]({'where':{'membername':_0x5709d5[_0xd257('0x22')],'exitAt':null}});}})[_0xd257('0x1f')](function(_0x13d9e1){if(_0x5709d5){if(_0x13d9e1&&_0x13d9e1[_0xd257('0x26')]){var _0x11b362=[];_0x13d9e1[_0xd257('0x2a')](function(_0x3e4845){_0x11b362['push'](_0x3e4845[_0xd257('0x43')]({'exitAt':moment()[_0xd257('0x27')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0xd257('0x44')](_0x11b362);}}})[_0xd257('0x1f')](function(){if(_0x5709d5){return _0x5709d5[_0xd257('0x43')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0xd257('0x1f')](function(_0xca3cc){_0x427916(_0xca3cc);})[_0xd257('0x20')](function(_0xcee7a){_0x47d4e0(_0x4bbbe1[_0xd257('0x19')](0x1f4,_0xcee7a[_0xd257('0x1a')]));});});};exports['LoginUser']=function(_0x3fe3c8){var _0xcd0498=this;return new Promise(function(_0x2dc23f,_0x24d3dc){var _0x41e3d3;var _0x33c903;var _0x3427d1;var _0xf513c2;return db[_0xd257('0x1c')][_0xd257('0x37')]({'where':_0x3fe3c8[_0xd257('0xe')][_0xd257('0xf')]||{},'attributes':['id',_0xd257('0x22'),_0xd257('0x30'),_0xd257('0x45'),'phone',_0xd257('0x31'),_0xd257('0x46'),_0xd257('0x23')]})[_0xd257('0x1f')](function(_0x4accf9){if(_0x4accf9){_0x41e3d3=_0x4accf9;_0xf513c2=_0x3fe3c8[_0xd257('0x2e')][_0xd257('0x23')]?_0x3fe3c8[_0xd257('0x2e')]['interface']:util[_0xd257('0x27')](_0xd257('0x47'),_0x41e3d3[_0xd257('0x22')]);return db[_0xd257('0x1c')][_0xd257('0x48')]({'where':{'role':_0xd257('0x49'),'online':!![],'id':{'$ne':_0x41e3d3['id']}}});}})[_0xd257('0x1f')](function(_0x3d8365){if(_0x3d8365){_0x3427d1=_0x3d8365;return require('../../config/license/util')[_0xd257('0x4a')]();}})[_0xd257('0x1f')](function(_0x202f4d){if(_0x202f4d&&_0x202f4d[_0xd257('0x4b')]&&_0x3427d1>=_0x202f4d[_0xd257('0x4b')]){throw new Error('Maximum\x20login\x20has\x20been\x20reached');}})[_0xd257('0x1f')](function(){if(_0x41e3d3){return db[_0xd257('0x24')]['destroy']({'where':{'membername':_0x41e3d3['name']},'individualHooks':!![]});}})[_0xd257('0x1f')](function(){if(_0x41e3d3){return _0x41e3d3[_0xd257('0x4c')]({'raw':!![]});}})[_0xd257('0x1f')](function(_0x4c9378){if(_0x41e3d3){if(_0x4c9378){var _0x5d36e8=[];_0x33c903=_0x4c9378;if(_0x33c903[_0xd257('0x26')]){for(var _0x3737aa=0x0;_0x3737aa<_0x33c903[_0xd257('0x26')];_0x3737aa++){_0x5d36e8[_0xd257('0x2b')](db['UserVoiceQueueRt'][_0xd257('0x4d')]({'membername':_0x41e3d3['name'],'UserId':_0x41e3d3['id'],'queue_name':_0x33c903[_0x3737aa][_0xd257('0x22')],'VoiceQueueId':_0x33c903[_0x3737aa]['id'],'interface':_0xf513c2,'paused':_0x41e3d3['loginInPause']||![],'penalty':_0x33c903[_0x3737aa][_0xd257('0x4e')]||0x0}));}return BPromise[_0xd257('0x44')](_0x5d36e8);}}}})[_0xd257('0x1f')](function(){if(_0x41e3d3){return db['MemberReport'][_0xd257('0xd')]({'where':{'membername':_0x41e3d3[_0xd257('0x22')],'exitAt':null}});}})[_0xd257('0x1f')](function(_0x61afff){if(_0x41e3d3){if(_0x61afff&&_0x61afff[_0xd257('0x26')]){var _0x2269f5=[];_0x61afff['forEach'](function(_0x2cf6a8){_0x2269f5[_0xd257('0x2b')](_0x2cf6a8[_0xd257('0x43')]({'exitAt':moment()[_0xd257('0x27')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0xd257('0x44')](_0x2269f5);}}})[_0xd257('0x1f')](function(){if(_0x41e3d3){var _0x37a06d=[];var _0x57c116=[];var _0x5d1267=utils[_0xd257('0x29')]();var _0x4b33fb={'membername':_0x41e3d3[_0xd257('0x22')],'interface':_0xf513c2,'enterAt':moment()[_0xd257('0x27')]('YYYY-MM-DD\x20HH:mm:ss'),'role':_0x41e3d3['role'],'internal':_0x41e3d3['internal']};_0x5d1267[_0xd257('0x2a')](function(_0x1c7989){_0x37a06d[_0xd257('0x2b')](_[_0xd257('0x4f')]({'channel':_0x1c7989,'type':_0xd257('0x50'),'data1':_0xd257('0x51'),'data2':_0xf513c2},_0x4b33fb));if(_0x41e3d3[_0xd257('0x46')]){_0x57c116[_0xd257('0x2b')](_[_0xd257('0x4f')]({'channel':_0x1c7989,'type':_0xd257('0x2d'),'data1':_0xd257('0x52')},_0x4b33fb));}});return db[_0xd257('0x25')][_0xd257('0x32')](_0x37a06d['concat'](_0x57c116),{'individualHooks':!![]});}})[_0xd257('0x1f')](function(){if(_0x41e3d3){return _0x41e3d3[_0xd257('0x43')]({'online':!![],'lastLoginAt':moment()['format'](_0xd257('0x28')),'voicePause':_0x41e3d3[_0xd257('0x46')]||![],'mailPause':_0x41e3d3[_0xd257('0x46')]||![],'chatPause':_0x41e3d3['loginInPause']||![],'faxPause':_0x41e3d3[_0xd257('0x46')]||![],'smsPause':_0x41e3d3[_0xd257('0x46')]||![],'openchannelPause':_0x41e3d3['loginInPause']||![],'pauseType':_0x41e3d3[_0xd257('0x46')]?_0xd257('0x52'):null,'lastPauseAt':moment()[_0xd257('0x27')](_0xd257('0x28')),'interface':_0xf513c2});}})[_0xd257('0x1f')](function(_0x1ca653){_0x2dc23f(_0x1ca653);})[_0xd257('0x20')](function(_0x26e85f){_0x24d3dc(_0xcd0498['error'](0x1f4,_0x26e85f[_0xd257('0x1a')]));});});};