6707bbd21ad05c4aa512413ee7aa01f5ba3a6561
[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 _0x6f49=['[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','queue','assign','[%s][members][agentcomplete]','cdr','[%s][members][cdr]','type','data3','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','data1','destinationchannel','source','destination','util','./utils','Local/_attended@transfer','Queue:','uniqueid','channel','data2','membername','interface','getUserByInterface','then','name','internal','CreateMemberReport','getUserByName','split','request','catch','some','devicestatechange','debug','format','device','info','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','INUSE','voice','TALKING','now','agent','isNil','exitAt','duration','diffTime','enterAt','error','agentcomplete'];(function(_0x57327b,_0x5d9e8a){var _0x11563e=function(_0x4d50db){while(--_0x4d50db){_0x57327b['push'](_0x57327b['shift']());}};_0x11563e(++_0x5d9e8a);}(_0x6f49,0xa6));var _0x96f4=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x6f49[_0x321bb2];return _0x9c12ed;};'use strict';var _=require('lodash');var util=require(_0x96f4('0x0'));var utils=require(_0x96f4('0x1'));var members={};var exclude=[_0x96f4('0x2'),_0x96f4('0x3')];function writeDB(_0x16a9ee){utils['info'](util['format']('[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s',_0x16a9ee[_0x96f4('0x4')],_0x16a9ee['interface'],_0x16a9ee[_0x96f4('0x5')],_0x16a9ee[_0x96f4('0x6')],_0x16a9ee[_0x96f4('0x7')],_0x16a9ee['type']));if(_0x16a9ee[_0x96f4('0x8')]){utils[_0x96f4('0x9')](_0x16a9ee[_0x96f4('0x8')])[_0x96f4('0xa')](function(_0x198654){if(_0x198654){_0x16a9ee[_0x96f4('0x7')]=_0x198654[_0x96f4('0xb')];_0x16a9ee[_0x96f4('0xc')]=_0x198654[_0x96f4('0xc')];utils['request'](_0x96f4('0xd'),_0x16a9ee);}else{utils[_0x96f4('0xe')](_0x16a9ee[_0x96f4('0x8')][_0x96f4('0xf')]('/')[0x1])[_0x96f4('0xa')](function(_0x52e513){if(_0x52e513){_0x16a9ee[_0x96f4('0x7')]=_0x52e513[_0x96f4('0xb')];_0x16a9ee[_0x96f4('0xc')]=_0x52e513['internal'];utils[_0x96f4('0x10')](_0x96f4('0xd'),_0x16a9ee);}});}})[_0x96f4('0x11')](function(_0x2faa44){utils['error'](util['format']('[%s][members][writeDB]',_0x16a9ee[_0x96f4('0x4')]),_0x2faa44);});}delete members[_0x16a9ee[_0x96f4('0x8')]];}function startsWith(_0x30b880,_0x24fba9){return _[_0x96f4('0x12')](_0x30b880,function(_0x33ce8c){return _['startsWith'](_0x24fba9,_0x33ce8c);});}exports[_0x96f4('0x13')]=function(_0xbe2caf){try{utils[_0x96f4('0x14')](util[_0x96f4('0x15')]('[%s][members][devicestatechange]',members[_0xbe2caf[_0x96f4('0x16')]]?members[_0xbe2caf[_0x96f4('0x16')]][_0x96f4('0x4')]:_0xbe2caf['device']),_0xbe2caf);utils[_0x96f4('0x17')](util[_0x96f4('0x15')](_0x96f4('0x18'),members[_0xbe2caf[_0x96f4('0x16')]]?members[_0xbe2caf[_0x96f4('0x16')]][_0x96f4('0x4')]:_0xbe2caf['device'],_0xbe2caf[_0x96f4('0x19')],_0xbe2caf[_0x96f4('0x16')]));switch(_0xbe2caf['state']){case _0x96f4('0x1a'):case'BUSY':if(!startsWith(exclude,_0xbe2caf['device'])){members[_0xbe2caf[_0x96f4('0x16')]]={'channel':_0x96f4('0x1b'),'interface':_0xbe2caf[_0x96f4('0x16')],'type':_0x96f4('0x1c'),'enterAt':utils[_0x96f4('0x1d')](),'role':_0x96f4('0x1e')};}break;case'NOT_INUSE':if(!_[_0x96f4('0x1f')](members[_0xbe2caf[_0x96f4('0x16')]])){members[_0xbe2caf[_0x96f4('0x16')]][_0x96f4('0x20')]=utils['now']();members[_0xbe2caf[_0x96f4('0x16')]][_0x96f4('0x21')]=utils[_0x96f4('0x22')](members[_0xbe2caf[_0x96f4('0x16')]][_0x96f4('0x20')],members[_0xbe2caf['device']][_0x96f4('0x23')]);if(members[_0xbe2caf[_0x96f4('0x16')]][_0x96f4('0x4')]){writeDB(members[_0xbe2caf[_0x96f4('0x16')]]);}}break;default:break;}}catch(_0x29de6d){utils[_0x96f4('0x24')](util[_0x96f4('0x15')]('[%s][members][devicestatechange]',members[_0xbe2caf[_0x96f4('0x16')]]?members[_0xbe2caf[_0x96f4('0x16')]]['uniqueid']:_0xbe2caf[_0x96f4('0x16')]),_0x29de6d);}};exports[_0x96f4('0x25')]=function(_0x1558a2){try{if(!_[_0x96f4('0x1f')](members[_0x1558a2[_0x96f4('0x8')]])){utils[_0x96f4('0x14')](util['format']('[%s][members][agentcomplete]',_0x1558a2[_0x96f4('0x4')]),_0x1558a2);utils[_0x96f4('0x17')](util[_0x96f4('0x15')](_0x96f4('0x26'),_0x1558a2[_0x96f4('0x4')],_0x1558a2[_0x96f4('0x8')],_0x1558a2[_0x96f4('0x27')]));members[_0x1558a2[_0x96f4('0x8')]]=_[_0x96f4('0x28')](members[_0x1558a2['interface']],{'data4':_0x1558a2[_0x96f4('0x27')],'uniqueid':_0x1558a2[_0x96f4('0x4')]});}}catch(_0x236d07){utils['error'](util['format'](_0x96f4('0x29'),_0x1558a2[_0x96f4('0x4')]),_0x236d07);}};exports[_0x96f4('0x2a')]=function(_0x291d9d){try{utils[_0x96f4('0x14')](util[_0x96f4('0x15')](_0x96f4('0x2b'),_0x291d9d[_0x96f4('0x4')]),_0x291d9d);if(_0x291d9d[_0x96f4('0x5')]){var _0x51d0bf=_0x291d9d[_0x96f4('0x5')]['split']('-')[0x0];if(!_[_0x96f4('0x1f')](members[_0x51d0bf])){members[_0x51d0bf]=_[_0x96f4('0x28')](members[_0x51d0bf],{'data1':members[_0x51d0bf]['data1']||_0x291d9d[_0x96f4('0x2c')],'data2':members[_0x51d0bf]['data2']||_0x291d9d['source'],'data3':members[_0x51d0bf][_0x96f4('0x2d')]||_0x291d9d['destination'],'uniqueid':members[_0x51d0bf][_0x96f4('0x4')]||_0x291d9d[_0x96f4('0x4')]});utils[_0x96f4('0x17')](util[_0x96f4('0x15')](_0x96f4('0x2e'),_0x291d9d[_0x96f4('0x4')],members[_0x51d0bf][_0x96f4('0x2f')],members[_0x51d0bf][_0x96f4('0x6')],members[_0x51d0bf][_0x96f4('0x2d')]));if(members[_0x51d0bf]['exitAt']){writeDB(members[_0x51d0bf]);}}}if(_0x291d9d['destinationchannel']){var _0xcf1e1=_0x291d9d[_0x96f4('0x30')][_0x96f4('0xf')]('-')[0x0];if(!_[_0x96f4('0x1f')](members[_0xcf1e1])){members[_0xcf1e1]=_[_0x96f4('0x28')](members[_0xcf1e1],{'data1':members[_0xcf1e1]['data1']||_0x291d9d['type'],'data2':members[_0xcf1e1]['data2']||_0x291d9d[_0x96f4('0x31')],'data3':members[_0xcf1e1]['data3']||_0x291d9d[_0x96f4('0x32')],'uniqueid':members[_0xcf1e1][_0x96f4('0x4')]||_0x291d9d[_0x96f4('0x4')]});utils[_0x96f4('0x17')](util[_0x96f4('0x15')](_0x96f4('0x2e'),_0x291d9d['uniqueid'],members[_0xcf1e1][_0x96f4('0x2f')],members[_0xcf1e1][_0x96f4('0x6')],members[_0xcf1e1][_0x96f4('0x2d')]));if(members[_0xcf1e1][_0x96f4('0x20')]){writeDB(members[_0xcf1e1]);}}}}catch(_0x53f70c){utils[_0x96f4('0x24')](util[_0x96f4('0x15')](_0x96f4('0x2b'),_0x291d9d[_0x96f4('0x4')]),_0x53f70c);}};