Built motion from commit f7863d46.|2.5.41
[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 _0x3bc2=['then','models','define','VoiceExtension','bulkCreate','catch','destroy','lodash','bluebird','./voiceChanSpy.attributes','context','from-sip','prefix','system','push','Set','format','CDR(type)=%s','record','merge','${UNIQUEID}.%s,a','auth','Authenticate','name','options','StopMixMonitor','length','concat','internal','findAll','agent'];(function(_0x14f926,_0x3410f3){var _0x53018f=function(_0xaaee5f){while(--_0xaaee5f){_0x14f926['push'](_0x14f926['shift']());}};_0x53018f(++_0x3410f3);}(_0x3bc2,0xc1));var _0x23bc=function(_0x323c3f,_0x3a0bae){_0x323c3f=_0x323c3f-0x0;var _0x2d07ee=_0x3bc2[_0x323c3f];return _0x2d07ee;};'use strict';var _=require(_0x23bc('0x0'));var util=require('util');var BPromise=require(_0x23bc('0x1'));var attributes=require(_0x23bc('0x2'));var getUserApplications=function(_0x4a3f8a,_0x4fc527,_0x106182){var _0xfb2539=0x1;var _0x3aa913=[];var _0x43c653={'context':_0x4fc527[_0x23bc('0x3')]||_0x23bc('0x4'),'exten':util['format']('%s%s',_0x4a3f8a[_0x23bc('0x5')],_0x106182),'type':_0x23bc('0x6'),'isApp':![],'ChanSpyId':_0x4a3f8a['id'],'UserId':_0x4fc527['id']};_0x3aa913[_0x23bc('0x7')](_['merge']({'app':_0x23bc('0x8'),'appdata':util[_0x23bc('0x9')](_0x23bc('0xa'),'chanspy'),'priority':_0xfb2539++},_0x43c653));if(_0x4a3f8a[_0x23bc('0xb')]){_0x3aa913['push'](_[_0x23bc('0xc')]({'app':'MixMonitor','appdata':util[_0x23bc('0x9')](_0x23bc('0xd'),_0x4a3f8a['recordingFormat']),'priority':_0xfb2539++},_0x43c653));}if(_0x4a3f8a[_0x23bc('0xe')]){_0x3aa913[_0x23bc('0x7')](_['merge']({'app':_0x23bc('0xf'),'appdata':_0x4a3f8a['password'],'priority':_0xfb2539++},_0x43c653));}_0x3aa913[_0x23bc('0x7')](_['merge']({'app':'ChanSpy','appdata':util[_0x23bc('0x9')]('SIP/%s,%s',_0x4fc527[_0x23bc('0x10')],_0x4a3f8a[_0x23bc('0x11')]?_0x4a3f8a[_0x23bc('0x11')]['join'](''):''),'priority':_0xfb2539++},_0x43c653));if(_0x4a3f8a[_0x23bc('0xb')]){_0x3aa913[_0x23bc('0x7')](_[_0x23bc('0xc')]({'app':_0x23bc('0x12'),'priority':_0xfb2539++},_0x43c653));}return _0x3aa913;};var getChanSpyApplications=function(_0x27f986,_0x52064f){var _0x12c5fe=[];for(var _0x381e26=0x0,_0x1a90c8=0x1;_0x381e26<_0x52064f[_0x23bc('0x13')];_0x381e26++,_0x1a90c8=0x1){_0x12c5fe=_0x12c5fe[_0x23bc('0x14')](getUserApplications(_0x27f986,_0x52064f[_0x381e26],_0x52064f[_0x381e26][_0x23bc('0x15')]));if(_0x52064f[_0x381e26]['internal']!=_0x52064f[_0x381e26][_0x23bc('0x10')]){_0x12c5fe=_0x12c5fe['concat'](getUserApplications(_0x27f986,_0x52064f[_0x381e26],_0x52064f[_0x381e26][_0x23bc('0x10')]));}}return _0x12c5fe;};var getChanSpyPromise=function(_0x5022e0,_0x223972){return new BPromise(function(_0xc28a84,_0x181e21){return _0x5022e0['User'][_0x23bc('0x16')]({'attributes':['id',_0x23bc('0x10'),_0x23bc('0x15')],'where':{'role':_0x23bc('0x17'),'chanspy':!![]},'raw':!![]})[_0x23bc('0x18')](function(_0x1f45c9){if(_0x1f45c9){return _0xc28a84(getChanSpyApplications(_0x223972,_0x1f45c9));}return _0xc28a84([]);})['catch'](function(_0x5b4d8b){_0x181e21(_0x5b4d8b);});});};module['exports']=function(_0x23f2cf,_0x804ed9){var _0x2597ed=_0x23f2cf[_0x23bc('0x19')];return _0x23f2cf[_0x23bc('0x1a')]('VoiceChanSpy',attributes,{'tableName':'voice_chanspy','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x183fe5,_0x3fa83b,_0x3757d7){return getChanSpyPromise(_0x2597ed,_0x183fe5)['then'](function(_0x42fe6a){if(_0x42fe6a&&_0x42fe6a['length']){return _0x2597ed[_0x23bc('0x1b')][_0x23bc('0x1c')](_0x42fe6a);}})['then'](function(){_0x3757d7();})[_0x23bc('0x1d')](function(_0x10432a){_0x3757d7(_0x10432a);});},'afterUpdate':function(_0x52ba8c,_0x2bf2a7,_0x384abf){return _0x2597ed[_0x23bc('0x1b')][_0x23bc('0x1e')]({'where':{'ChanSpyId':_0x52ba8c['id']}})[_0x23bc('0x18')](function(){return getChanSpyPromise(_0x2597ed,_0x52ba8c);})[_0x23bc('0x18')](function(_0x25df4c){if(_0x25df4c&&_0x25df4c[_0x23bc('0x13')]){return _0x2597ed[_0x23bc('0x1b')][_0x23bc('0x1c')](_0x25df4c);}})['then'](function(){_0x384abf();})[_0x23bc('0x1d')](function(_0x2ca65e){_0x384abf(_0x2ca65e);});},'afterDestroy':function(_0x305199,_0x1aaf53,_0x6d6970){return _0x2597ed['VoiceExtension'][_0x23bc('0x1e')]({'where':{'ChanSpyId':_0x305199['id']}})[_0x23bc('0x18')](function(){_0x6d6970();})[_0x23bc('0x1d')](function(_0x230f95){_0x6d6970(_0x230f95);});}}});};