Built motion from commit (unavailable).|2.5.14
[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 _0xc6d8=['voice_chanspy','VoiceExtension','bulkCreate','then','catch','lodash','bluebird','context','from-sip','format','%s%s','prefix','system','merge','Set','chanspy','record','push','MixMonitor','${UNIQUEID}.%s,a','recordingFormat','password','ChanSpy','SIP/%s,%s','name','options','join','StopMixMonitor','length','internal','concat','User','agent','exports','VoiceChanSpy'];(function(_0x33fe81,_0x27b0e2){var _0x68a576=function(_0x92c854){while(--_0x92c854){_0x33fe81['push'](_0x33fe81['shift']());}};_0x68a576(++_0x27b0e2);}(_0xc6d8,0xd7));var _0x8c6d=function(_0x1529a3,_0x529f63){_0x1529a3=_0x1529a3-0x0;var _0x1a0d4b=_0xc6d8[_0x1529a3];return _0x1a0d4b;};'use strict';var _=require(_0x8c6d('0x0'));var util=require('util');var BPromise=require(_0x8c6d('0x1'));var attributes=require('./voiceChanSpy.attributes');var getUserApplications=function(_0x3b88d1,_0x5974d3,_0x292852){var _0x4fa8a4=0x1;var _0x5b6b04=[];var _0x352b8c={'context':_0x5974d3[_0x8c6d('0x2')]||_0x8c6d('0x3'),'exten':util[_0x8c6d('0x4')](_0x8c6d('0x5'),_0x3b88d1[_0x8c6d('0x6')],_0x292852),'type':_0x8c6d('0x7'),'isApp':![],'ChanSpyId':_0x3b88d1['id'],'UserId':_0x5974d3['id']};_0x5b6b04['push'](_[_0x8c6d('0x8')]({'app':_0x8c6d('0x9'),'appdata':util[_0x8c6d('0x4')]('CDR(type)=%s',_0x8c6d('0xa')),'priority':_0x4fa8a4++},_0x352b8c));if(_0x3b88d1[_0x8c6d('0xb')]){_0x5b6b04[_0x8c6d('0xc')](_[_0x8c6d('0x8')]({'app':_0x8c6d('0xd'),'appdata':util[_0x8c6d('0x4')](_0x8c6d('0xe'),_0x3b88d1[_0x8c6d('0xf')]),'priority':_0x4fa8a4++},_0x352b8c));}if(_0x3b88d1['auth']){_0x5b6b04[_0x8c6d('0xc')](_['merge']({'app':'Authenticate','appdata':_0x3b88d1[_0x8c6d('0x10')],'priority':_0x4fa8a4++},_0x352b8c));}_0x5b6b04[_0x8c6d('0xc')](_[_0x8c6d('0x8')]({'app':_0x8c6d('0x11'),'appdata':util[_0x8c6d('0x4')](_0x8c6d('0x12'),_0x5974d3[_0x8c6d('0x13')],_0x3b88d1[_0x8c6d('0x14')]?_0x3b88d1[_0x8c6d('0x14')][_0x8c6d('0x15')](''):''),'priority':_0x4fa8a4++},_0x352b8c));if(_0x3b88d1['record']){_0x5b6b04[_0x8c6d('0xc')](_['merge']({'app':_0x8c6d('0x16'),'priority':_0x4fa8a4++},_0x352b8c));}return _0x5b6b04;};var getChanSpyApplications=function(_0x4dd4b6,_0x150a16){var _0x3d95a6=[];for(var _0x52ed7b=0x0,_0x7f894c=0x1;_0x52ed7b<_0x150a16[_0x8c6d('0x17')];_0x52ed7b++,_0x7f894c=0x1){_0x3d95a6=_0x3d95a6['concat'](getUserApplications(_0x4dd4b6,_0x150a16[_0x52ed7b],_0x150a16[_0x52ed7b][_0x8c6d('0x18')]));if(_0x150a16[_0x52ed7b]['internal']!=_0x150a16[_0x52ed7b]['name']){_0x3d95a6=_0x3d95a6[_0x8c6d('0x19')](getUserApplications(_0x4dd4b6,_0x150a16[_0x52ed7b],_0x150a16[_0x52ed7b]['name']));}}return _0x3d95a6;};var getChanSpyPromise=function(_0x1d6d58,_0x174a4f){return new BPromise(function(_0x1d0f0a,_0xe58632){return _0x1d6d58[_0x8c6d('0x1a')]['findAll']({'attributes':['id','name','internal'],'where':{'role':_0x8c6d('0x1b'),'chanspy':!![]},'raw':!![]})['then'](function(_0xc3288){if(_0xc3288){return _0x1d0f0a(getChanSpyApplications(_0x174a4f,_0xc3288));}return _0x1d0f0a([]);})['catch'](function(_0x4c378b){_0xe58632(_0x4c378b);});});};module[_0x8c6d('0x1c')]=function(_0x8cebeb,_0x54dcc7){var _0x512a72=_0x8cebeb['models'];return _0x8cebeb['define'](_0x8c6d('0x1d'),attributes,{'tableName':_0x8c6d('0x1e'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x292ae4,_0x48f64a,_0x41c904){return getChanSpyPromise(_0x512a72,_0x292ae4)['then'](function(_0x15a9c4){if(_0x15a9c4&&_0x15a9c4['length']){return _0x512a72[_0x8c6d('0x1f')][_0x8c6d('0x20')](_0x15a9c4);}})[_0x8c6d('0x21')](function(){_0x41c904();})[_0x8c6d('0x22')](function(_0x1e6755){_0x41c904(_0x1e6755);});},'afterUpdate':function(_0x3e3cd3,_0x9c269d,_0x41957d){return _0x512a72[_0x8c6d('0x1f')]['destroy']({'where':{'ChanSpyId':_0x3e3cd3['id']}})['then'](function(){return getChanSpyPromise(_0x512a72,_0x3e3cd3);})[_0x8c6d('0x21')](function(_0x93a094){if(_0x93a094&&_0x93a094[_0x8c6d('0x17')]){return _0x512a72[_0x8c6d('0x1f')][_0x8c6d('0x20')](_0x93a094);}})[_0x8c6d('0x21')](function(){_0x41957d();})[_0x8c6d('0x22')](function(_0x2d028f){_0x41957d(_0x2d028f);});},'afterDestroy':function(_0x407234,_0x43d70c,_0x3375dd){return _0x512a72[_0x8c6d('0x1f')]['destroy']({'where':{'ChanSpyId':_0x407234['id']}})[_0x8c6d('0x21')](function(){_0x3375dd();})[_0x8c6d('0x22')](function(_0x373839){_0x3375dd(_0x373839);});}}});};