b2aa5c5a5594b1023154994263994e51705ad051
[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 _0xd7de=['then','stringify','ShowUser','User','find','catch','PauseUser','name','interface','UserVoiceQueueRt','update','MemberReport','PAUSE','length','format','YYYY-MM-DD\x20HH:mm:ss','getChannels','forEach','push','isNil','SIP/%s','body','type','DEFAULT\x20PAUSE','internal','uniqueid','UnpauseUser','findOne','channel','system','chat','fax','sms','openchannel','%s%s','Pause','destroy','all','role','mobile','phone','loginInPause','count','../../config/license/util','getLicense','agents','upsert','UserVoiceQueue.penalty','merge','LOGIN','callysquare','LOGININPAUSE','bulkCreate','concat','util','moment','bluebird','ioredis','../../config/utils','rpc','../../config/environment','client','http','redis','defaults','./user.socket','request','User,\x20%s,\x20%s','request\x20sent','debug','User,\x20%s,\x20%s,\x20%s','error','code','message','info','GetUser','findAll','options','raw','where','limit','map','include','model','attributes'];(function(_0x1c369c,_0x1ec98b){var _0x5e8e0a=function(_0x55353a){while(--_0x55353a){_0x1c369c['push'](_0x1c369c['shift']());}};_0x5e8e0a(++_0x1ec98b);}(_0xd7de,0xe0));var _0xed7d=function(_0x13c261,_0x4b634d){_0x13c261=_0x13c261-0x0;var _0x1ac50a=_0xd7de[_0x13c261];return _0x1ac50a;};'use strict';var _=require('lodash');var util=require(_0xed7d('0x0'));var moment=require(_0xed7d('0x1'));var BPromise=require(_0xed7d('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xed7d('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xed7d('0x4'));var logger=require('../../config/logger')(_0xed7d('0x5'));var config=require(_0xed7d('0x6'));var jayson=require('jayson/promise');var client=jayson[_0xed7d('0x7')][_0xed7d('0x8')]({'port':0x232a});config[_0xed7d('0x9')]=_[_0xed7d('0xa')](config[_0xed7d('0x9')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xed7d('0x9')]));require(_0xed7d('0xb'))['register'](socket);function respondWithRpcPromise(_0x200274,_0x4d7101,_0x3d8d6a){return new BPromise(function(_0x7cc944,_0x3c89f3){return client[_0xed7d('0xc')](_0x200274,_0x3d8d6a)['then'](function(_0x6d655b){logger['info'](_0xed7d('0xd'),_0x4d7101,_0xed7d('0xe'));logger[_0xed7d('0xf')](_0xed7d('0x10'),_0x4d7101,_0xed7d('0xe'),JSON['stringify'](_0x6d655b));if(_0x6d655b[_0xed7d('0x11')]){if(_0x6d655b['error'][_0xed7d('0x12')]===0x1f4){logger[_0xed7d('0x11')](_0xed7d('0xd'),_0x4d7101,_0x6d655b[_0xed7d('0x11')][_0xed7d('0x13')]);return _0x3c89f3(_0x6d655b[_0xed7d('0x11')][_0xed7d('0x13')]);}logger[_0xed7d('0x11')](_0xed7d('0xd'),_0x4d7101,_0x6d655b['error'][_0xed7d('0x13')]);return _0x7cc944(_0x6d655b[_0xed7d('0x11')][_0xed7d('0x13')]);}else{logger[_0xed7d('0x14')]('User,\x20%s,\x20%s',_0x4d7101,_0xed7d('0xe'));_0x7cc944(_0x6d655b['result']['message']);}})['catch'](function(_0x47eaa6){logger[_0xed7d('0x11')](_0xed7d('0xd'),_0x4d7101,_0x47eaa6);_0x3c89f3(_0x47eaa6);});});}exports[_0xed7d('0x15')]=function(_0x2f576d){var _0x224fd0=this;return new Promise(function(_0x56b5ee,_0x20ddf6){return db['User'][_0xed7d('0x16')]({'raw':_0x2f576d[_0xed7d('0x17')]?_0x2f576d[_0xed7d('0x17')][_0xed7d('0x18')]===undefined?!![]:![]:!![],'where':_0x2f576d[_0xed7d('0x17')]?_0x2f576d[_0xed7d('0x17')][_0xed7d('0x19')]||null:null,'attributes':_0x2f576d[_0xed7d('0x17')]?_0x2f576d['options']['attributes']||null:null,'limit':_0x2f576d[_0xed7d('0x17')]?_0x2f576d[_0xed7d('0x17')][_0xed7d('0x1a')]||null:null,'include':_0x2f576d[_0xed7d('0x17')]?_0x2f576d[_0xed7d('0x17')]['include']?_[_0xed7d('0x1b')](_0x2f576d[_0xed7d('0x17')][_0xed7d('0x1c')],function(_0x136606){return{'model':db[_0x136606[_0xed7d('0x1d')]],'as':_0x136606['as'],'attributes':_0x136606[_0xed7d('0x1e')],'include':_0x136606[_0xed7d('0x1c')]?_[_0xed7d('0x1b')](_0x136606[_0xed7d('0x1c')],function(_0x4d9359){return{'model':db[_0x4d9359['model']],'as':_0x4d9359['as'],'attributes':_0x4d9359[_0xed7d('0x1e')],'include':_0x4d9359['include']?_['map'](_0x4d9359[_0xed7d('0x1c')],function(_0x54bcc4){return{'model':db[_0x54bcc4[_0xed7d('0x1d')]],'as':_0x54bcc4['as'],'attributes':_0x54bcc4[_0xed7d('0x1e')]};}):[]};}):[]};}):[]:[]})[_0xed7d('0x1f')](function(_0xdbaec5){logger[_0xed7d('0x14')](_0xed7d('0x15'),_0x2f576d);logger[_0xed7d('0xf')](_0xed7d('0x15'),_0x2f576d,JSON[_0xed7d('0x20')](_0xdbaec5));_0x56b5ee(_0xdbaec5);})['catch'](function(_0x514653){logger[_0xed7d('0x11')]('GetUser',_0x514653[_0xed7d('0x13')],_0x2f576d);_0x20ddf6(_0x224fd0[_0xed7d('0x11')](0x1f4,_0x514653['message']));});});};exports[_0xed7d('0x21')]=function(_0x26b0f5){var _0x531553=this;return new Promise(function(_0x32f29e,_0x222079){return db[_0xed7d('0x22')][_0xed7d('0x23')]({'raw':_0x26b0f5[_0xed7d('0x17')]?_0x26b0f5['options'][_0xed7d('0x18')]===undefined?!![]:![]:!![],'where':_0x26b0f5[_0xed7d('0x17')]?_0x26b0f5[_0xed7d('0x17')][_0xed7d('0x19')]||null:null,'attributes':_0x26b0f5['options']?_0x26b0f5[_0xed7d('0x17')]['attributes']||null:null,'include':_0x26b0f5[_0xed7d('0x17')]?_0x26b0f5['options']['include']?_[_0xed7d('0x1b')](_0x26b0f5[_0xed7d('0x17')][_0xed7d('0x1c')],function(_0x5bc445){return{'model':db[_0x5bc445[_0xed7d('0x1d')]],'as':_0x5bc445['as'],'attributes':_0x5bc445[_0xed7d('0x1e')],'include':_0x5bc445['include']?_['map'](_0x5bc445[_0xed7d('0x1c')],function(_0x52e9ea){return{'model':db[_0x52e9ea[_0xed7d('0x1d')]],'as':_0x52e9ea['as'],'attributes':_0x52e9ea[_0xed7d('0x1e')],'include':_0x52e9ea[_0xed7d('0x1c')]?_[_0xed7d('0x1b')](_0x52e9ea[_0xed7d('0x1c')],function(_0x3b5f09){return{'model':db[_0x3b5f09[_0xed7d('0x1d')]],'as':_0x3b5f09['as'],'attributes':_0x3b5f09['attributes']};}):[]};}):[]};}):[]:[]})[_0xed7d('0x1f')](function(_0x17c2fd){logger[_0xed7d('0x14')](_0xed7d('0x21'),_0x26b0f5);logger[_0xed7d('0xf')]('ShowUser',_0x26b0f5,JSON['stringify'](_0x17c2fd));_0x32f29e(_0x17c2fd);})[_0xed7d('0x24')](function(_0x1543fa){logger[_0xed7d('0x11')](_0xed7d('0x21'),_0x1543fa[_0xed7d('0x13')],_0x26b0f5);_0x222079(_0x531553['error'](0x1f4,_0x1543fa[_0xed7d('0x13')]));});});};exports[_0xed7d('0x25')]=function(_0x15f7fc){var _0xb6428f=this;return new Promise(function(_0x495978,_0x429205){var _0x4de635;return db['User']['find']({'where':_0x15f7fc['options'][_0xed7d('0x19')]||{},'attributes':['id',_0xed7d('0x26'),'role','internal',_0xed7d('0x27')]})[_0xed7d('0x1f')](function(_0x38ed30){if(_0x38ed30){_0x4de635=_0x38ed30;return db[_0xed7d('0x28')][_0xed7d('0x29')]({'paused':0x1},{'where':{'UserId':_0x4de635['id']},'individualHooks':!![]});}})[_0xed7d('0x1f')](function(){if(_0x4de635){return db[_0xed7d('0x2a')][_0xed7d('0x16')]({'where':{'membername':_0x4de635['name'],'type':_0xed7d('0x2b'),'exitAt':null}});}})['then'](function(_0x3adaea){if(_0x4de635){if(_0x3adaea&&_0x3adaea[_0xed7d('0x2c')]){var _0x3d1be4=moment()[_0xed7d('0x2d')](_0xed7d('0x2e'));for(var _0x20c754=0x0,_0x3d0e1e=_0x3adaea['length'];_0x20c754<_0x3d0e1e;_0x20c754++){_0x3adaea[_0x20c754]['updateAttributes']({'exitAt':_0x3d1be4});}}}})[_0xed7d('0x1f')](function(){if(_0x4de635){var _0x27a360=[];var _0xbf537c=utils[_0xed7d('0x2f')]();_0xbf537c[_0xed7d('0x30')](function(_0x144477){_0x27a360[_0xed7d('0x31')]({'channel':_0x144477,'membername':_0x4de635[_0xed7d('0x26')],'interface':_[_0xed7d('0x32')](_0x4de635[_0xed7d('0x27')])?util['format'](_0xed7d('0x33'),_0x4de635[_0xed7d('0x26')]):_0x4de635['interface'],'type':_0xed7d('0x2b'),'enterAt':moment()[_0xed7d('0x2d')](_0xed7d('0x2e')),'data1':_0x15f7fc[_0xed7d('0x34')][_0xed7d('0x35')]||_0xed7d('0x36'),'role':_0x4de635['role'],'internal':_0x4de635[_0xed7d('0x37')],'uniqueid':_0x15f7fc[_0xed7d('0x34')][_0xed7d('0x38')]||null});});return db['MemberReport']['bulkCreate'](_0x27a360,{'individualHooks':!![]});}})[_0xed7d('0x1f')](function(){if(_0x4de635){return _0x4de635[_0xed7d('0x29')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'pauseType':_0x15f7fc[_0xed7d('0x34')][_0xed7d('0x35')]||_0xed7d('0x36'),'lastPauseAt':moment()[_0xed7d('0x2d')](_0xed7d('0x2e'))});}})[_0xed7d('0x1f')](function(_0x3ab263){_0x495978(_0x3ab263);})[_0xed7d('0x24')](function(_0x58b6a4){_0x429205(_0xb6428f[_0xed7d('0x11')](0x1f4,_0x58b6a4[_0xed7d('0x13')]));});});};exports[_0xed7d('0x39')]=function(_0x32812b){var _0xbab305=this;return new Promise(function(_0x6531fb,_0x375745){var _0x16a3f3;return db[_0xed7d('0x22')][_0xed7d('0x3a')]({'where':_0x32812b[_0xed7d('0x17')][_0xed7d('0x19')]||{},'attributes':['id',_0xed7d('0x26')]})[_0xed7d('0x1f')](function(_0x5443b5){if(_0x5443b5){_0x16a3f3=_0x5443b5;if(_0x32812b['body'][_0xed7d('0x3b')]&&!utils['isValidChannel'](_0x32812b[_0xed7d('0x34')][_0xed7d('0x3b')])){throw new Error('Unknown\x20channel');}switch(_0x32812b[_0xed7d('0x34')][_0xed7d('0x3b')]){case'voice':return db['UserVoiceQueueRt']['update']({'paused':0x0},{'where':{'UserId':_0x16a3f3['id']}})['then'](function(){return db[_0xed7d('0x2a')][_0xed7d('0x23')]({'where':{'channel':_0x32812b[_0xed7d('0x34')][_0xed7d('0x3b')],'membername':_0x16a3f3[_0xed7d('0x26')],'type':_0xed7d('0x2b'),'exitAt':null}});})[_0xed7d('0x1f')](function(_0x1738f7){if(_0x1738f7){return _0x1738f7[_0xed7d('0x29')]({'exitAt':moment()[_0xed7d('0x2d')]('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0xed7d('0x3c')},{'individualHooks':!![]});}return null;})[_0xed7d('0x1f')](function(){return _0x16a3f3[_0xed7d('0x29')]({'voicePause':![]});});case'mail':case _0xed7d('0x3d'):case _0xed7d('0x3e'):case _0xed7d('0x3f'):case _0xed7d('0x40'):return db['MemberReport'][_0xed7d('0x23')]({'where':{'channel':_0x32812b[_0xed7d('0x34')]['channel'],'membername':_0x16a3f3[_0xed7d('0x26')],'type':_0xed7d('0x2b'),'exitAt':null}})[_0xed7d('0x1f')](function(_0x5622bc){return _0x5622bc[_0xed7d('0x29')]({'exitAt':moment()[_0xed7d('0x2d')]('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0xed7d('0x3c')},{'individualHooks':!![]});})[_0xed7d('0x1f')](function(){var _0x48e526={};_['set'](_0x48e526,util[_0xed7d('0x2d')](_0xed7d('0x41'),_0x32812b['body'][_0xed7d('0x3b')],_0xed7d('0x42')),![]);return _0x16a3f3[_0xed7d('0x29')](_0x48e526);});default:return db[_0xed7d('0x28')]['update']({'paused':0x0},{'where':{'UserId':_0x16a3f3['id']}})['then'](function(){return db[_0xed7d('0x2a')][_0xed7d('0x16')]({'where':{'membername':_0x16a3f3[_0xed7d('0x26')],'type':_0xed7d('0x2b'),'exitAt':null}});})['then'](function(_0x191c71){var _0x311521=[];_0x191c71[_0xed7d('0x30')](function(_0x394517){_0x311521[_0xed7d('0x31')](_0x394517[_0xed7d('0x29')]({'exitAt':moment()[_0xed7d('0x2d')](_0xed7d('0x2e')),'data2':_0xed7d('0x3c')}));});return BPromise['all'](_0x311521);})['then'](function(){return _0x16a3f3[_0xed7d('0x29')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});});}}})[_0xed7d('0x1f')](function(_0x175c26){_0x6531fb(_0x175c26);})[_0xed7d('0x24')](function(_0x52ffd8){_0x375745(_0xbab305['error'](0x1f4,_0x52ffd8['message']));});});};exports['LogoutUser']=function(_0x12fb9a){var _0x2082d7=this;return new Promise(function(_0x372a58,_0x1e9aef){var _0x167ed6;return db[_0xed7d('0x22')][_0xed7d('0x3a')]({'where':_0x12fb9a['options'][_0xed7d('0x19')]||{},'attributes':['id',_0xed7d('0x26')]})[_0xed7d('0x1f')](function(_0x32a952){if(_0x32a952){_0x167ed6=_0x32a952;return db['UserVoiceQueueRt'][_0xed7d('0x43')]({'where':{'membername':_0x167ed6[_0xed7d('0x26')]},'individualHooks':!![]});}})[_0xed7d('0x1f')](function(){if(_0x167ed6){return db['MemberReport'][_0xed7d('0x16')]({'where':{'membername':_0x167ed6[_0xed7d('0x26')],'exitAt':null}});}})[_0xed7d('0x1f')](function(_0x47ca16){if(_0x167ed6){if(_0x47ca16&&_0x47ca16[_0xed7d('0x2c')]){var _0x59b6ec=[];_0x47ca16[_0xed7d('0x30')](function(_0x5716c5){_0x59b6ec[_0xed7d('0x31')](_0x5716c5[_0xed7d('0x29')]({'exitAt':moment()[_0xed7d('0x2d')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0xed7d('0x44')](_0x59b6ec);}}})['then'](function(){if(_0x167ed6){return _0x167ed6['update']({'online':![],'lastLoginAt':null,'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0xed7d('0x1f')](function(_0x5b0b0b){_0x372a58(_0x5b0b0b);})[_0xed7d('0x24')](function(_0x17cb60){_0x1e9aef(_0x2082d7[_0xed7d('0x11')](0x1f4,_0x17cb60[_0xed7d('0x13')]));});});};exports['LoginUser']=function(_0x31c599){var _0x12eff8=this;return new Promise(function(_0x1987e1,_0xc0db04){var _0x52f602;var _0x44ebc1;var _0x3d2b81;var _0x23930f;return db['User'][_0xed7d('0x3a')]({'where':_0x31c599['options'][_0xed7d('0x19')]||{},'attributes':['id','name',_0xed7d('0x45'),_0xed7d('0x46'),_0xed7d('0x47'),_0xed7d('0x37'),_0xed7d('0x48'),'interface']})[_0xed7d('0x1f')](function(_0x460056){if(_0x460056){_0x52f602=_0x460056;_0x23930f=_0x31c599[_0xed7d('0x34')][_0xed7d('0x27')]?_0x31c599[_0xed7d('0x34')][_0xed7d('0x27')]:util['format']('SIP/%s',_0x52f602[_0xed7d('0x26')]);return db[_0xed7d('0x22')][_0xed7d('0x49')]({'where':{'role':'agent','online':!![],'id':{'$ne':_0x52f602['id']}}});}})[_0xed7d('0x1f')](function(_0x5cc62d){if(_0x5cc62d){_0x3d2b81=_0x5cc62d;return require(_0xed7d('0x4a'))[_0xed7d('0x4b')]();}})['then'](function(_0x452e6d){if(_0x452e6d&&_0x452e6d[_0xed7d('0x4c')]&&_0x3d2b81>=_0x452e6d[_0xed7d('0x4c')]){throw new Error('Maximum\x20login\x20has\x20been\x20reached');}})['then'](function(){if(_0x52f602){return db[_0xed7d('0x28')][_0xed7d('0x43')]({'where':{'membername':_0x52f602['name']},'individualHooks':!![]});}})['then'](function(){if(_0x52f602){return _0x52f602['getVoiceQueues']({'raw':!![]});}})[_0xed7d('0x1f')](function(_0x3ab54c){if(_0x52f602){if(_0x3ab54c){var _0x1c9c68=[];_0x44ebc1=_0x3ab54c;if(_0x44ebc1[_0xed7d('0x2c')]){for(var _0x570f43=0x0;_0x570f43<_0x44ebc1['length'];_0x570f43++){_0x1c9c68[_0xed7d('0x31')](db['UserVoiceQueueRt'][_0xed7d('0x4d')]({'membername':_0x52f602[_0xed7d('0x26')],'UserId':_0x52f602['id'],'queue_name':_0x44ebc1[_0x570f43][_0xed7d('0x26')],'VoiceQueueId':_0x44ebc1[_0x570f43]['id'],'interface':_0x23930f,'paused':_0x52f602[_0xed7d('0x48')]||![],'penalty':_0x44ebc1[_0x570f43][_0xed7d('0x4e')]||0x0}));}return BPromise[_0xed7d('0x44')](_0x1c9c68);}}}})['then'](function(){if(_0x52f602){return db[_0xed7d('0x2a')][_0xed7d('0x16')]({'where':{'membername':_0x52f602['name'],'exitAt':null}});}})[_0xed7d('0x1f')](function(_0x4b5d6a){if(_0x52f602){if(_0x4b5d6a&&_0x4b5d6a['length']){var _0x58caa1=[];_0x4b5d6a[_0xed7d('0x30')](function(_0x1ab389){_0x58caa1[_0xed7d('0x31')](_0x1ab389[_0xed7d('0x29')]({'exitAt':moment()[_0xed7d('0x2d')](_0xed7d('0x2e'))}));});return BPromise[_0xed7d('0x44')](_0x58caa1);}}})[_0xed7d('0x1f')](function(_0x26aa87){if(_0x52f602){var _0x5f0d09=[];var _0x35a33a=[];var _0x57d6ee=utils[_0xed7d('0x2f')]();var _0x43a107={'membername':_0x52f602[_0xed7d('0x26')],'interface':_0x23930f,'enterAt':moment()[_0xed7d('0x2d')](_0xed7d('0x2e')),'role':_0x52f602['role'],'internal':_0x52f602[_0xed7d('0x37')]};_0x57d6ee[_0xed7d('0x30')](function(_0x22bbb9){_0x5f0d09[_0xed7d('0x31')](_[_0xed7d('0x4f')]({'channel':_0x22bbb9,'type':_0xed7d('0x50'),'data1':_0xed7d('0x51'),'data2':_0x23930f},_0x43a107));if(_0x52f602[_0xed7d('0x48')]){_0x35a33a[_0xed7d('0x31')](_['merge']({'channel':_0x22bbb9,'type':_0xed7d('0x2b'),'data1':_0xed7d('0x52')},_0x43a107));}});return db[_0xed7d('0x2a')][_0xed7d('0x53')](_0x5f0d09[_0xed7d('0x54')](_0x35a33a),{'individualHooks':!![]});}})[_0xed7d('0x1f')](function(){if(_0x52f602){return _0x52f602[_0xed7d('0x29')]({'online':!![],'lastLoginAt':moment()['format'](_0xed7d('0x2e')),'voicePause':_0x52f602['loginInPause']||![],'mailPause':_0x52f602[_0xed7d('0x48')]||![],'chatPause':_0x52f602['loginInPause']||![],'faxPause':_0x52f602[_0xed7d('0x48')]||![],'smsPause':_0x52f602[_0xed7d('0x48')]||![],'openchannelPause':_0x52f602[_0xed7d('0x48')]||![],'pauseType':_0x52f602[_0xed7d('0x48')]?_0xed7d('0x52'):null,'lastPauseAt':moment()[_0xed7d('0x2d')](_0xed7d('0x2e')),'interface':_0x23930f});}})[_0xed7d('0x1f')](function(_0x48cffd){_0x1987e1(_0x48cffd);})[_0xed7d('0x24')](function(_0x178ed2){_0xc0db04(_0x12eff8[_0xed7d('0x11')](0x1f4,_0x178ed2[_0xed7d('0x13')]));});});};