Built motion from commit 9d0783e6.|2.6.13
[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 _0xb7ca=['concat','internal','User','findAll','catch','exports','models','then','VoiceExtension','bulkCreate','lodash','util','bluebird','./voiceChanSpy.attributes','context','from-sip','format','%s%s','prefix','system','push','Set','CDR(type)=%s','chanspy','record','merge','MixMonitor','${UNIQUEID}.%s,a','Authenticate','password','ChanSpy','name','options','join','StopMixMonitor','length'];(function(_0x5eab15,_0x1027f9){var _0x570ec8=function(_0x3be77a){while(--_0x3be77a){_0x5eab15['push'](_0x5eab15['shift']());}};_0x570ec8(++_0x1027f9);}(_0xb7ca,0x14e));var _0xab7c=function(_0x2d29a9,_0x2a792d){_0x2d29a9=_0x2d29a9-0x0;var _0x96cf34=_0xb7ca[_0x2d29a9];return _0x96cf34;};'use strict';var _=require(_0xab7c('0x0'));var util=require(_0xab7c('0x1'));var BPromise=require(_0xab7c('0x2'));var attributes=require(_0xab7c('0x3'));var getUserApplications=function(_0x348fb2,_0x314a37,_0x521c85){var _0x73bd81=0x1;var _0x29ac0c=[];var _0x20d1ca={'context':_0x314a37[_0xab7c('0x4')]||_0xab7c('0x5'),'exten':util[_0xab7c('0x6')](_0xab7c('0x7'),_0x348fb2[_0xab7c('0x8')],_0x521c85),'type':_0xab7c('0x9'),'isApp':![],'ChanSpyId':_0x348fb2['id'],'UserId':_0x314a37['id']};_0x29ac0c[_0xab7c('0xa')](_['merge']({'app':_0xab7c('0xb'),'appdata':util[_0xab7c('0x6')](_0xab7c('0xc'),_0xab7c('0xd')),'priority':_0x73bd81++},_0x20d1ca));if(_0x348fb2[_0xab7c('0xe')]){_0x29ac0c[_0xab7c('0xa')](_[_0xab7c('0xf')]({'app':_0xab7c('0x10'),'appdata':util[_0xab7c('0x6')](_0xab7c('0x11'),_0x348fb2['recordingFormat']),'priority':_0x73bd81++},_0x20d1ca));}if(_0x348fb2['auth']){_0x29ac0c[_0xab7c('0xa')](_[_0xab7c('0xf')]({'app':_0xab7c('0x12'),'appdata':_0x348fb2[_0xab7c('0x13')],'priority':_0x73bd81++},_0x20d1ca));}_0x29ac0c[_0xab7c('0xa')](_['merge']({'app':_0xab7c('0x14'),'appdata':util[_0xab7c('0x6')]('SIP/%s,%s',_0x314a37[_0xab7c('0x15')],_0x348fb2['options']?_0x348fb2[_0xab7c('0x16')][_0xab7c('0x17')](''):''),'priority':_0x73bd81++},_0x20d1ca));if(_0x348fb2[_0xab7c('0xe')]){_0x29ac0c[_0xab7c('0xa')](_[_0xab7c('0xf')]({'app':_0xab7c('0x18'),'priority':_0x73bd81++},_0x20d1ca));}return _0x29ac0c;};var getChanSpyApplications=function(_0x4a53c7,_0x377d7a){var _0x12b05a=[];for(var _0x517ae7=0x0,_0x386db8=0x1;_0x517ae7<_0x377d7a[_0xab7c('0x19')];_0x517ae7++,_0x386db8=0x1){_0x12b05a=_0x12b05a[_0xab7c('0x1a')](getUserApplications(_0x4a53c7,_0x377d7a[_0x517ae7],_0x377d7a[_0x517ae7]['internal']));if(_0x377d7a[_0x517ae7][_0xab7c('0x1b')]!=_0x377d7a[_0x517ae7][_0xab7c('0x15')]){_0x12b05a=_0x12b05a[_0xab7c('0x1a')](getUserApplications(_0x4a53c7,_0x377d7a[_0x517ae7],_0x377d7a[_0x517ae7][_0xab7c('0x15')]));}}return _0x12b05a;};var getChanSpyPromise=function(_0x53dc56,_0x5489d1){return new BPromise(function(_0x2a083f,_0x2259b0){return _0x53dc56[_0xab7c('0x1c')][_0xab7c('0x1d')]({'attributes':['id',_0xab7c('0x15'),_0xab7c('0x1b')],'where':{'role':'agent','chanspy':!![]},'raw':!![]})['then'](function(_0x514508){if(_0x514508){return _0x2a083f(getChanSpyApplications(_0x5489d1,_0x514508));}return _0x2a083f([]);})[_0xab7c('0x1e')](function(_0x351d45){_0x2259b0(_0x351d45);});});};module[_0xab7c('0x1f')]=function(_0x4c88e6,_0x51090b){var _0x52a761=_0x4c88e6[_0xab7c('0x20')];return _0x4c88e6['define']('VoiceChanSpy',attributes,{'tableName':'voice_chanspy','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x3a23aa,_0x4d4eec,_0x41090b){return getChanSpyPromise(_0x52a761,_0x3a23aa)[_0xab7c('0x21')](function(_0x454e30){if(_0x454e30&&_0x454e30[_0xab7c('0x19')]){return _0x52a761[_0xab7c('0x22')][_0xab7c('0x23')](_0x454e30);}})[_0xab7c('0x21')](function(){_0x41090b();})[_0xab7c('0x1e')](function(_0x6721d7){_0x41090b(_0x6721d7);});},'afterUpdate':function(_0x32cbfa,_0x4474e7,_0x49e384){return _0x52a761[_0xab7c('0x22')]['destroy']({'where':{'ChanSpyId':_0x32cbfa['id']}})['then'](function(){return getChanSpyPromise(_0x52a761,_0x32cbfa);})[_0xab7c('0x21')](function(_0x1543ee){if(_0x1543ee&&_0x1543ee[_0xab7c('0x19')]){return _0x52a761[_0xab7c('0x22')]['bulkCreate'](_0x1543ee);}})[_0xab7c('0x21')](function(){_0x49e384();})[_0xab7c('0x1e')](function(_0x314523){_0x49e384(_0x314523);});},'afterDestroy':function(_0x3281a6,_0x32301d,_0x4afa3d){return _0x52a761[_0xab7c('0x22')]['destroy']({'where':{'ChanSpyId':_0x3281a6['id']}})[_0xab7c('0x21')](function(){_0x4afa3d();})[_0xab7c('0x1e')](function(_0x48fb1f){_0x4afa3d(_0x48fb1f);});}}});};