Built motion from commit e6806ed6.|2.6.0
[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 _0x5cd0=['merge','Set','record','push','${UNIQUEID}.%s,a','auth','password','ChanSpy','SIP/%s,%s','options','join','length','internal','name','concat','agent','catch','exports','models','define','VoiceChanSpy','voice_chanspy','then','VoiceExtension','bulkCreate','destroy','lodash','util','bluebird','context','format','prefix','system'];(function(_0x191b40,_0xe86fd6){var _0xe3fe81=function(_0x5d7bea){while(--_0x5d7bea){_0x191b40['push'](_0x191b40['shift']());}};_0xe3fe81(++_0xe86fd6);}(_0x5cd0,0x9e));var _0x05cd=function(_0x3ab51d,_0x2fa01d){_0x3ab51d=_0x3ab51d-0x0;var _0x29a04e=_0x5cd0[_0x3ab51d];return _0x29a04e;};'use strict';var _=require(_0x05cd('0x0'));var util=require(_0x05cd('0x1'));var BPromise=require(_0x05cd('0x2'));var attributes=require('./voiceChanSpy.attributes');var getUserApplications=function(_0x36710c,_0x52e89b,_0x3f25b7){var _0x350c5a=0x1;var _0x3c7bcb=[];var _0x5e4021={'context':_0x52e89b[_0x05cd('0x3')]||'from-sip','exten':util[_0x05cd('0x4')]('%s%s',_0x36710c[_0x05cd('0x5')],_0x3f25b7),'type':_0x05cd('0x6'),'isApp':![],'ChanSpyId':_0x36710c['id'],'UserId':_0x52e89b['id']};_0x3c7bcb['push'](_[_0x05cd('0x7')]({'app':_0x05cd('0x8'),'appdata':util[_0x05cd('0x4')]('CDR(type)=%s','chanspy'),'priority':_0x350c5a++},_0x5e4021));if(_0x36710c[_0x05cd('0x9')]){_0x3c7bcb[_0x05cd('0xa')](_[_0x05cd('0x7')]({'app':'MixMonitor','appdata':util[_0x05cd('0x4')](_0x05cd('0xb'),_0x36710c['recordingFormat']),'priority':_0x350c5a++},_0x5e4021));}if(_0x36710c[_0x05cd('0xc')]){_0x3c7bcb['push'](_['merge']({'app':'Authenticate','appdata':_0x36710c[_0x05cd('0xd')],'priority':_0x350c5a++},_0x5e4021));}_0x3c7bcb[_0x05cd('0xa')](_['merge']({'app':_0x05cd('0xe'),'appdata':util['format'](_0x05cd('0xf'),_0x52e89b['name'],_0x36710c[_0x05cd('0x10')]?_0x36710c[_0x05cd('0x10')][_0x05cd('0x11')](''):''),'priority':_0x350c5a++},_0x5e4021));if(_0x36710c[_0x05cd('0x9')]){_0x3c7bcb[_0x05cd('0xa')](_[_0x05cd('0x7')]({'app':'StopMixMonitor','priority':_0x350c5a++},_0x5e4021));}return _0x3c7bcb;};var getChanSpyApplications=function(_0x2a1b70,_0x13a27d){var _0x466c16=[];for(var _0x4e969c=0x0,_0x2dcb67=0x1;_0x4e969c<_0x13a27d[_0x05cd('0x12')];_0x4e969c++,_0x2dcb67=0x1){_0x466c16=_0x466c16['concat'](getUserApplications(_0x2a1b70,_0x13a27d[_0x4e969c],_0x13a27d[_0x4e969c][_0x05cd('0x13')]));if(_0x13a27d[_0x4e969c][_0x05cd('0x13')]!=_0x13a27d[_0x4e969c][_0x05cd('0x14')]){_0x466c16=_0x466c16[_0x05cd('0x15')](getUserApplications(_0x2a1b70,_0x13a27d[_0x4e969c],_0x13a27d[_0x4e969c][_0x05cd('0x14')]));}}return _0x466c16;};var getChanSpyPromise=function(_0x56d5e1,_0x262d87){return new BPromise(function(_0x6820ce,_0xb3827a){return _0x56d5e1['User']['findAll']({'attributes':['id',_0x05cd('0x14'),_0x05cd('0x13')],'where':{'role':_0x05cd('0x16'),'chanspy':!![]},'raw':!![]})['then'](function(_0x116952){if(_0x116952){return _0x6820ce(getChanSpyApplications(_0x262d87,_0x116952));}return _0x6820ce([]);})[_0x05cd('0x17')](function(_0x3874c1){_0xb3827a(_0x3874c1);});});};module[_0x05cd('0x18')]=function(_0x34efe3,_0x207fa1){var _0x48daeb=_0x34efe3[_0x05cd('0x19')];return _0x34efe3[_0x05cd('0x1a')](_0x05cd('0x1b'),attributes,{'tableName':_0x05cd('0x1c'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x25493a,_0x5e7722,_0x2cbedc){return getChanSpyPromise(_0x48daeb,_0x25493a)[_0x05cd('0x1d')](function(_0x4078cc){if(_0x4078cc&&_0x4078cc['length']){return _0x48daeb[_0x05cd('0x1e')][_0x05cd('0x1f')](_0x4078cc);}})[_0x05cd('0x1d')](function(){_0x2cbedc();})[_0x05cd('0x17')](function(_0x125230){_0x2cbedc(_0x125230);});},'afterUpdate':function(_0x194927,_0x27667e,_0x4caee5){return _0x48daeb[_0x05cd('0x1e')][_0x05cd('0x20')]({'where':{'ChanSpyId':_0x194927['id']}})[_0x05cd('0x1d')](function(){return getChanSpyPromise(_0x48daeb,_0x194927);})[_0x05cd('0x1d')](function(_0x21ddae){if(_0x21ddae&&_0x21ddae[_0x05cd('0x12')]){return _0x48daeb[_0x05cd('0x1e')]['bulkCreate'](_0x21ddae);}})[_0x05cd('0x1d')](function(){_0x4caee5();})[_0x05cd('0x17')](function(_0x16cea8){_0x4caee5(_0x16cea8);});},'afterDestroy':function(_0x5a145b,_0x55e259,_0x5c60e8){return _0x48daeb['VoiceExtension'][_0x05cd('0x20')]({'where':{'ChanSpyId':_0x5a145b['id']}})[_0x05cd('0x1d')](function(){_0x5c60e8();})['catch'](function(_0x408339){_0x5c60e8(_0x408339);});}}});};