a33ee631511fbc487698e349bc4d2616ce816e24
[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 _0xe644=['internal','agent','exports','models','define','VoiceChanSpy','voice_chanspy','then','bulkCreate','catch','VoiceExtension','destroy','lodash','util','bluebird','./voiceChanSpy.attributes','context','from-sip','format','prefix','system','Set','chanspy','record','push','merge','MixMonitor','recordingFormat','auth','ChanSpy','SIP/%s,%s','name','options','join','StopMixMonitor','length','concat'];(function(_0x56f46f,_0x59db34){var _0x520c20=function(_0x226523){while(--_0x226523){_0x56f46f['push'](_0x56f46f['shift']());}};_0x520c20(++_0x59db34);}(_0xe644,0x159));var _0x4e64=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xe644[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x4e64('0x0'));var util=require(_0x4e64('0x1'));var BPromise=require(_0x4e64('0x2'));var attributes=require(_0x4e64('0x3'));var getUserApplications=function(_0x18e17a,_0x1c5c75,_0x5e2d61){var _0x29c930=0x1;var _0x7b06ee=[];var _0x2f5ef0={'context':_0x1c5c75[_0x4e64('0x4')]||_0x4e64('0x5'),'exten':util[_0x4e64('0x6')]('%s%s',_0x18e17a[_0x4e64('0x7')],_0x5e2d61),'type':_0x4e64('0x8'),'isApp':![],'ChanSpyId':_0x18e17a['id'],'UserId':_0x1c5c75['id']};_0x7b06ee['push'](_['merge']({'app':_0x4e64('0x9'),'appdata':util['format']('CDR(type)=%s',_0x4e64('0xa')),'priority':_0x29c930++},_0x2f5ef0));if(_0x18e17a[_0x4e64('0xb')]){_0x7b06ee[_0x4e64('0xc')](_[_0x4e64('0xd')]({'app':_0x4e64('0xe'),'appdata':util[_0x4e64('0x6')]('${UNIQUEID}.%s,a',_0x18e17a[_0x4e64('0xf')]),'priority':_0x29c930++},_0x2f5ef0));}if(_0x18e17a[_0x4e64('0x10')]){_0x7b06ee['push'](_[_0x4e64('0xd')]({'app':'Authenticate','appdata':_0x18e17a['password'],'priority':_0x29c930++},_0x2f5ef0));}_0x7b06ee[_0x4e64('0xc')](_['merge']({'app':_0x4e64('0x11'),'appdata':util[_0x4e64('0x6')](_0x4e64('0x12'),_0x1c5c75[_0x4e64('0x13')],_0x18e17a[_0x4e64('0x14')]?_0x18e17a[_0x4e64('0x14')][_0x4e64('0x15')](''):''),'priority':_0x29c930++},_0x2f5ef0));if(_0x18e17a['record']){_0x7b06ee[_0x4e64('0xc')](_[_0x4e64('0xd')]({'app':_0x4e64('0x16'),'priority':_0x29c930++},_0x2f5ef0));}return _0x7b06ee;};var getChanSpyApplications=function(_0x5b35b0,_0x3b885a){var _0x3677f9=[];for(var _0x452f34=0x0,_0xb6bed5=0x1;_0x452f34<_0x3b885a[_0x4e64('0x17')];_0x452f34++,_0xb6bed5=0x1){_0x3677f9=_0x3677f9[_0x4e64('0x18')](getUserApplications(_0x5b35b0,_0x3b885a[_0x452f34],_0x3b885a[_0x452f34][_0x4e64('0x19')]));if(_0x3b885a[_0x452f34][_0x4e64('0x19')]!=_0x3b885a[_0x452f34][_0x4e64('0x13')]){_0x3677f9=_0x3677f9[_0x4e64('0x18')](getUserApplications(_0x5b35b0,_0x3b885a[_0x452f34],_0x3b885a[_0x452f34]['name']));}}return _0x3677f9;};var getChanSpyPromise=function(_0x15a044,_0x112797){return new BPromise(function(_0x5618bb,_0x3d378c){return _0x15a044['User']['findAll']({'attributes':['id',_0x4e64('0x13'),_0x4e64('0x19')],'where':{'role':_0x4e64('0x1a'),'chanspy':!![]},'raw':!![]})['then'](function(_0x4a5c6d){if(_0x4a5c6d){return _0x5618bb(getChanSpyApplications(_0x112797,_0x4a5c6d));}return _0x5618bb([]);})['catch'](function(_0x30e356){_0x3d378c(_0x30e356);});});};module[_0x4e64('0x1b')]=function(_0x2df7a0,_0x4edbf9){var _0xb956ca=_0x2df7a0[_0x4e64('0x1c')];return _0x2df7a0[_0x4e64('0x1d')](_0x4e64('0x1e'),attributes,{'tableName':_0x4e64('0x1f'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x2747cb,_0x35daf7,_0x5abddb){return getChanSpyPromise(_0xb956ca,_0x2747cb)[_0x4e64('0x20')](function(_0x29b4f8){if(_0x29b4f8&&_0x29b4f8[_0x4e64('0x17')]){return _0xb956ca['VoiceExtension'][_0x4e64('0x21')](_0x29b4f8);}})[_0x4e64('0x20')](function(){_0x5abddb();})[_0x4e64('0x22')](function(_0x457023){_0x5abddb(_0x457023);});},'afterUpdate':function(_0x45b458,_0x5f0d42,_0x3185ba){return _0xb956ca[_0x4e64('0x23')][_0x4e64('0x24')]({'where':{'ChanSpyId':_0x45b458['id']}})[_0x4e64('0x20')](function(){return getChanSpyPromise(_0xb956ca,_0x45b458);})[_0x4e64('0x20')](function(_0x1057d0){if(_0x1057d0&&_0x1057d0[_0x4e64('0x17')]){return _0xb956ca[_0x4e64('0x23')]['bulkCreate'](_0x1057d0);}})[_0x4e64('0x20')](function(){_0x3185ba();})[_0x4e64('0x22')](function(_0x45ef44){_0x3185ba(_0x45ef44);});},'afterDestroy':function(_0x330277,_0x3f00d5,_0x3b1f16){return _0xb956ca[_0x4e64('0x23')]['destroy']({'where':{'ChanSpyId':_0x330277['id']}})[_0x4e64('0x20')](function(){_0x3b1f16();})[_0x4e64('0x22')](function(_0x3cfd17){_0x3b1f16(_0x3cfd17);});}}});};