Built motion from commit 85328c08.|2.5.50
[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 _0x83f1=['CreateMemberReport','getUserByName','split','catch','error','[%s][members][writeDB]','startsWith','devicestatechange','debug','[%s][members][devicestatechange]','device','info','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','BUSY','voice','TALKING','NOT_INUSE','diffTime','enterAt','agentcomplete','isNil','[%s][members][agentcomplete]','queue','cdr','[%s][members][cdr]','assign','data1','type','data3','destination','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','destinationchannel','util','Local/_attended@transfer','Queue:','format','uniqueid','interface','channel','data2','membername','name','internal','request'];(function(_0x35d21e,_0x178505){var _0x3ed9ec=function(_0x25741e){while(--_0x25741e){_0x35d21e['push'](_0x35d21e['shift']());}};_0x3ed9ec(++_0x178505);}(_0x83f1,0xa8));var _0x183f=function(_0xcae483,_0x5083e2){_0xcae483=_0xcae483-0x0;var _0x35d6bf=_0x83f1[_0xcae483];return _0x35d6bf;};'use strict';var _=require('lodash');var util=require(_0x183f('0x0'));var utils=require('./utils');var members={};var exclude=[_0x183f('0x1'),_0x183f('0x2')];function writeDB(_0x59375f){utils['info'](util[_0x183f('0x3')]('[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s',_0x59375f[_0x183f('0x4')],_0x59375f[_0x183f('0x5')],_0x59375f[_0x183f('0x6')],_0x59375f[_0x183f('0x7')],_0x59375f[_0x183f('0x8')],_0x59375f['type']));if(_0x59375f[_0x183f('0x5')]){utils['getUserByInterface'](_0x59375f[_0x183f('0x5')])['then'](function(_0x5a76fc){if(_0x5a76fc){_0x59375f['membername']=_0x5a76fc[_0x183f('0x9')];_0x59375f[_0x183f('0xa')]=_0x5a76fc[_0x183f('0xa')];utils[_0x183f('0xb')](_0x183f('0xc'),_0x59375f);}else{utils[_0x183f('0xd')](_0x59375f['interface'][_0x183f('0xe')]('/')[0x1])['then'](function(_0x5bfd41){if(_0x5bfd41){_0x59375f[_0x183f('0x8')]=_0x5bfd41[_0x183f('0x9')];_0x59375f[_0x183f('0xa')]=_0x5bfd41['internal'];utils[_0x183f('0xb')](_0x183f('0xc'),_0x59375f);}});}})[_0x183f('0xf')](function(_0x471f31){utils[_0x183f('0x10')](util[_0x183f('0x3')](_0x183f('0x11'),_0x59375f[_0x183f('0x4')]),_0x471f31);});}delete members[_0x59375f[_0x183f('0x5')]];}function startsWith(_0x5ec14d,_0x410293){return _['some'](_0x5ec14d,function(_0x4a0d4f){return _[_0x183f('0x12')](_0x410293,_0x4a0d4f);});}exports[_0x183f('0x13')]=function(_0x4030a8){try{utils[_0x183f('0x14')](util[_0x183f('0x3')](_0x183f('0x15'),members[_0x4030a8['device']]?members[_0x4030a8['device']][_0x183f('0x4')]:_0x4030a8[_0x183f('0x16')]),_0x4030a8);utils[_0x183f('0x17')](util['format'](_0x183f('0x18'),members[_0x4030a8['device']]?members[_0x4030a8[_0x183f('0x16')]][_0x183f('0x4')]:_0x4030a8[_0x183f('0x16')],_0x4030a8[_0x183f('0x19')],_0x4030a8[_0x183f('0x16')]));switch(_0x4030a8[_0x183f('0x19')]){case'INUSE':case _0x183f('0x1a'):if(!startsWith(exclude,_0x4030a8[_0x183f('0x16')])){members[_0x4030a8[_0x183f('0x16')]]={'channel':_0x183f('0x1b'),'interface':_0x4030a8[_0x183f('0x16')],'type':_0x183f('0x1c'),'enterAt':utils['now'](),'role':'agent'};}break;case _0x183f('0x1d'):if(!_['isNil'](members[_0x4030a8[_0x183f('0x16')]])){members[_0x4030a8[_0x183f('0x16')]]['exitAt']=utils['now']();members[_0x4030a8['device']]['duration']=utils[_0x183f('0x1e')](members[_0x4030a8[_0x183f('0x16')]]['exitAt'],members[_0x4030a8[_0x183f('0x16')]][_0x183f('0x1f')]);if(members[_0x4030a8['device']][_0x183f('0x4')]){writeDB(members[_0x4030a8[_0x183f('0x16')]]);}}break;default:break;}}catch(_0x33a981){utils['error'](util[_0x183f('0x3')](_0x183f('0x15'),members[_0x4030a8[_0x183f('0x16')]]?members[_0x4030a8['device']][_0x183f('0x4')]:_0x4030a8[_0x183f('0x16')]),_0x33a981);}};exports[_0x183f('0x20')]=function(_0x256b2c){try{if(!_[_0x183f('0x21')](members[_0x256b2c[_0x183f('0x5')]])){utils[_0x183f('0x14')](util[_0x183f('0x3')](_0x183f('0x22'),_0x256b2c[_0x183f('0x4')]),_0x256b2c);utils[_0x183f('0x17')](util['format']('[%s][members][agentcomplete]\x20interface:%s\x20queue:%s',_0x256b2c[_0x183f('0x4')],_0x256b2c[_0x183f('0x5')],_0x256b2c[_0x183f('0x23')]));members[_0x256b2c['interface']]=_['assign'](members[_0x256b2c[_0x183f('0x5')]],{'data4':_0x256b2c[_0x183f('0x23')],'uniqueid':_0x256b2c[_0x183f('0x4')]});}}catch(_0x623119){utils[_0x183f('0x10')](util[_0x183f('0x3')](_0x183f('0x22'),_0x256b2c[_0x183f('0x4')]),_0x623119);}};exports[_0x183f('0x24')]=function(_0x13a8af){try{utils[_0x183f('0x14')](util['format'](_0x183f('0x25'),_0x13a8af[_0x183f('0x4')]),_0x13a8af);if(_0x13a8af[_0x183f('0x6')]){var _0x488f65=_0x13a8af[_0x183f('0x6')]['split']('-')[0x0];if(!_[_0x183f('0x21')](members[_0x488f65])){members[_0x488f65]=_[_0x183f('0x26')](members[_0x488f65],{'data1':members[_0x488f65][_0x183f('0x27')]||_0x13a8af[_0x183f('0x28')],'data2':members[_0x488f65][_0x183f('0x7')]||_0x13a8af['source'],'data3':members[_0x488f65][_0x183f('0x29')]||_0x13a8af[_0x183f('0x2a')],'uniqueid':members[_0x488f65][_0x183f('0x4')]||_0x13a8af['uniqueid']});utils['info'](util[_0x183f('0x3')](_0x183f('0x2b'),_0x13a8af['uniqueid'],members[_0x488f65][_0x183f('0x27')],members[_0x488f65][_0x183f('0x7')],members[_0x488f65][_0x183f('0x29')]));if(members[_0x488f65]['exitAt']){writeDB(members[_0x488f65]);}}}if(_0x13a8af[_0x183f('0x2c')]){var _0x542c94=_0x13a8af[_0x183f('0x2c')][_0x183f('0xe')]('-')[0x0];if(!_[_0x183f('0x21')](members[_0x542c94])){members[_0x542c94]=_[_0x183f('0x26')](members[_0x542c94],{'data1':members[_0x542c94][_0x183f('0x27')]||_0x13a8af[_0x183f('0x28')],'data2':members[_0x542c94]['data2']||_0x13a8af['source'],'data3':members[_0x542c94]['data3']||_0x13a8af[_0x183f('0x2a')],'uniqueid':members[_0x542c94][_0x183f('0x4')]||_0x13a8af[_0x183f('0x4')]});utils[_0x183f('0x17')](util[_0x183f('0x3')]('[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s',_0x13a8af[_0x183f('0x4')],members[_0x542c94][_0x183f('0x27')],members[_0x542c94][_0x183f('0x7')],members[_0x542c94][_0x183f('0x29')]));if(members[_0x542c94]['exitAt']){writeDB(members[_0x542c94]);}}}}catch(_0x5eb1f1){utils[_0x183f('0x10')](util['format'](_0x183f('0x25'),_0x13a8af[_0x183f('0x4')]),_0x5eb1f1);}};