01ad1bd33e008c1dba50b884e00830ae20e40dd2
[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 _0x6a98=['interface','channel','data2','type','getUserByInterface','then','membername','internal','request','CreateMemberReport','getUserByName','split','name','catch','format','[%s][members][writeDB]','uniqueid','some','startsWith','debug','[%s][members][devicestatechange]','device','state','INUSE','TALKING','now','agent','NOT_INUSE','isNil','diffTime','enterAt','error','agentcomplete','[%s][members][agentcomplete]','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','queue','assign','cdr','[%s][members][cdr]','source','data3','destination','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','data1','exitAt','destinationchannel','util','Local/_attended@transfer','Queue:','info','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s'];(function(_0xea343d,_0x311197){var _0x2c6e9c=function(_0x454bd6){while(--_0x454bd6){_0xea343d['push'](_0xea343d['shift']());}};_0x2c6e9c(++_0x311197);}(_0x6a98,0xc7));var _0x86a9=function(_0x11a566,_0x4b82c5){_0x11a566=_0x11a566-0x0;var _0x2395ac=_0x6a98[_0x11a566];return _0x2395ac;};'use strict';var _=require('lodash');var util=require(_0x86a9('0x0'));var utils=require('./utils');var members={};var exclude=[_0x86a9('0x1'),_0x86a9('0x2')];function writeDB(_0x334b0d){utils[_0x86a9('0x3')](util['format'](_0x86a9('0x4'),_0x334b0d['uniqueid'],_0x334b0d[_0x86a9('0x5')],_0x334b0d[_0x86a9('0x6')],_0x334b0d[_0x86a9('0x7')],_0x334b0d['membername'],_0x334b0d[_0x86a9('0x8')]));if(_0x334b0d['interface']){utils[_0x86a9('0x9')](_0x334b0d[_0x86a9('0x5')])[_0x86a9('0xa')](function(_0x1d0eeb){if(_0x1d0eeb){_0x334b0d[_0x86a9('0xb')]=_0x1d0eeb['name'];_0x334b0d[_0x86a9('0xc')]=_0x1d0eeb[_0x86a9('0xc')];utils[_0x86a9('0xd')](_0x86a9('0xe'),_0x334b0d);}else{utils[_0x86a9('0xf')](_0x334b0d[_0x86a9('0x5')][_0x86a9('0x10')]('/')[0x1])['then'](function(_0x503755){if(_0x503755){_0x334b0d[_0x86a9('0xb')]=_0x503755[_0x86a9('0x11')];_0x334b0d[_0x86a9('0xc')]=_0x503755['internal'];utils['request']('CreateMemberReport',_0x334b0d);}});}})[_0x86a9('0x12')](function(_0x505879){utils['error'](util[_0x86a9('0x13')](_0x86a9('0x14'),_0x334b0d[_0x86a9('0x15')]),_0x505879);});}delete members[_0x334b0d[_0x86a9('0x5')]];}function startsWith(_0x1629c3,_0x4271d3){return _[_0x86a9('0x16')](_0x1629c3,function(_0x5ea0a8){return _[_0x86a9('0x17')](_0x4271d3,_0x5ea0a8);});}exports['devicestatechange']=function(_0x3b6502){try{utils[_0x86a9('0x18')](util[_0x86a9('0x13')](_0x86a9('0x19'),members[_0x3b6502[_0x86a9('0x1a')]]?members[_0x3b6502[_0x86a9('0x1a')]][_0x86a9('0x15')]:_0x3b6502[_0x86a9('0x1a')]),_0x3b6502);utils[_0x86a9('0x3')](util[_0x86a9('0x13')]('[%s][members][devicestatechange]\x20state:%s\x20interface:%s',members[_0x3b6502['device']]?members[_0x3b6502[_0x86a9('0x1a')]][_0x86a9('0x15')]:_0x3b6502[_0x86a9('0x1a')],_0x3b6502['state'],_0x3b6502[_0x86a9('0x1a')]));switch(_0x3b6502[_0x86a9('0x1b')]){case _0x86a9('0x1c'):case'BUSY':if(!startsWith(exclude,_0x3b6502[_0x86a9('0x1a')])){members[_0x3b6502[_0x86a9('0x1a')]]={'channel':'voice','interface':_0x3b6502[_0x86a9('0x1a')],'type':_0x86a9('0x1d'),'enterAt':utils[_0x86a9('0x1e')](),'role':_0x86a9('0x1f')};}break;case _0x86a9('0x20'):if(!_[_0x86a9('0x21')](members[_0x3b6502['device']])){members[_0x3b6502[_0x86a9('0x1a')]]['exitAt']=utils[_0x86a9('0x1e')]();members[_0x3b6502[_0x86a9('0x1a')]]['duration']=utils[_0x86a9('0x22')](members[_0x3b6502[_0x86a9('0x1a')]]['exitAt'],members[_0x3b6502[_0x86a9('0x1a')]][_0x86a9('0x23')]);if(members[_0x3b6502[_0x86a9('0x1a')]][_0x86a9('0x15')]){writeDB(members[_0x3b6502[_0x86a9('0x1a')]]);}}break;default:break;}}catch(_0x3783e0){utils[_0x86a9('0x24')](util[_0x86a9('0x13')](_0x86a9('0x19'),members[_0x3b6502[_0x86a9('0x1a')]]?members[_0x3b6502['device']][_0x86a9('0x15')]:_0x3b6502[_0x86a9('0x1a')]),_0x3783e0);}};exports[_0x86a9('0x25')]=function(_0x50982d){try{if(!_[_0x86a9('0x21')](members[_0x50982d[_0x86a9('0x5')]])){utils['debug'](util[_0x86a9('0x13')](_0x86a9('0x26'),_0x50982d['uniqueid']),_0x50982d);utils[_0x86a9('0x3')](util[_0x86a9('0x13')](_0x86a9('0x27'),_0x50982d[_0x86a9('0x15')],_0x50982d[_0x86a9('0x5')],_0x50982d[_0x86a9('0x28')]));members[_0x50982d[_0x86a9('0x5')]]=_[_0x86a9('0x29')](members[_0x50982d['interface']],{'data4':_0x50982d[_0x86a9('0x28')],'uniqueid':_0x50982d[_0x86a9('0x15')]});}}catch(_0x4289f7){utils['error'](util[_0x86a9('0x13')](_0x86a9('0x26'),_0x50982d[_0x86a9('0x15')]),_0x4289f7);}};exports[_0x86a9('0x2a')]=function(_0x385c01){try{utils['debug'](util[_0x86a9('0x13')](_0x86a9('0x2b'),_0x385c01[_0x86a9('0x15')]),_0x385c01);if(_0x385c01[_0x86a9('0x6')]){var _0x208877=_0x385c01[_0x86a9('0x6')][_0x86a9('0x10')]('-')[0x0];if(!_['isNil'](members[_0x208877])){members[_0x208877]=_[_0x86a9('0x29')](members[_0x208877],{'data1':members[_0x208877]['data1']||_0x385c01[_0x86a9('0x8')],'data2':members[_0x208877][_0x86a9('0x7')]||_0x385c01[_0x86a9('0x2c')],'data3':members[_0x208877][_0x86a9('0x2d')]||_0x385c01[_0x86a9('0x2e')],'uniqueid':members[_0x208877][_0x86a9('0x15')]||_0x385c01[_0x86a9('0x15')]});utils['info'](util['format'](_0x86a9('0x2f'),_0x385c01[_0x86a9('0x15')],members[_0x208877][_0x86a9('0x30')],members[_0x208877][_0x86a9('0x7')],members[_0x208877][_0x86a9('0x2d')]));if(members[_0x208877][_0x86a9('0x31')]){writeDB(members[_0x208877]);}}}if(_0x385c01[_0x86a9('0x32')]){var _0x166f5d=_0x385c01[_0x86a9('0x32')][_0x86a9('0x10')]('-')[0x0];if(!_[_0x86a9('0x21')](members[_0x166f5d])){members[_0x166f5d]=_[_0x86a9('0x29')](members[_0x166f5d],{'data1':members[_0x166f5d][_0x86a9('0x30')]||_0x385c01[_0x86a9('0x8')],'data2':members[_0x166f5d][_0x86a9('0x7')]||_0x385c01['source'],'data3':members[_0x166f5d][_0x86a9('0x2d')]||_0x385c01['destination'],'uniqueid':members[_0x166f5d][_0x86a9('0x15')]||_0x385c01[_0x86a9('0x15')]});utils[_0x86a9('0x3')](util['format'](_0x86a9('0x2f'),_0x385c01[_0x86a9('0x15')],members[_0x166f5d][_0x86a9('0x30')],members[_0x166f5d][_0x86a9('0x7')],members[_0x166f5d][_0x86a9('0x2d')]));if(members[_0x166f5d][_0x86a9('0x31')]){writeDB(members[_0x166f5d]);}}}}catch(_0x5f1a9c){utils[_0x86a9('0x24')](util[_0x86a9('0x13')](_0x86a9('0x2b'),_0x385c01['uniqueid']),_0x5f1a9c);}};