f71d5eef5642ef32e42479a107e224026a7ef257
[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 _0xb04e=['concat','internal','User','findAll','agent','then','catch','exports','models','define','voice_chanspy','VoiceExtension','destroy','bulkCreate','lodash','util','bluebird','./voiceChanSpy.attributes','%s%s','prefix','system','push','merge','Set','CDR(type)=%s','chanspy','record','MixMonitor','format','recordingFormat','auth','Authenticate','password','name','join','length'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xb04e,0x19a));var _0xeb04=function(_0x22a3bc,_0x4da94e){_0x22a3bc=_0x22a3bc-0x0;var _0x4dcc97=_0xb04e[_0x22a3bc];return _0x4dcc97;};'use strict';var _=require(_0xeb04('0x0'));var util=require(_0xeb04('0x1'));var BPromise=require(_0xeb04('0x2'));var attributes=require(_0xeb04('0x3'));var getUserApplications=function(_0x536ee1,_0x8fda0a,_0x168531){var _0x1a6dfe=0x1;var _0x6ce7fb=[];var _0x3b1e57={'context':_0x8fda0a['context']||'from-sip','exten':util['format'](_0xeb04('0x4'),_0x536ee1[_0xeb04('0x5')],_0x168531),'type':_0xeb04('0x6'),'isApp':![],'ChanSpyId':_0x536ee1['id'],'UserId':_0x8fda0a['id']};_0x6ce7fb[_0xeb04('0x7')](_[_0xeb04('0x8')]({'app':_0xeb04('0x9'),'appdata':util['format'](_0xeb04('0xa'),_0xeb04('0xb')),'priority':_0x1a6dfe++},_0x3b1e57));if(_0x536ee1[_0xeb04('0xc')]){_0x6ce7fb[_0xeb04('0x7')](_['merge']({'app':_0xeb04('0xd'),'appdata':util[_0xeb04('0xe')]('${UNIQUEID}.%s,a',_0x536ee1[_0xeb04('0xf')]),'priority':_0x1a6dfe++},_0x3b1e57));}if(_0x536ee1[_0xeb04('0x10')]){_0x6ce7fb[_0xeb04('0x7')](_['merge']({'app':_0xeb04('0x11'),'appdata':_0x536ee1[_0xeb04('0x12')],'priority':_0x1a6dfe++},_0x3b1e57));}_0x6ce7fb['push'](_[_0xeb04('0x8')]({'app':'ChanSpy','appdata':util[_0xeb04('0xe')]('SIP/%s,%s',_0x8fda0a[_0xeb04('0x13')],_0x536ee1['options']?_0x536ee1['options'][_0xeb04('0x14')](''):''),'priority':_0x1a6dfe++},_0x3b1e57));if(_0x536ee1['record']){_0x6ce7fb[_0xeb04('0x7')](_['merge']({'app':'StopMixMonitor','priority':_0x1a6dfe++},_0x3b1e57));}return _0x6ce7fb;};var getChanSpyApplications=function(_0x41ec60,_0x3bcfbd){var _0x513b0f=[];for(var _0xab5554=0x0,_0x4b56b9=0x1;_0xab5554<_0x3bcfbd[_0xeb04('0x15')];_0xab5554++,_0x4b56b9=0x1){_0x513b0f=_0x513b0f[_0xeb04('0x16')](getUserApplications(_0x41ec60,_0x3bcfbd[_0xab5554],_0x3bcfbd[_0xab5554]['internal']));if(_0x3bcfbd[_0xab5554][_0xeb04('0x17')]!=_0x3bcfbd[_0xab5554][_0xeb04('0x13')]){_0x513b0f=_0x513b0f[_0xeb04('0x16')](getUserApplications(_0x41ec60,_0x3bcfbd[_0xab5554],_0x3bcfbd[_0xab5554]['name']));}}return _0x513b0f;};var getChanSpyPromise=function(_0x23cf0f,_0xba7017){return new BPromise(function(_0x29f0df,_0x16222a){return _0x23cf0f[_0xeb04('0x18')][_0xeb04('0x19')]({'attributes':['id',_0xeb04('0x13'),_0xeb04('0x17')],'where':{'role':_0xeb04('0x1a'),'chanspy':!![]},'raw':!![]})[_0xeb04('0x1b')](function(_0x2ea2e3){if(_0x2ea2e3){return _0x29f0df(getChanSpyApplications(_0xba7017,_0x2ea2e3));}return _0x29f0df([]);})[_0xeb04('0x1c')](function(_0xc4b3b4){_0x16222a(_0xc4b3b4);});});};module[_0xeb04('0x1d')]=function(_0x26e52f,_0xcf55e0){var _0x45b41f=_0x26e52f[_0xeb04('0x1e')];return _0x26e52f[_0xeb04('0x1f')]('VoiceChanSpy',attributes,{'tableName':_0xeb04('0x20'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x2502a2,_0x454bd8,_0x505c3f){return getChanSpyPromise(_0x45b41f,_0x2502a2)[_0xeb04('0x1b')](function(_0x5b35ec){if(_0x5b35ec&&_0x5b35ec[_0xeb04('0x15')]){return _0x45b41f[_0xeb04('0x21')]['bulkCreate'](_0x5b35ec);}})[_0xeb04('0x1b')](function(){_0x505c3f();})[_0xeb04('0x1c')](function(_0x2678b5){_0x505c3f(_0x2678b5);});},'afterUpdate':function(_0x10299d,_0x1a154a,_0x481cf5){return _0x45b41f['VoiceExtension'][_0xeb04('0x22')]({'where':{'ChanSpyId':_0x10299d['id']}})['then'](function(){return getChanSpyPromise(_0x45b41f,_0x10299d);})[_0xeb04('0x1b')](function(_0x48f904){if(_0x48f904&&_0x48f904[_0xeb04('0x15')]){return _0x45b41f[_0xeb04('0x21')][_0xeb04('0x23')](_0x48f904);}})[_0xeb04('0x1b')](function(){_0x481cf5();})['catch'](function(_0x3245b1){_0x481cf5(_0x3245b1);});},'afterDestroy':function(_0x3cc1a2,_0x114a3f,_0x1649dc){return _0x45b41f[_0xeb04('0x21')]['destroy']({'where':{'ChanSpyId':_0x3cc1a2['id']}})[_0xeb04('0x1b')](function(){_0x1649dc();})['catch'](function(_0x1ba75b){_0x1649dc(_0x1ba75b);});}}});};