5fb17a1a5cfb777a10753c535b57b2aef8924f67
[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 _0xd0db=['MixMonitor','${UNIQUEID}.%s,a','recordingFormat','auth','password','ChanSpy','name','options','StopMixMonitor','length','concat','internal','findAll','agent','catch','models','define','voice_chanspy','then','VoiceExtension','bulkCreate','destroy','lodash','util','./voiceChanSpy.attributes','context','from-sip','format','%s%s','prefix','system','push','merge','Set','CDR(type)=%s','chanspy','record'];(function(_0x246465,_0x2cf11c){var _0x41e03c=function(_0x1c50b3){while(--_0x1c50b3){_0x246465['push'](_0x246465['shift']());}};_0x41e03c(++_0x2cf11c);}(_0xd0db,0x1d2));var _0xbd0d=function(_0x188bfb,_0x28a7c5){_0x188bfb=_0x188bfb-0x0;var _0x2614fb=_0xd0db[_0x188bfb];return _0x2614fb;};'use strict';var _=require(_0xbd0d('0x0'));var util=require(_0xbd0d('0x1'));var BPromise=require('bluebird');var attributes=require(_0xbd0d('0x2'));var getUserApplications=function(_0x1ce006,_0x3e6b40,_0x4c8dbf){var _0x359577=0x1;var _0x4ddc5a=[];var _0x3c2295={'context':_0x3e6b40[_0xbd0d('0x3')]||_0xbd0d('0x4'),'exten':util[_0xbd0d('0x5')](_0xbd0d('0x6'),_0x1ce006[_0xbd0d('0x7')],_0x4c8dbf),'type':_0xbd0d('0x8'),'isApp':![],'ChanSpyId':_0x1ce006['id'],'UserId':_0x3e6b40['id']};_0x4ddc5a[_0xbd0d('0x9')](_[_0xbd0d('0xa')]({'app':_0xbd0d('0xb'),'appdata':util[_0xbd0d('0x5')](_0xbd0d('0xc'),_0xbd0d('0xd')),'priority':_0x359577++},_0x3c2295));if(_0x1ce006[_0xbd0d('0xe')]){_0x4ddc5a[_0xbd0d('0x9')](_[_0xbd0d('0xa')]({'app':_0xbd0d('0xf'),'appdata':util[_0xbd0d('0x5')](_0xbd0d('0x10'),_0x1ce006[_0xbd0d('0x11')]),'priority':_0x359577++},_0x3c2295));}if(_0x1ce006[_0xbd0d('0x12')]){_0x4ddc5a['push'](_[_0xbd0d('0xa')]({'app':'Authenticate','appdata':_0x1ce006[_0xbd0d('0x13')],'priority':_0x359577++},_0x3c2295));}_0x4ddc5a[_0xbd0d('0x9')](_[_0xbd0d('0xa')]({'app':_0xbd0d('0x14'),'appdata':util[_0xbd0d('0x5')]('SIP/%s,%s',_0x3e6b40[_0xbd0d('0x15')],_0x1ce006[_0xbd0d('0x16')]?_0x1ce006[_0xbd0d('0x16')]['join'](''):''),'priority':_0x359577++},_0x3c2295));if(_0x1ce006[_0xbd0d('0xe')]){_0x4ddc5a[_0xbd0d('0x9')](_[_0xbd0d('0xa')]({'app':_0xbd0d('0x17'),'priority':_0x359577++},_0x3c2295));}return _0x4ddc5a;};var getChanSpyApplications=function(_0x1240e7,_0x4841f9){var _0xfee2b9=[];for(var _0x29d2c9=0x0,_0xce1cc=0x1;_0x29d2c9<_0x4841f9[_0xbd0d('0x18')];_0x29d2c9++,_0xce1cc=0x1){_0xfee2b9=_0xfee2b9[_0xbd0d('0x19')](getUserApplications(_0x1240e7,_0x4841f9[_0x29d2c9],_0x4841f9[_0x29d2c9][_0xbd0d('0x1a')]));if(_0x4841f9[_0x29d2c9][_0xbd0d('0x1a')]!=_0x4841f9[_0x29d2c9][_0xbd0d('0x15')]){_0xfee2b9=_0xfee2b9[_0xbd0d('0x19')](getUserApplications(_0x1240e7,_0x4841f9[_0x29d2c9],_0x4841f9[_0x29d2c9][_0xbd0d('0x15')]));}}return _0xfee2b9;};var getChanSpyPromise=function(_0x90ace2,_0x41c08c){return new BPromise(function(_0x1f6992,_0x36bc17){return _0x90ace2['User'][_0xbd0d('0x1b')]({'attributes':['id',_0xbd0d('0x15'),_0xbd0d('0x1a')],'where':{'role':_0xbd0d('0x1c'),'chanspy':!![]},'raw':!![]})['then'](function(_0x256bd2){if(_0x256bd2){return _0x1f6992(getChanSpyApplications(_0x41c08c,_0x256bd2));}return _0x1f6992([]);})[_0xbd0d('0x1d')](function(_0x5e4b42){_0x36bc17(_0x5e4b42);});});};module['exports']=function(_0x1eafe0,_0x3d9263){var _0x56b6aa=_0x1eafe0[_0xbd0d('0x1e')];return _0x1eafe0[_0xbd0d('0x1f')]('VoiceChanSpy',attributes,{'tableName':_0xbd0d('0x20'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x2a0bac,_0x456b22,_0x22a90f){return getChanSpyPromise(_0x56b6aa,_0x2a0bac)[_0xbd0d('0x21')](function(_0x398654){if(_0x398654&&_0x398654[_0xbd0d('0x18')]){return _0x56b6aa[_0xbd0d('0x22')][_0xbd0d('0x23')](_0x398654);}})[_0xbd0d('0x21')](function(){_0x22a90f();})[_0xbd0d('0x1d')](function(_0x2e474a){_0x22a90f(_0x2e474a);});},'afterUpdate':function(_0x2776c4,_0x380e75,_0x5cf11f){return _0x56b6aa[_0xbd0d('0x22')][_0xbd0d('0x24')]({'where':{'ChanSpyId':_0x2776c4['id']}})[_0xbd0d('0x21')](function(){return getChanSpyPromise(_0x56b6aa,_0x2776c4);})['then'](function(_0x32e55c){if(_0x32e55c&&_0x32e55c[_0xbd0d('0x18')]){return _0x56b6aa[_0xbd0d('0x22')][_0xbd0d('0x23')](_0x32e55c);}})[_0xbd0d('0x21')](function(){_0x5cf11f();})[_0xbd0d('0x1d')](function(_0x535a23){_0x5cf11f(_0x535a23);});},'afterDestroy':function(_0x1dd369,_0x352971,_0x21ef1a){return _0x56b6aa[_0xbd0d('0x22')]['destroy']({'where':{'ChanSpyId':_0x1dd369['id']}})['then'](function(){_0x21ef1a();})[_0xbd0d('0x1d')](function(_0x3bc97e){_0x21ef1a(_0x3bc97e);});}}});};