86f66b6f8462a26cd19e62776df60935419e2939
[motion2.git] / server / services / xdr / members.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 _0x8af9=['[%s][members][writeDB]','some','devicestatechange','[%s][members][devicestatechange]','device','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','INUSE','BUSY','TALKING','now','duration','exitAt','enterAt','agentcomplete','debug','[%s][members][agentcomplete]','assign','cdr','data1','source','data3','destination','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','destinationchannel','isNil','[%s][members][cdr]','lodash','./utils','Local/_attended@transfer','Queue:','info','format','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','uniqueid','interface','channel','data2','membername','type','name','internal','request','CreateMemberReport','getUserByName','split','error'];(function(_0x2886bc,_0x46347e){var _0x208052=function(_0x480783){while(--_0x480783){_0x2886bc['push'](_0x2886bc['shift']());}};_0x208052(++_0x46347e);}(_0x8af9,0xa8));var _0x98af=function(_0x25d0a5,_0xbca7c9){_0x25d0a5=_0x25d0a5-0x0;var _0x300bc6=_0x8af9[_0x25d0a5];return _0x300bc6;};'use strict';var _=require(_0x98af('0x0'));var util=require('util');var utils=require(_0x98af('0x1'));var members={};var exclude=[_0x98af('0x2'),_0x98af('0x3')];function writeDB(_0x23077f){utils[_0x98af('0x4')](util[_0x98af('0x5')](_0x98af('0x6'),_0x23077f[_0x98af('0x7')],_0x23077f[_0x98af('0x8')],_0x23077f[_0x98af('0x9')],_0x23077f[_0x98af('0xa')],_0x23077f[_0x98af('0xb')],_0x23077f[_0x98af('0xc')]));if(_0x23077f[_0x98af('0x8')]){utils['getUserByInterface'](_0x23077f[_0x98af('0x8')])['then'](function(_0x33f42a){if(_0x33f42a){_0x23077f['membername']=_0x33f42a[_0x98af('0xd')];_0x23077f[_0x98af('0xe')]=_0x33f42a[_0x98af('0xe')];utils[_0x98af('0xf')](_0x98af('0x10'),_0x23077f);}else{utils[_0x98af('0x11')](_0x23077f['interface'][_0x98af('0x12')]('/')[0x1])['then'](function(_0x109d07){if(_0x109d07){_0x23077f[_0x98af('0xb')]=_0x109d07['name'];_0x23077f[_0x98af('0xe')]=_0x109d07[_0x98af('0xe')];utils['request'](_0x98af('0x10'),_0x23077f);}});}})['catch'](function(_0x373c78){utils[_0x98af('0x13')](util['format'](_0x98af('0x14'),_0x23077f['uniqueid']),_0x373c78);});}delete members[_0x23077f[_0x98af('0x8')]];}function startsWith(_0x2acff6,_0x2b3f0b){return _[_0x98af('0x15')](_0x2acff6,function(_0x4319e9){return _['startsWith'](_0x2b3f0b,_0x4319e9);});}exports[_0x98af('0x16')]=function(_0x3aeb87){try{utils['debug'](util['format'](_0x98af('0x17'),members[_0x3aeb87[_0x98af('0x18')]]?members[_0x3aeb87[_0x98af('0x18')]][_0x98af('0x7')]:_0x3aeb87['device']),_0x3aeb87);utils[_0x98af('0x4')](util['format'](_0x98af('0x19'),members[_0x3aeb87[_0x98af('0x18')]]?members[_0x3aeb87[_0x98af('0x18')]][_0x98af('0x7')]:_0x3aeb87[_0x98af('0x18')],_0x3aeb87[_0x98af('0x1a')],_0x3aeb87['device']));switch(_0x3aeb87[_0x98af('0x1a')]){case _0x98af('0x1b'):case _0x98af('0x1c'):if(!startsWith(exclude,_0x3aeb87[_0x98af('0x18')])){members[_0x3aeb87['device']]={'channel':'voice','interface':_0x3aeb87[_0x98af('0x18')],'type':_0x98af('0x1d'),'enterAt':utils[_0x98af('0x1e')](),'role':'agent'};}break;case'NOT_INUSE':if(!_['isNil'](members[_0x3aeb87[_0x98af('0x18')]])){members[_0x3aeb87['device']]['exitAt']=utils['now']();members[_0x3aeb87[_0x98af('0x18')]][_0x98af('0x1f')]=utils['diffTime'](members[_0x3aeb87['device']][_0x98af('0x20')],members[_0x3aeb87[_0x98af('0x18')]][_0x98af('0x21')]);if(members[_0x3aeb87[_0x98af('0x18')]][_0x98af('0x7')]){writeDB(members[_0x3aeb87[_0x98af('0x18')]]);}}break;default:break;}}catch(_0xc82d38){utils['error'](util['format']('[%s][members][devicestatechange]',members[_0x3aeb87[_0x98af('0x18')]]?members[_0x3aeb87[_0x98af('0x18')]][_0x98af('0x7')]:_0x3aeb87[_0x98af('0x18')]),_0xc82d38);}};exports[_0x98af('0x22')]=function(_0x20555b){try{if(!_['isNil'](members[_0x20555b[_0x98af('0x8')]])){utils[_0x98af('0x23')](util[_0x98af('0x5')](_0x98af('0x24'),_0x20555b[_0x98af('0x7')]),_0x20555b);utils[_0x98af('0x4')](util[_0x98af('0x5')]('[%s][members][agentcomplete]\x20interface:%s\x20queue:%s',_0x20555b['uniqueid'],_0x20555b['interface'],_0x20555b['queue']));members[_0x20555b['interface']]=_[_0x98af('0x25')](members[_0x20555b[_0x98af('0x8')]],{'data4':_0x20555b['queue'],'uniqueid':_0x20555b[_0x98af('0x7')]});}}catch(_0x5a03dc){utils[_0x98af('0x13')](util['format'](_0x98af('0x24'),_0x20555b[_0x98af('0x7')]),_0x5a03dc);}};exports[_0x98af('0x26')]=function(_0x2679d6){try{utils[_0x98af('0x23')](util[_0x98af('0x5')]('[%s][members][cdr]',_0x2679d6['uniqueid']),_0x2679d6);if(_0x2679d6[_0x98af('0x9')]){var _0x149a1a=_0x2679d6[_0x98af('0x9')]['split']('-')[0x0];if(!_['isNil'](members[_0x149a1a])){members[_0x149a1a]=_['assign'](members[_0x149a1a],{'data1':members[_0x149a1a][_0x98af('0x27')]||_0x2679d6[_0x98af('0xc')],'data2':members[_0x149a1a]['data2']||_0x2679d6[_0x98af('0x28')],'data3':members[_0x149a1a][_0x98af('0x29')]||_0x2679d6[_0x98af('0x2a')],'uniqueid':members[_0x149a1a][_0x98af('0x7')]||_0x2679d6[_0x98af('0x7')]});utils[_0x98af('0x4')](util[_0x98af('0x5')](_0x98af('0x2b'),_0x2679d6[_0x98af('0x7')],members[_0x149a1a]['data1'],members[_0x149a1a][_0x98af('0xa')],members[_0x149a1a][_0x98af('0x29')]));if(members[_0x149a1a]['exitAt']){writeDB(members[_0x149a1a]);}}}if(_0x2679d6['destinationchannel']){var _0x560010=_0x2679d6[_0x98af('0x2c')]['split']('-')[0x0];if(!_[_0x98af('0x2d')](members[_0x560010])){members[_0x560010]=_[_0x98af('0x25')](members[_0x560010],{'data1':members[_0x560010][_0x98af('0x27')]||_0x2679d6[_0x98af('0xc')],'data2':members[_0x560010]['data2']||_0x2679d6[_0x98af('0x28')],'data3':members[_0x560010][_0x98af('0x29')]||_0x2679d6[_0x98af('0x2a')],'uniqueid':members[_0x560010][_0x98af('0x7')]||_0x2679d6[_0x98af('0x7')]});utils['info'](util['format'](_0x98af('0x2b'),_0x2679d6['uniqueid'],members[_0x560010][_0x98af('0x27')],members[_0x560010]['data2'],members[_0x560010][_0x98af('0x29')]));if(members[_0x560010]['exitAt']){writeDB(members[_0x560010]);}}}}catch(_0xd23bdf){utils[_0x98af('0x13')](util[_0x98af('0x5')](_0x98af('0x2e'),_0x2679d6[_0x98af('0x7')]),_0xd23bdf);}};