9d50eb5872eb9ca6d8c2777ecd56e52b5dcee2a6
[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 _0x81a5=['record','length','concat','internal','User','findAll','then','catch','models','VoiceChanSpy','voice_chanspy','destroy','VoiceExtension','bulkCreate','lodash','util','bluebird','./voiceChanSpy.attributes','format','prefix','system','push','merge','Set','CDR(type)=%s','chanspy','MixMonitor','${UNIQUEID}.%s,a','recordingFormat','ChanSpy','SIP/%s,%s','name','options','join'];(function(_0x399978,_0x3ef7f3){var _0x5364ff=function(_0x571e75){while(--_0x571e75){_0x399978['push'](_0x399978['shift']());}};_0x5364ff(++_0x3ef7f3);}(_0x81a5,0x1c8));var _0x581a=function(_0x351a4c,_0x5f2484){_0x351a4c=_0x351a4c-0x0;var _0x6a830c=_0x81a5[_0x351a4c];return _0x6a830c;};'use strict';var _=require(_0x581a('0x0'));var util=require(_0x581a('0x1'));var BPromise=require(_0x581a('0x2'));var attributes=require(_0x581a('0x3'));var getUserApplications=function(_0x24ad81,_0x362572,_0x4d0685){var _0x370c40=0x1;var _0x5125ac=[];var _0x4f5f9a={'context':_0x362572['context']||'from-sip','exten':util[_0x581a('0x4')]('%s%s',_0x24ad81[_0x581a('0x5')],_0x4d0685),'type':_0x581a('0x6'),'isApp':![],'ChanSpyId':_0x24ad81['id'],'UserId':_0x362572['id']};_0x5125ac[_0x581a('0x7')](_[_0x581a('0x8')]({'app':_0x581a('0x9'),'appdata':util[_0x581a('0x4')](_0x581a('0xa'),_0x581a('0xb')),'priority':_0x370c40++},_0x4f5f9a));if(_0x24ad81['record']){_0x5125ac[_0x581a('0x7')](_['merge']({'app':_0x581a('0xc'),'appdata':util[_0x581a('0x4')](_0x581a('0xd'),_0x24ad81[_0x581a('0xe')]),'priority':_0x370c40++},_0x4f5f9a));}if(_0x24ad81['auth']){_0x5125ac[_0x581a('0x7')](_['merge']({'app':'Authenticate','appdata':_0x24ad81['password'],'priority':_0x370c40++},_0x4f5f9a));}_0x5125ac['push'](_[_0x581a('0x8')]({'app':_0x581a('0xf'),'appdata':util['format'](_0x581a('0x10'),_0x362572[_0x581a('0x11')],_0x24ad81[_0x581a('0x12')]?_0x24ad81[_0x581a('0x12')][_0x581a('0x13')](''):''),'priority':_0x370c40++},_0x4f5f9a));if(_0x24ad81[_0x581a('0x14')]){_0x5125ac[_0x581a('0x7')](_[_0x581a('0x8')]({'app':'StopMixMonitor','priority':_0x370c40++},_0x4f5f9a));}return _0x5125ac;};var getChanSpyApplications=function(_0x11f50b,_0x4691aa){var _0x5d4743=[];for(var _0x12cab1=0x0,_0x21361a=0x1;_0x12cab1<_0x4691aa[_0x581a('0x15')];_0x12cab1++,_0x21361a=0x1){_0x5d4743=_0x5d4743[_0x581a('0x16')](getUserApplications(_0x11f50b,_0x4691aa[_0x12cab1],_0x4691aa[_0x12cab1]['internal']));if(_0x4691aa[_0x12cab1][_0x581a('0x17')]!=_0x4691aa[_0x12cab1][_0x581a('0x11')]){_0x5d4743=_0x5d4743['concat'](getUserApplications(_0x11f50b,_0x4691aa[_0x12cab1],_0x4691aa[_0x12cab1]['name']));}}return _0x5d4743;};var getChanSpyPromise=function(_0x1b7c48,_0x24b475){return new BPromise(function(_0x2cdcc6,_0x28036f){return _0x1b7c48[_0x581a('0x18')][_0x581a('0x19')]({'attributes':['id',_0x581a('0x11'),_0x581a('0x17')],'where':{'role':'agent','chanspy':!![]},'raw':!![]})[_0x581a('0x1a')](function(_0xdd92d5){if(_0xdd92d5){return _0x2cdcc6(getChanSpyApplications(_0x24b475,_0xdd92d5));}return _0x2cdcc6([]);})[_0x581a('0x1b')](function(_0x4f619d){_0x28036f(_0x4f619d);});});};module['exports']=function(_0x1c5f4f,_0x232a9a){var _0x41bf4d=_0x1c5f4f[_0x581a('0x1c')];return _0x1c5f4f['define'](_0x581a('0x1d'),attributes,{'tableName':_0x581a('0x1e'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x4f265d,_0xf6a797,_0x3ce207){return getChanSpyPromise(_0x41bf4d,_0x4f265d)[_0x581a('0x1a')](function(_0x9f9947){if(_0x9f9947&&_0x9f9947[_0x581a('0x15')]){return _0x41bf4d['VoiceExtension']['bulkCreate'](_0x9f9947);}})[_0x581a('0x1a')](function(){_0x3ce207();})['catch'](function(_0x49a681){_0x3ce207(_0x49a681);});},'afterUpdate':function(_0x71e896,_0x2a71d9,_0x1edf48){return _0x41bf4d['VoiceExtension'][_0x581a('0x1f')]({'where':{'ChanSpyId':_0x71e896['id']}})[_0x581a('0x1a')](function(){return getChanSpyPromise(_0x41bf4d,_0x71e896);})[_0x581a('0x1a')](function(_0x2136fb){if(_0x2136fb&&_0x2136fb['length']){return _0x41bf4d[_0x581a('0x20')][_0x581a('0x21')](_0x2136fb);}})[_0x581a('0x1a')](function(){_0x1edf48();})[_0x581a('0x1b')](function(_0x3396ae){_0x1edf48(_0x3396ae);});},'afterDestroy':function(_0x25ee76,_0x1ac86e,_0x38e3c7){return _0x41bf4d[_0x581a('0x20')][_0x581a('0x1f')]({'where':{'ChanSpyId':_0x25ee76['id']}})['then'](function(){_0x38e3c7();})[_0x581a('0x1b')](function(_0x3b1a48){_0x38e3c7(_0x3b1a48);});}}});};