3268a79ba5f3c83d147c3f77cc189c8d94930743
[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 _0x83ee=['VoiceExtension','destroy','util','bluebird','./voiceChanSpy.attributes','context','from-sip','%s%s','prefix','system','push','Set','format','CDR(type)=%s','chanspy','merge','${UNIQUEID}.%s,a','recordingFormat','auth','Authenticate','password','ChanSpy','name','options','join','StopMixMonitor','length','concat','User','findAll','agent','catch','define','voice_chanspy','bulkCreate','then'];(function(_0x16aae9,_0x11031a){var _0x412d60=function(_0x78681){while(--_0x78681){_0x16aae9['push'](_0x16aae9['shift']());}};_0x412d60(++_0x11031a);}(_0x83ee,0xb6));var _0xe83e=function(_0xfcbcb8,_0x35bf6b){_0xfcbcb8=_0xfcbcb8-0x0;var _0x1b1f97=_0x83ee[_0xfcbcb8];return _0x1b1f97;};'use strict';var _=require('lodash');var util=require(_0xe83e('0x0'));var BPromise=require(_0xe83e('0x1'));var attributes=require(_0xe83e('0x2'));var getUserApplications=function(_0x1f83b0,_0xdb5b27,_0x2005e7){var _0x39d91a=0x1;var _0x451bb1=[];var _0x337d8e={'context':_0xdb5b27[_0xe83e('0x3')]||_0xe83e('0x4'),'exten':util['format'](_0xe83e('0x5'),_0x1f83b0[_0xe83e('0x6')],_0x2005e7),'type':_0xe83e('0x7'),'isApp':![],'ChanSpyId':_0x1f83b0['id'],'UserId':_0xdb5b27['id']};_0x451bb1[_0xe83e('0x8')](_['merge']({'app':_0xe83e('0x9'),'appdata':util[_0xe83e('0xa')](_0xe83e('0xb'),_0xe83e('0xc')),'priority':_0x39d91a++},_0x337d8e));if(_0x1f83b0['record']){_0x451bb1[_0xe83e('0x8')](_[_0xe83e('0xd')]({'app':'MixMonitor','appdata':util[_0xe83e('0xa')](_0xe83e('0xe'),_0x1f83b0[_0xe83e('0xf')]),'priority':_0x39d91a++},_0x337d8e));}if(_0x1f83b0[_0xe83e('0x10')]){_0x451bb1[_0xe83e('0x8')](_[_0xe83e('0xd')]({'app':_0xe83e('0x11'),'appdata':_0x1f83b0[_0xe83e('0x12')],'priority':_0x39d91a++},_0x337d8e));}_0x451bb1[_0xe83e('0x8')](_[_0xe83e('0xd')]({'app':_0xe83e('0x13'),'appdata':util[_0xe83e('0xa')]('SIP/%s,%s',_0xdb5b27[_0xe83e('0x14')],_0x1f83b0[_0xe83e('0x15')]?_0x1f83b0['options'][_0xe83e('0x16')](''):''),'priority':_0x39d91a++},_0x337d8e));if(_0x1f83b0['record']){_0x451bb1[_0xe83e('0x8')](_['merge']({'app':_0xe83e('0x17'),'priority':_0x39d91a++},_0x337d8e));}return _0x451bb1;};var getChanSpyApplications=function(_0x53814d,_0x374acf){var _0xa7899a=[];for(var _0x3561f6=0x0,_0x1b5cc0=0x1;_0x3561f6<_0x374acf[_0xe83e('0x18')];_0x3561f6++,_0x1b5cc0=0x1){_0xa7899a=_0xa7899a['concat'](getUserApplications(_0x53814d,_0x374acf[_0x3561f6],_0x374acf[_0x3561f6]['internal']));if(_0x374acf[_0x3561f6]['internal']!=_0x374acf[_0x3561f6]['name']){_0xa7899a=_0xa7899a[_0xe83e('0x19')](getUserApplications(_0x53814d,_0x374acf[_0x3561f6],_0x374acf[_0x3561f6]['name']));}}return _0xa7899a;};var getChanSpyPromise=function(_0x3a7cd3,_0x31c84f){return new BPromise(function(_0x389202,_0x3be8ae){return _0x3a7cd3[_0xe83e('0x1a')][_0xe83e('0x1b')]({'attributes':['id',_0xe83e('0x14'),'internal'],'where':{'role':_0xe83e('0x1c'),'chanspy':!![]},'raw':!![]})['then'](function(_0x2b917a){if(_0x2b917a){return _0x389202(getChanSpyApplications(_0x31c84f,_0x2b917a));}return _0x389202([]);})[_0xe83e('0x1d')](function(_0x5b055b){_0x3be8ae(_0x5b055b);});});};module['exports']=function(_0x74a30a,_0x10c68c){var _0x14e8af=_0x74a30a['models'];return _0x74a30a[_0xe83e('0x1e')]('VoiceChanSpy',attributes,{'tableName':_0xe83e('0x1f'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x3d3063,_0x11dfc8,_0x3baf63){return getChanSpyPromise(_0x14e8af,_0x3d3063)['then'](function(_0x340b1e){if(_0x340b1e&&_0x340b1e[_0xe83e('0x18')]){return _0x14e8af['VoiceExtension'][_0xe83e('0x20')](_0x340b1e);}})[_0xe83e('0x21')](function(){_0x3baf63();})[_0xe83e('0x1d')](function(_0x1ddefc){_0x3baf63(_0x1ddefc);});},'afterUpdate':function(_0x311a34,_0xb0d900,_0x5df910){return _0x14e8af[_0xe83e('0x22')][_0xe83e('0x23')]({'where':{'ChanSpyId':_0x311a34['id']}})[_0xe83e('0x21')](function(){return getChanSpyPromise(_0x14e8af,_0x311a34);})['then'](function(_0x2d4822){if(_0x2d4822&&_0x2d4822[_0xe83e('0x18')]){return _0x14e8af[_0xe83e('0x22')][_0xe83e('0x20')](_0x2d4822);}})[_0xe83e('0x21')](function(){_0x5df910();})[_0xe83e('0x1d')](function(_0x226dbf){_0x5df910(_0x226dbf);});},'afterDestroy':function(_0x10348d,_0x119001,_0x1d11ea){return _0x14e8af[_0xe83e('0x22')][_0xe83e('0x23')]({'where':{'ChanSpyId':_0x10348d['id']}})[_0xe83e('0x21')](function(){_0x1d11ea();})[_0xe83e('0x1d')](function(_0x5edf9f){_0x1d11ea(_0x5edf9f);});}}});};