64173795e74ef3a2c9f42a7d4f3ce70d5a02addf
[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 _0x3e9b=['CDR(type)=%s','chanspy','record','MixMonitor','${UNIQUEID}.%s,a','recordingFormat','Authenticate','password','ChanSpy','SIP/%s,%s','name','options','join','length','concat','internal','agent','then','catch','exports','models','define','VoiceChanSpy','bulkCreate','destroy','VoiceExtension','lodash','context','from-sip','format','%s%s','system','push','merge','Set'];(function(_0x276592,_0x154e81){var _0x9137cc=function(_0x552792){while(--_0x552792){_0x276592['push'](_0x276592['shift']());}};_0x9137cc(++_0x154e81);}(_0x3e9b,0x83));var _0xb3e9=function(_0x162372,_0x6cc109){_0x162372=_0x162372-0x0;var _0x3f4437=_0x3e9b[_0x162372];return _0x3f4437;};'use strict';var _=require(_0xb3e9('0x0'));var util=require('util');var BPromise=require('bluebird');var attributes=require('./voiceChanSpy.attributes');var getUserApplications=function(_0x41054e,_0x5a08f4,_0x5bd771){var _0x54479a=0x1;var _0xf76205=[];var _0x204695={'context':_0x5a08f4[_0xb3e9('0x1')]||_0xb3e9('0x2'),'exten':util[_0xb3e9('0x3')](_0xb3e9('0x4'),_0x41054e['prefix'],_0x5bd771),'type':_0xb3e9('0x5'),'isApp':![],'ChanSpyId':_0x41054e['id'],'UserId':_0x5a08f4['id']};_0xf76205[_0xb3e9('0x6')](_[_0xb3e9('0x7')]({'app':_0xb3e9('0x8'),'appdata':util[_0xb3e9('0x3')](_0xb3e9('0x9'),_0xb3e9('0xa')),'priority':_0x54479a++},_0x204695));if(_0x41054e[_0xb3e9('0xb')]){_0xf76205[_0xb3e9('0x6')](_[_0xb3e9('0x7')]({'app':_0xb3e9('0xc'),'appdata':util['format'](_0xb3e9('0xd'),_0x41054e[_0xb3e9('0xe')]),'priority':_0x54479a++},_0x204695));}if(_0x41054e['auth']){_0xf76205[_0xb3e9('0x6')](_[_0xb3e9('0x7')]({'app':_0xb3e9('0xf'),'appdata':_0x41054e[_0xb3e9('0x10')],'priority':_0x54479a++},_0x204695));}_0xf76205[_0xb3e9('0x6')](_[_0xb3e9('0x7')]({'app':_0xb3e9('0x11'),'appdata':util[_0xb3e9('0x3')](_0xb3e9('0x12'),_0x5a08f4[_0xb3e9('0x13')],_0x41054e[_0xb3e9('0x14')]?_0x41054e[_0xb3e9('0x14')][_0xb3e9('0x15')](''):''),'priority':_0x54479a++},_0x204695));if(_0x41054e[_0xb3e9('0xb')]){_0xf76205[_0xb3e9('0x6')](_[_0xb3e9('0x7')]({'app':'StopMixMonitor','priority':_0x54479a++},_0x204695));}return _0xf76205;};var getChanSpyApplications=function(_0x5ba0b0,_0x2f2ebc){var _0x29460e=[];for(var _0x335df1=0x0,_0x2ae391=0x1;_0x335df1<_0x2f2ebc[_0xb3e9('0x16')];_0x335df1++,_0x2ae391=0x1){_0x29460e=_0x29460e[_0xb3e9('0x17')](getUserApplications(_0x5ba0b0,_0x2f2ebc[_0x335df1],_0x2f2ebc[_0x335df1][_0xb3e9('0x18')]));if(_0x2f2ebc[_0x335df1][_0xb3e9('0x18')]!=_0x2f2ebc[_0x335df1][_0xb3e9('0x13')]){_0x29460e=_0x29460e['concat'](getUserApplications(_0x5ba0b0,_0x2f2ebc[_0x335df1],_0x2f2ebc[_0x335df1][_0xb3e9('0x13')]));}}return _0x29460e;};var getChanSpyPromise=function(_0x386c52,_0x42ea4e){return new BPromise(function(_0x380304,_0x521c9c){return _0x386c52['User']['findAll']({'attributes':['id',_0xb3e9('0x13'),_0xb3e9('0x18')],'where':{'role':_0xb3e9('0x19'),'chanspy':!![]},'raw':!![]})[_0xb3e9('0x1a')](function(_0x452f58){if(_0x452f58){return _0x380304(getChanSpyApplications(_0x42ea4e,_0x452f58));}return _0x380304([]);})[_0xb3e9('0x1b')](function(_0x27b854){_0x521c9c(_0x27b854);});});};module[_0xb3e9('0x1c')]=function(_0x44b6c0,_0x1a6c86){var _0xe71c9=_0x44b6c0[_0xb3e9('0x1d')];return _0x44b6c0[_0xb3e9('0x1e')](_0xb3e9('0x1f'),attributes,{'tableName':'voice_chanspy','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x107796,_0x565d3f,_0x236556){return getChanSpyPromise(_0xe71c9,_0x107796)[_0xb3e9('0x1a')](function(_0x265ce5){if(_0x265ce5&&_0x265ce5[_0xb3e9('0x16')]){return _0xe71c9['VoiceExtension'][_0xb3e9('0x20')](_0x265ce5);}})[_0xb3e9('0x1a')](function(){_0x236556();})[_0xb3e9('0x1b')](function(_0x550fbd){_0x236556(_0x550fbd);});},'afterUpdate':function(_0x170bfa,_0x36ca67,_0x17490c){return _0xe71c9['VoiceExtension'][_0xb3e9('0x21')]({'where':{'ChanSpyId':_0x170bfa['id']}})[_0xb3e9('0x1a')](function(){return getChanSpyPromise(_0xe71c9,_0x170bfa);})['then'](function(_0x30a930){if(_0x30a930&&_0x30a930[_0xb3e9('0x16')]){return _0xe71c9[_0xb3e9('0x22')][_0xb3e9('0x20')](_0x30a930);}})['then'](function(){_0x17490c();})[_0xb3e9('0x1b')](function(_0x1917cc){_0x17490c(_0x1917cc);});},'afterDestroy':function(_0x51f140,_0x194ea9,_0x1009da){return _0xe71c9[_0xb3e9('0x22')][_0xb3e9('0x21')]({'where':{'ChanSpyId':_0x51f140['id']}})[_0xb3e9('0x1a')](function(){_0x1009da();})[_0xb3e9('0x1b')](function(_0x376260){_0x1009da(_0x376260);});}}});};