Built motion from commit (unavailable).|2.6.0
[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 _0x5bc4=['raw','where','limit','include','model','attributes','map','GetUser','ShowUser','User','find','PauseUser','name','internal','interface','UserVoiceQueueRt','MemberReport','PAUSE','length','YYYY-MM-DD\x20HH:mm:ss','getChannels','forEach','push','isNil','SIP/%s','format','body','type','DEFAULT\x20PAUSE','role','uniqueid','bulkCreate','update','UnpauseUser','findOne','isValidChannel','Unknown\x20channel','channel','system','mail','chat','sms','openchannel','whatsapp','set','%s%s','Pause','all','LoginUser','mobile','phone','loginInPause','count','agent','../../config/license/util','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','getVoiceQueues','upsert','UserVoiceQueue.penalty','callysquare','concat','LOGININPAUSE','lodash','util','moment','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','localhost','socket.io-emitter','./user.socket','request','then','User,\x20%s,\x20%s','request\x20sent','debug','User,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','catch','findAll','options'];(function(_0x32f7d7,_0x54231b){var _0x133d09=function(_0x41a7ab){while(--_0x41a7ab){_0x32f7d7['push'](_0x32f7d7['shift']());}};_0x133d09(++_0x54231b);}(_0x5bc4,0xfa));var _0x45bc=function(_0x442d98,_0x2bd8c8){_0x442d98=_0x442d98-0x0;var _0x4aa12c=_0x5bc4[_0x442d98];return _0x4aa12c;};'use strict';var _=require(_0x45bc('0x0'));var util=require(_0x45bc('0x1'));var moment=require(_0x45bc('0x2'));var BPromise=require('bluebird');var rs=require(_0x45bc('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x45bc('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x45bc('0x5'))(_0x45bc('0x6'));var config=require(_0x45bc('0x7'));var jayson=require(_0x45bc('0x8'));var client=jayson[_0x45bc('0x9')][_0x45bc('0xa')]({'port':0x232a});config[_0x45bc('0xb')]=_['defaults'](config[_0x45bc('0xb')],{'host':_0x45bc('0xc'),'port':0x18eb});var socket=require(_0x45bc('0xd'))(new Redis(config['redis']));require(_0x45bc('0xe'))['register'](socket);function respondWithRpcPromise(_0x431076,_0x1e8f67,_0x217477){return new BPromise(function(_0x534d2b,_0x1d30d7){return client[_0x45bc('0xf')](_0x431076,_0x217477)[_0x45bc('0x10')](function(_0x1bbb86){logger['info'](_0x45bc('0x11'),_0x1e8f67,_0x45bc('0x12'));logger[_0x45bc('0x13')](_0x45bc('0x14'),_0x1e8f67,_0x45bc('0x12'),JSON[_0x45bc('0x15')](_0x1bbb86));if(_0x1bbb86[_0x45bc('0x16')]){if(_0x1bbb86['error'][_0x45bc('0x17')]===0x1f4){logger[_0x45bc('0x16')](_0x45bc('0x11'),_0x1e8f67,_0x1bbb86[_0x45bc('0x16')][_0x45bc('0x18')]);return _0x1d30d7(_0x1bbb86['error']['message']);}logger['error'](_0x45bc('0x11'),_0x1e8f67,_0x1bbb86[_0x45bc('0x16')][_0x45bc('0x18')]);return _0x534d2b(_0x1bbb86['error'][_0x45bc('0x18')]);}else{logger[_0x45bc('0x19')](_0x45bc('0x11'),_0x1e8f67,_0x45bc('0x12'));_0x534d2b(_0x1bbb86['result'][_0x45bc('0x18')]);}})[_0x45bc('0x1a')](function(_0x5d70e8){logger[_0x45bc('0x16')](_0x45bc('0x11'),_0x1e8f67,_0x5d70e8);_0x1d30d7(_0x5d70e8);});});}exports['GetUser']=function(_0x5c714f){var _0x55604f=this;return new Promise(function(_0x47d52f,_0x1fdbd9){return db['User'][_0x45bc('0x1b')]({'raw':_0x5c714f[_0x45bc('0x1c')]?_0x5c714f[_0x45bc('0x1c')][_0x45bc('0x1d')]===undefined?!![]:![]:!![],'where':_0x5c714f[_0x45bc('0x1c')]?_0x5c714f['options'][_0x45bc('0x1e')]||null:null,'attributes':_0x5c714f[_0x45bc('0x1c')]?_0x5c714f[_0x45bc('0x1c')]['attributes']||null:null,'limit':_0x5c714f[_0x45bc('0x1c')]?_0x5c714f[_0x45bc('0x1c')][_0x45bc('0x1f')]||null:null,'include':_0x5c714f[_0x45bc('0x1c')]?_0x5c714f['options'][_0x45bc('0x20')]?_['map'](_0x5c714f[_0x45bc('0x1c')][_0x45bc('0x20')],function(_0x82b00e){return{'model':db[_0x82b00e[_0x45bc('0x21')]],'as':_0x82b00e['as'],'attributes':_0x82b00e[_0x45bc('0x22')],'include':_0x82b00e[_0x45bc('0x20')]?_['map'](_0x82b00e['include'],function(_0x128b77){return{'model':db[_0x128b77[_0x45bc('0x21')]],'as':_0x128b77['as'],'attributes':_0x128b77[_0x45bc('0x22')],'include':_0x128b77[_0x45bc('0x20')]?_[_0x45bc('0x23')](_0x128b77['include'],function(_0x52ebe4){return{'model':db[_0x52ebe4[_0x45bc('0x21')]],'as':_0x52ebe4['as'],'attributes':_0x52ebe4['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x1798ad){logger['info'](_0x45bc('0x24'),_0x5c714f);logger[_0x45bc('0x13')](_0x45bc('0x24'),_0x5c714f,JSON['stringify'](_0x1798ad));_0x47d52f(_0x1798ad);})[_0x45bc('0x1a')](function(_0x41a759){logger[_0x45bc('0x16')](_0x45bc('0x24'),_0x41a759[_0x45bc('0x18')],_0x5c714f);_0x1fdbd9(_0x55604f[_0x45bc('0x16')](0x1f4,_0x41a759[_0x45bc('0x18')]));});});};exports[_0x45bc('0x25')]=function(_0x3d94a3){var _0x26dc63=this;return new Promise(function(_0x25e34a,_0x147ca3){return db[_0x45bc('0x26')][_0x45bc('0x27')]({'raw':_0x3d94a3[_0x45bc('0x1c')]?_0x3d94a3[_0x45bc('0x1c')][_0x45bc('0x1d')]===undefined?!![]:![]:!![],'where':_0x3d94a3[_0x45bc('0x1c')]?_0x3d94a3[_0x45bc('0x1c')][_0x45bc('0x1e')]||null:null,'attributes':_0x3d94a3[_0x45bc('0x1c')]?_0x3d94a3[_0x45bc('0x1c')]['attributes']||null:null,'include':_0x3d94a3[_0x45bc('0x1c')]?_0x3d94a3['options']['include']?_[_0x45bc('0x23')](_0x3d94a3['options'][_0x45bc('0x20')],function(_0xf297f4){return{'model':db[_0xf297f4['model']],'as':_0xf297f4['as'],'attributes':_0xf297f4[_0x45bc('0x22')],'include':_0xf297f4[_0x45bc('0x20')]?_[_0x45bc('0x23')](_0xf297f4[_0x45bc('0x20')],function(_0x55d538){return{'model':db[_0x55d538[_0x45bc('0x21')]],'as':_0x55d538['as'],'attributes':_0x55d538[_0x45bc('0x22')],'include':_0x55d538[_0x45bc('0x20')]?_[_0x45bc('0x23')](_0x55d538[_0x45bc('0x20')],function(_0xc3e144){return{'model':db[_0xc3e144[_0x45bc('0x21')]],'as':_0xc3e144['as'],'attributes':_0xc3e144[_0x45bc('0x22')]};}):[]};}):[]};}):[]:[]})[_0x45bc('0x10')](function(_0x186f51){logger[_0x45bc('0x19')](_0x45bc('0x25'),_0x3d94a3);logger[_0x45bc('0x13')](_0x45bc('0x25'),_0x3d94a3,JSON['stringify'](_0x186f51));_0x25e34a(_0x186f51);})[_0x45bc('0x1a')](function(_0x114d33){logger['error'](_0x45bc('0x25'),_0x114d33[_0x45bc('0x18')],_0x3d94a3);_0x147ca3(_0x26dc63[_0x45bc('0x16')](0x1f4,_0x114d33[_0x45bc('0x18')]));});});};exports[_0x45bc('0x28')]=function(_0x9c66db){var _0x241c55=this;return new Promise(function(_0x2479ec,_0x10a74b){var _0x175a9e;return db[_0x45bc('0x26')][_0x45bc('0x27')]({'where':_0x9c66db['options'][_0x45bc('0x1e')]||{},'attributes':['id',_0x45bc('0x29'),'role',_0x45bc('0x2a'),_0x45bc('0x2b')]})[_0x45bc('0x10')](function(_0x1559aa){if(_0x1559aa){_0x175a9e=_0x1559aa;return db[_0x45bc('0x2c')]['update']({'paused':0x1},{'where':{'UserId':_0x175a9e['id']},'individualHooks':!![]});}})[_0x45bc('0x10')](function(){if(_0x175a9e){return db[_0x45bc('0x2d')][_0x45bc('0x1b')]({'where':{'membername':_0x175a9e[_0x45bc('0x29')],'type':_0x45bc('0x2e'),'exitAt':null}});}})['then'](function(_0x238547){if(_0x175a9e){if(_0x238547&&_0x238547[_0x45bc('0x2f')]){var _0x5baf80=moment()['format'](_0x45bc('0x30'));for(var _0x556c76=0x0,_0x7dd201=_0x238547[_0x45bc('0x2f')];_0x556c76<_0x7dd201;_0x556c76++){_0x238547[_0x556c76]['updateAttributes']({'exitAt':_0x5baf80});}}}})[_0x45bc('0x10')](function(){if(_0x175a9e){var _0x88d486=[];var _0x3f2923=utils[_0x45bc('0x31')]();_0x3f2923[_0x45bc('0x32')](function(_0x5507b2){_0x88d486[_0x45bc('0x33')]({'channel':_0x5507b2,'membername':_0x175a9e[_0x45bc('0x29')],'interface':_[_0x45bc('0x34')](_0x175a9e[_0x45bc('0x2b')])?util['format'](_0x45bc('0x35'),_0x175a9e['name']):_0x175a9e[_0x45bc('0x2b')],'type':_0x45bc('0x2e'),'enterAt':moment()[_0x45bc('0x36')](_0x45bc('0x30')),'data1':_0x9c66db[_0x45bc('0x37')][_0x45bc('0x38')]||_0x45bc('0x39'),'role':_0x175a9e[_0x45bc('0x3a')],'internal':_0x175a9e[_0x45bc('0x2a')],'uniqueid':_0x9c66db[_0x45bc('0x37')][_0x45bc('0x3b')]||null});});return db[_0x45bc('0x2d')][_0x45bc('0x3c')](_0x88d486,{'individualHooks':!![]});}})[_0x45bc('0x10')](function(){if(_0x175a9e){return _0x175a9e[_0x45bc('0x3d')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x9c66db[_0x45bc('0x37')]['type']||_0x45bc('0x39'),'lastPauseAt':moment()[_0x45bc('0x36')](_0x45bc('0x30'))});}})['then'](function(_0x524127){_0x2479ec(_0x524127);})[_0x45bc('0x1a')](function(_0x101c0d){_0x10a74b(_0x241c55[_0x45bc('0x16')](0x1f4,_0x101c0d[_0x45bc('0x18')]));});});};exports[_0x45bc('0x3e')]=function(_0x1e44d1){var _0x43bf46=this;return new Promise(function(_0x4059a8,_0x2a4b57){var _0x564a3b;return db[_0x45bc('0x26')][_0x45bc('0x3f')]({'where':_0x1e44d1[_0x45bc('0x1c')]['where']||{},'attributes':['id',_0x45bc('0x29')]})[_0x45bc('0x10')](function(_0x1dd501){if(_0x1dd501){_0x564a3b=_0x1dd501;if(_0x1e44d1[_0x45bc('0x37')]['channel']&&!utils[_0x45bc('0x40')](_0x1e44d1['body']['channel'])){throw new Error(_0x45bc('0x41'));}switch(_0x1e44d1[_0x45bc('0x37')]['channel']){case'voice':return db[_0x45bc('0x2c')]['update']({'paused':0x0},{'where':{'UserId':_0x564a3b['id']}})['then'](function(){return db[_0x45bc('0x2d')][_0x45bc('0x27')]({'where':{'channel':_0x1e44d1[_0x45bc('0x37')][_0x45bc('0x42')],'membername':_0x564a3b[_0x45bc('0x29')],'type':'PAUSE','exitAt':null}});})[_0x45bc('0x10')](function(_0xf9f6f4){if(_0xf9f6f4){return _0xf9f6f4[_0x45bc('0x3d')]({'exitAt':moment()[_0x45bc('0x36')]('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0x45bc('0x43')},{'individualHooks':!![]});}return null;})['then'](function(){return _0x564a3b['update']({'voicePause':![]});});case _0x45bc('0x44'):case _0x45bc('0x45'):case'fax':case _0x45bc('0x46'):case _0x45bc('0x47'):case _0x45bc('0x48'):return db['MemberReport'][_0x45bc('0x27')]({'where':{'channel':_0x1e44d1[_0x45bc('0x37')][_0x45bc('0x42')],'membername':_0x564a3b[_0x45bc('0x29')],'type':'PAUSE','exitAt':null}})['then'](function(_0x3adc7b){return _0x3adc7b['update']({'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0x45bc('0x43')},{'individualHooks':!![]});})[_0x45bc('0x10')](function(){var _0x5a297b={};_[_0x45bc('0x49')](_0x5a297b,util[_0x45bc('0x36')](_0x45bc('0x4a'),_0x1e44d1[_0x45bc('0x37')]['channel'],_0x45bc('0x4b')),![]);return _0x564a3b[_0x45bc('0x3d')](_0x5a297b);});default:return db['UserVoiceQueueRt']['update']({'paused':0x0},{'where':{'UserId':_0x564a3b['id']}})[_0x45bc('0x10')](function(){return db['MemberReport'][_0x45bc('0x1b')]({'where':{'membername':_0x564a3b[_0x45bc('0x29')],'type':'PAUSE','exitAt':null}});})[_0x45bc('0x10')](function(_0x3570bf){var _0x178b8b=[];_0x3570bf['forEach'](function(_0x1048a9){_0x178b8b['push'](_0x1048a9['update']({'exitAt':moment()['format'](_0x45bc('0x30')),'data2':_0x45bc('0x43')}));});return BPromise[_0x45bc('0x4c')](_0x178b8b);})['then'](function(){return _0x564a3b[_0x45bc('0x3d')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![]});});}}})[_0x45bc('0x10')](function(_0x249b44){_0x4059a8(_0x249b44);})[_0x45bc('0x1a')](function(_0x95b67){_0x2a4b57(_0x43bf46[_0x45bc('0x16')](0x1f4,_0x95b67[_0x45bc('0x18')]));});});};exports['LogoutUser']=function(_0x58dadd){var _0x2b3848=this;return new Promise(function(_0xd150ab,_0xbe4d19){var _0x50d206;return db['User'][_0x45bc('0x3f')]({'where':_0x58dadd['options'][_0x45bc('0x1e')]||{},'attributes':['id','name']})[_0x45bc('0x10')](function(_0x22e061){if(_0x22e061){_0x50d206=_0x22e061;return db['UserVoiceQueueRt']['destroy']({'where':{'membername':_0x50d206[_0x45bc('0x29')]},'individualHooks':!![]});}})[_0x45bc('0x10')](function(){if(_0x50d206){return db[_0x45bc('0x2d')]['findAll']({'where':{'membername':_0x50d206['name'],'exitAt':null}});}})[_0x45bc('0x10')](function(_0x1e331b){if(_0x50d206){if(_0x1e331b&&_0x1e331b[_0x45bc('0x2f')]){var _0x4dedad=[];_0x1e331b[_0x45bc('0x32')](function(_0x5ba1a5){_0x4dedad[_0x45bc('0x33')](_0x5ba1a5['update']({'exitAt':moment()['format'](_0x45bc('0x30'))}));});return BPromise[_0x45bc('0x4c')](_0x4dedad);}}})['then'](function(){if(_0x50d206){return _0x50d206[_0x45bc('0x3d')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0x45bc('0x10')](function(_0x3b7177){_0xd150ab(_0x3b7177);})[_0x45bc('0x1a')](function(_0x4476c1){_0xbe4d19(_0x2b3848[_0x45bc('0x16')](0x1f4,_0x4476c1[_0x45bc('0x18')]));});});};exports[_0x45bc('0x4d')]=function(_0x5f4fb0){var _0x2c161b=this;return new Promise(function(_0x1e030e,_0x2968d2){var _0x1bfe38;var _0x398baf;var _0x157595;var _0x174e22;return db[_0x45bc('0x26')][_0x45bc('0x3f')]({'where':_0x5f4fb0[_0x45bc('0x1c')][_0x45bc('0x1e')]||{},'attributes':['id',_0x45bc('0x29'),'role',_0x45bc('0x4e'),_0x45bc('0x4f'),_0x45bc('0x2a'),_0x45bc('0x50'),'interface']})[_0x45bc('0x10')](function(_0x4a2c79){if(_0x4a2c79){_0x1bfe38=_0x4a2c79;_0x174e22=_0x5f4fb0['body']['interface']?_0x5f4fb0[_0x45bc('0x37')][_0x45bc('0x2b')]:util[_0x45bc('0x36')]('SIP/%s',_0x1bfe38[_0x45bc('0x29')]);return db[_0x45bc('0x26')][_0x45bc('0x51')]({'where':{'role':_0x45bc('0x52'),'online':!![],'id':{'$ne':_0x1bfe38['id']}}});}})[_0x45bc('0x10')](function(_0xf497d7){if(_0xf497d7){_0x157595=_0xf497d7;return require(_0x45bc('0x53'))[_0x45bc('0x54')]();}})[_0x45bc('0x10')](function(_0x504ae2){if(_0x504ae2&&_0x504ae2[_0x45bc('0x55')]&&_0x157595>=_0x504ae2[_0x45bc('0x55')]){throw new Error(_0x45bc('0x56'));}})['then'](function(){if(_0x1bfe38){return db[_0x45bc('0x2c')]['destroy']({'where':{'membername':_0x1bfe38['name']},'individualHooks':!![]});}})[_0x45bc('0x10')](function(){if(_0x1bfe38){return _0x1bfe38[_0x45bc('0x57')]({'raw':!![]});}})[_0x45bc('0x10')](function(_0xd77df7){if(_0x1bfe38){if(_0xd77df7){var _0x59db87=[];_0x398baf=_0xd77df7;if(_0x398baf[_0x45bc('0x2f')]){for(var _0x191128=0x0;_0x191128<_0x398baf[_0x45bc('0x2f')];_0x191128++){_0x59db87['push'](db[_0x45bc('0x2c')][_0x45bc('0x58')]({'membername':_0x1bfe38[_0x45bc('0x29')],'UserId':_0x1bfe38['id'],'queue_name':_0x398baf[_0x191128]['name'],'VoiceQueueId':_0x398baf[_0x191128]['id'],'interface':_0x174e22,'paused':_0x1bfe38[_0x45bc('0x50')]||![],'penalty':_0x398baf[_0x191128][_0x45bc('0x59')]||0x0}));}return BPromise[_0x45bc('0x4c')](_0x59db87);}}}})[_0x45bc('0x10')](function(){if(_0x1bfe38){return db[_0x45bc('0x2d')][_0x45bc('0x1b')]({'where':{'membername':_0x1bfe38['name'],'exitAt':null}});}})[_0x45bc('0x10')](function(_0xd3a17e){if(_0x1bfe38){if(_0xd3a17e&&_0xd3a17e['length']){var _0x3fdd92=[];_0xd3a17e[_0x45bc('0x32')](function(_0x19b6b5){_0x3fdd92['push'](_0x19b6b5[_0x45bc('0x3d')]({'exitAt':moment()[_0x45bc('0x36')](_0x45bc('0x30'))}));});return BPromise['all'](_0x3fdd92);}}})[_0x45bc('0x10')](function(_0x1ac1ec){if(_0x1bfe38){var _0x2e0ebc=[];var _0x9857cf=[];var _0x825106=utils[_0x45bc('0x31')]();var _0x9da7f4={'membername':_0x1bfe38['name'],'interface':_0x174e22,'enterAt':moment()['format'](_0x45bc('0x30')),'role':_0x1bfe38['role'],'internal':_0x1bfe38[_0x45bc('0x2a')]};_0x825106[_0x45bc('0x32')](function(_0x43dc83){_0x2e0ebc[_0x45bc('0x33')](_['merge']({'channel':_0x43dc83,'type':'LOGIN','data1':_0x45bc('0x5a'),'data2':_0x174e22},_0x9da7f4));if(_0x1bfe38[_0x45bc('0x50')]){_0x9857cf['push'](_['merge']({'channel':_0x43dc83,'type':'PAUSE','data1':'LOGININPAUSE'},_0x9da7f4));}});return db[_0x45bc('0x2d')][_0x45bc('0x3c')](_0x2e0ebc[_0x45bc('0x5b')](_0x9857cf),{'individualHooks':!![]});}})[_0x45bc('0x10')](function(){if(_0x1bfe38){return _0x1bfe38[_0x45bc('0x3d')]({'online':!![],'lastLoginAt':moment()[_0x45bc('0x36')](_0x45bc('0x30')),'voicePause':_0x1bfe38[_0x45bc('0x50')]||![],'mailPause':_0x1bfe38[_0x45bc('0x50')]||![],'chatPause':_0x1bfe38[_0x45bc('0x50')]||![],'faxPause':_0x1bfe38['loginInPause']||![],'smsPause':_0x1bfe38[_0x45bc('0x50')]||![],'openchannelPause':_0x1bfe38[_0x45bc('0x50')]||![],'pauseType':_0x1bfe38[_0x45bc('0x50')]?_0x45bc('0x5c'):null,'lastPauseAt':moment()[_0x45bc('0x36')](_0x45bc('0x30')),'interface':_0x174e22});}})[_0x45bc('0x10')](function(_0xede9e8){_0x1e030e(_0xede9e8);})[_0x45bc('0x1a')](function(_0x207e88){_0x2968d2(_0x2c161b[_0x45bc('0x16')](0x1f4,_0x207e88['message']));});});};