437e14a24a18fc4b4add4c0951aad8cc260a473a
[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 _0xe4ec=['format','%s%s','system','Set','CDR(type)=%s','chanspy','MixMonitor','${UNIQUEID}.%s,a','recordingFormat','auth','push','merge','Authenticate','ChanSpy','options','join','StopMixMonitor','concat','internal','findAll','name','agent','then','exports','define','VoiceChanSpy','voice_chanspy','length','VoiceExtension','bulkCreate','catch','destroy','util','./voiceChanSpy.attributes','context','from-sip'];(function(_0x152b25,_0x5da2a5){var _0x41b54a=function(_0x515690){while(--_0x515690){_0x152b25['push'](_0x152b25['shift']());}};_0x41b54a(++_0x5da2a5);}(_0xe4ec,0x11c));var _0xce4e=function(_0x5e2cc6,_0x399f1e){_0x5e2cc6=_0x5e2cc6-0x0;var _0x3ae1ed=_0xe4ec[_0x5e2cc6];return _0x3ae1ed;};'use strict';var _=require('lodash');var util=require(_0xce4e('0x0'));var BPromise=require('bluebird');var attributes=require(_0xce4e('0x1'));var getUserApplications=function(_0x14bfb3,_0x3af39a,_0x4d3e1b){var _0x338bed=0x1;var _0xab969b=[];var _0xaf6296={'context':_0x3af39a[_0xce4e('0x2')]||_0xce4e('0x3'),'exten':util[_0xce4e('0x4')](_0xce4e('0x5'),_0x14bfb3['prefix'],_0x4d3e1b),'type':_0xce4e('0x6'),'isApp':![],'ChanSpyId':_0x14bfb3['id'],'UserId':_0x3af39a['id']};_0xab969b['push'](_['merge']({'app':_0xce4e('0x7'),'appdata':util[_0xce4e('0x4')](_0xce4e('0x8'),_0xce4e('0x9')),'priority':_0x338bed++},_0xaf6296));if(_0x14bfb3['record']){_0xab969b['push'](_['merge']({'app':_0xce4e('0xa'),'appdata':util[_0xce4e('0x4')](_0xce4e('0xb'),_0x14bfb3[_0xce4e('0xc')]),'priority':_0x338bed++},_0xaf6296));}if(_0x14bfb3[_0xce4e('0xd')]){_0xab969b[_0xce4e('0xe')](_[_0xce4e('0xf')]({'app':_0xce4e('0x10'),'appdata':_0x14bfb3['password'],'priority':_0x338bed++},_0xaf6296));}_0xab969b[_0xce4e('0xe')](_[_0xce4e('0xf')]({'app':_0xce4e('0x11'),'appdata':util[_0xce4e('0x4')]('SIP/%s,%s',_0x3af39a['name'],_0x14bfb3[_0xce4e('0x12')]?_0x14bfb3[_0xce4e('0x12')][_0xce4e('0x13')](''):''),'priority':_0x338bed++},_0xaf6296));if(_0x14bfb3['record']){_0xab969b['push'](_[_0xce4e('0xf')]({'app':_0xce4e('0x14'),'priority':_0x338bed++},_0xaf6296));}return _0xab969b;};var getChanSpyApplications=function(_0x1eeac2,_0x51dc2f){var _0x259697=[];for(var _0x492e96=0x0,_0x5816fd=0x1;_0x492e96<_0x51dc2f['length'];_0x492e96++,_0x5816fd=0x1){_0x259697=_0x259697[_0xce4e('0x15')](getUserApplications(_0x1eeac2,_0x51dc2f[_0x492e96],_0x51dc2f[_0x492e96][_0xce4e('0x16')]));if(_0x51dc2f[_0x492e96][_0xce4e('0x16')]!=_0x51dc2f[_0x492e96]['name']){_0x259697=_0x259697[_0xce4e('0x15')](getUserApplications(_0x1eeac2,_0x51dc2f[_0x492e96],_0x51dc2f[_0x492e96]['name']));}}return _0x259697;};var getChanSpyPromise=function(_0x47d145,_0x339750){return new BPromise(function(_0x607247,_0xc694a3){return _0x47d145['User'][_0xce4e('0x17')]({'attributes':['id',_0xce4e('0x18'),_0xce4e('0x16')],'where':{'role':_0xce4e('0x19'),'chanspy':!![]},'raw':!![]})[_0xce4e('0x1a')](function(_0x802b9b){if(_0x802b9b){return _0x607247(getChanSpyApplications(_0x339750,_0x802b9b));}return _0x607247([]);})['catch'](function(_0x510da7){_0xc694a3(_0x510da7);});});};module[_0xce4e('0x1b')]=function(_0x29a424,_0xde3fbc){var _0xefe254=_0x29a424['models'];return _0x29a424[_0xce4e('0x1c')](_0xce4e('0x1d'),attributes,{'tableName':_0xce4e('0x1e'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x2c9a6e,_0x5a79dd,_0x3ecb98){return getChanSpyPromise(_0xefe254,_0x2c9a6e)[_0xce4e('0x1a')](function(_0x2c8a57){if(_0x2c8a57&&_0x2c8a57[_0xce4e('0x1f')]){return _0xefe254[_0xce4e('0x20')][_0xce4e('0x21')](_0x2c8a57);}})[_0xce4e('0x1a')](function(){_0x3ecb98();})[_0xce4e('0x22')](function(_0x5a9c42){_0x3ecb98(_0x5a9c42);});},'afterUpdate':function(_0x58c001,_0x1ed458,_0x3219bc){return _0xefe254[_0xce4e('0x20')]['destroy']({'where':{'ChanSpyId':_0x58c001['id']}})['then'](function(){return getChanSpyPromise(_0xefe254,_0x58c001);})[_0xce4e('0x1a')](function(_0x3b3710){if(_0x3b3710&&_0x3b3710[_0xce4e('0x1f')]){return _0xefe254[_0xce4e('0x20')][_0xce4e('0x21')](_0x3b3710);}})[_0xce4e('0x1a')](function(){_0x3219bc();})[_0xce4e('0x22')](function(_0xbcb4d6){_0x3219bc(_0xbcb4d6);});},'afterDestroy':function(_0x25aed7,_0x8f8cca,_0x4f8896){return _0xefe254[_0xce4e('0x20')][_0xce4e('0x23')]({'where':{'ChanSpyId':_0x25aed7['id']}})[_0xce4e('0x1a')](function(){_0x4f8896();})[_0xce4e('0x22')](function(_0x24c281){_0x4f8896(_0x24c281);});}}});};