20ef7855153ed966e03934a594e0590ed8d9dede
[motion2.git] / server / api / voiceChanSpy / voiceChanSpy.model.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 _0x44b5=['VoiceExtension','bulkCreate','destroy','lodash','util','bluebird','context','from-sip','%s%s','prefix','system','push','merge','format','CDR(type)=%s','record','Authenticate','SIP/%s,%s','name','options','length','internal','User','then','catch','exports','models','define','VoiceChanSpy','voice_chanspy'];(function(_0x2d7f0e,_0x3e6fbd){var _0x110b07=function(_0x557b00){while(--_0x557b00){_0x2d7f0e['push'](_0x2d7f0e['shift']());}};_0x110b07(++_0x3e6fbd);}(_0x44b5,0x99));var _0x544b=function(_0x2606ad,_0x145fa2){_0x2606ad=_0x2606ad-0x0;var _0x550264=_0x44b5[_0x2606ad];return _0x550264;};'use strict';var _=require(_0x544b('0x0'));var util=require(_0x544b('0x1'));var BPromise=require(_0x544b('0x2'));var attributes=require('./voiceChanSpy.attributes');var getUserApplications=function(_0x2dc3b0,_0x59eb78,_0x5a3d69){var _0x2909a4=0x1;var _0x1aaa4e=[];var _0x4d558f={'context':_0x59eb78[_0x544b('0x3')]||_0x544b('0x4'),'exten':util['format'](_0x544b('0x5'),_0x2dc3b0[_0x544b('0x6')],_0x5a3d69),'type':_0x544b('0x7'),'isApp':![],'ChanSpyId':_0x2dc3b0['id'],'UserId':_0x59eb78['id']};_0x1aaa4e[_0x544b('0x8')](_[_0x544b('0x9')]({'app':'Set','appdata':util[_0x544b('0xa')](_0x544b('0xb'),'chanspy'),'priority':_0x2909a4++},_0x4d558f));if(_0x2dc3b0[_0x544b('0xc')]){_0x1aaa4e['push'](_[_0x544b('0x9')]({'app':'MixMonitor','appdata':util[_0x544b('0xa')]('${UNIQUEID}.%s,a',_0x2dc3b0['recordingFormat']),'priority':_0x2909a4++},_0x4d558f));}if(_0x2dc3b0['auth']){_0x1aaa4e[_0x544b('0x8')](_[_0x544b('0x9')]({'app':_0x544b('0xd'),'appdata':_0x2dc3b0['password'],'priority':_0x2909a4++},_0x4d558f));}_0x1aaa4e[_0x544b('0x8')](_['merge']({'app':'ChanSpy','appdata':util[_0x544b('0xa')](_0x544b('0xe'),_0x59eb78[_0x544b('0xf')],_0x2dc3b0[_0x544b('0x10')]?_0x2dc3b0[_0x544b('0x10')]['join'](''):''),'priority':_0x2909a4++},_0x4d558f));if(_0x2dc3b0[_0x544b('0xc')]){_0x1aaa4e[_0x544b('0x8')](_[_0x544b('0x9')]({'app':'StopMixMonitor','priority':_0x2909a4++},_0x4d558f));}return _0x1aaa4e;};var getChanSpyApplications=function(_0x3b660e,_0x379d6e){var _0x4e9df0=[];for(var _0x122b8f=0x0,_0x242abf=0x1;_0x122b8f<_0x379d6e[_0x544b('0x11')];_0x122b8f++,_0x242abf=0x1){_0x4e9df0=_0x4e9df0['concat'](getUserApplications(_0x3b660e,_0x379d6e[_0x122b8f],_0x379d6e[_0x122b8f][_0x544b('0x12')]));if(_0x379d6e[_0x122b8f][_0x544b('0x12')]!=_0x379d6e[_0x122b8f][_0x544b('0xf')]){_0x4e9df0=_0x4e9df0['concat'](getUserApplications(_0x3b660e,_0x379d6e[_0x122b8f],_0x379d6e[_0x122b8f][_0x544b('0xf')]));}}return _0x4e9df0;};var getChanSpyPromise=function(_0x5d20da,_0x5356dd){return new BPromise(function(_0x5b490b,_0x83ebc7){return _0x5d20da[_0x544b('0x13')]['findAll']({'attributes':['id',_0x544b('0xf'),_0x544b('0x12')],'where':{'role':'agent','chanspy':!![]},'raw':!![]})[_0x544b('0x14')](function(_0x48f97b){if(_0x48f97b){return _0x5b490b(getChanSpyApplications(_0x5356dd,_0x48f97b));}return _0x5b490b([]);})[_0x544b('0x15')](function(_0x25789e){_0x83ebc7(_0x25789e);});});};module[_0x544b('0x16')]=function(_0x166bea,_0x5a7e94){var _0x5a9523=_0x166bea[_0x544b('0x17')];return _0x166bea[_0x544b('0x18')](_0x544b('0x19'),attributes,{'tableName':_0x544b('0x1a'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x1b0b65,_0x5f483b,_0x30463e){return getChanSpyPromise(_0x5a9523,_0x1b0b65)[_0x544b('0x14')](function(_0xd0f287){if(_0xd0f287&&_0xd0f287[_0x544b('0x11')]){return _0x5a9523[_0x544b('0x1b')][_0x544b('0x1c')](_0xd0f287);}})['then'](function(){_0x30463e();})[_0x544b('0x15')](function(_0x98fc4a){_0x30463e(_0x98fc4a);});},'afterUpdate':function(_0x70b440,_0x7c0b2e,_0x5d6cd3){return _0x5a9523[_0x544b('0x1b')]['destroy']({'where':{'ChanSpyId':_0x70b440['id']}})[_0x544b('0x14')](function(){return getChanSpyPromise(_0x5a9523,_0x70b440);})[_0x544b('0x14')](function(_0x2bfa10){if(_0x2bfa10&&_0x2bfa10[_0x544b('0x11')]){return _0x5a9523[_0x544b('0x1b')][_0x544b('0x1c')](_0x2bfa10);}})[_0x544b('0x14')](function(){_0x5d6cd3();})[_0x544b('0x15')](function(_0x227ac6){_0x5d6cd3(_0x227ac6);});},'afterDestroy':function(_0xf49e4b,_0x2bb5f2,_0x3c9801){return _0x5a9523[_0x544b('0x1b')][_0x544b('0x1d')]({'where':{'ChanSpyId':_0xf49e4b['id']}})[_0x544b('0x14')](function(){_0x3c9801();})[_0x544b('0x15')](function(_0x7102d3){_0x3c9801(_0x7102d3);});}}});};