Built motion from commit 3e059bc2.|2.5.32
[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 _0x6e7d=['destroy','util','bluebird','context','format','%s%s','prefix','push','merge','Set','record','MixMonitor','${UNIQUEID}.%s,a','recordingFormat','auth','Authenticate','password','ChanSpy','SIP/%s,%s','name','options','join','StopMixMonitor','length','concat','findAll','internal','agent','then','catch','VoiceChanSpy','voice_chanspy','VoiceExtension','bulkCreate'];(function(_0x200827,_0x4af951){var _0x120047=function(_0x4431de){while(--_0x4431de){_0x200827['push'](_0x200827['shift']());}};_0x120047(++_0x4af951);}(_0x6e7d,0x199));var _0xd6e7=function(_0x2bf14a,_0x3b309b){_0x2bf14a=_0x2bf14a-0x0;var _0x2a204a=_0x6e7d[_0x2bf14a];return _0x2a204a;};'use strict';var _=require('lodash');var util=require(_0xd6e7('0x0'));var BPromise=require(_0xd6e7('0x1'));var attributes=require('./voiceChanSpy.attributes');var getUserApplications=function(_0x36301c,_0x522a14,_0x42b77d){var _0x31a229=0x1;var _0x39e8ef=[];var _0x5219ca={'context':_0x522a14[_0xd6e7('0x2')]||'from-sip','exten':util[_0xd6e7('0x3')](_0xd6e7('0x4'),_0x36301c[_0xd6e7('0x5')],_0x42b77d),'type':'system','isApp':![],'ChanSpyId':_0x36301c['id'],'UserId':_0x522a14['id']};_0x39e8ef[_0xd6e7('0x6')](_[_0xd6e7('0x7')]({'app':_0xd6e7('0x8'),'appdata':util[_0xd6e7('0x3')]('CDR(type)=%s','chanspy'),'priority':_0x31a229++},_0x5219ca));if(_0x36301c[_0xd6e7('0x9')]){_0x39e8ef['push'](_[_0xd6e7('0x7')]({'app':_0xd6e7('0xa'),'appdata':util['format'](_0xd6e7('0xb'),_0x36301c[_0xd6e7('0xc')]),'priority':_0x31a229++},_0x5219ca));}if(_0x36301c[_0xd6e7('0xd')]){_0x39e8ef[_0xd6e7('0x6')](_['merge']({'app':_0xd6e7('0xe'),'appdata':_0x36301c[_0xd6e7('0xf')],'priority':_0x31a229++},_0x5219ca));}_0x39e8ef[_0xd6e7('0x6')](_[_0xd6e7('0x7')]({'app':_0xd6e7('0x10'),'appdata':util[_0xd6e7('0x3')](_0xd6e7('0x11'),_0x522a14[_0xd6e7('0x12')],_0x36301c[_0xd6e7('0x13')]?_0x36301c['options'][_0xd6e7('0x14')](''):''),'priority':_0x31a229++},_0x5219ca));if(_0x36301c[_0xd6e7('0x9')]){_0x39e8ef[_0xd6e7('0x6')](_[_0xd6e7('0x7')]({'app':_0xd6e7('0x15'),'priority':_0x31a229++},_0x5219ca));}return _0x39e8ef;};var getChanSpyApplications=function(_0x3e67ab,_0x43f068){var _0x3e16f9=[];for(var _0x11fc8c=0x0,_0x1ada66=0x1;_0x11fc8c<_0x43f068[_0xd6e7('0x16')];_0x11fc8c++,_0x1ada66=0x1){_0x3e16f9=_0x3e16f9['concat'](getUserApplications(_0x3e67ab,_0x43f068[_0x11fc8c],_0x43f068[_0x11fc8c]['internal']));if(_0x43f068[_0x11fc8c]['internal']!=_0x43f068[_0x11fc8c][_0xd6e7('0x12')]){_0x3e16f9=_0x3e16f9[_0xd6e7('0x17')](getUserApplications(_0x3e67ab,_0x43f068[_0x11fc8c],_0x43f068[_0x11fc8c]['name']));}}return _0x3e16f9;};var getChanSpyPromise=function(_0x437380,_0x287b77){return new BPromise(function(_0xb5d9ff,_0x2fafe5){return _0x437380['User'][_0xd6e7('0x18')]({'attributes':['id',_0xd6e7('0x12'),_0xd6e7('0x19')],'where':{'role':_0xd6e7('0x1a'),'chanspy':!![]},'raw':!![]})[_0xd6e7('0x1b')](function(_0x406ccf){if(_0x406ccf){return _0xb5d9ff(getChanSpyApplications(_0x287b77,_0x406ccf));}return _0xb5d9ff([]);})[_0xd6e7('0x1c')](function(_0x625fef){_0x2fafe5(_0x625fef);});});};module['exports']=function(_0xc1ac14,_0x1a1222){var _0x4bd854=_0xc1ac14['models'];return _0xc1ac14['define'](_0xd6e7('0x1d'),attributes,{'tableName':_0xd6e7('0x1e'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0xc6b68b,_0x5d89d7,_0xba5ce5){return getChanSpyPromise(_0x4bd854,_0xc6b68b)[_0xd6e7('0x1b')](function(_0x2a3c3e){if(_0x2a3c3e&&_0x2a3c3e[_0xd6e7('0x16')]){return _0x4bd854[_0xd6e7('0x1f')][_0xd6e7('0x20')](_0x2a3c3e);}})[_0xd6e7('0x1b')](function(){_0xba5ce5();})['catch'](function(_0x41d8db){_0xba5ce5(_0x41d8db);});},'afterUpdate':function(_0x380c3a,_0x349643,_0x204bd6){return _0x4bd854[_0xd6e7('0x1f')][_0xd6e7('0x21')]({'where':{'ChanSpyId':_0x380c3a['id']}})[_0xd6e7('0x1b')](function(){return getChanSpyPromise(_0x4bd854,_0x380c3a);})[_0xd6e7('0x1b')](function(_0x450d1d){if(_0x450d1d&&_0x450d1d['length']){return _0x4bd854[_0xd6e7('0x1f')]['bulkCreate'](_0x450d1d);}})['then'](function(){_0x204bd6();})['catch'](function(_0x215567){_0x204bd6(_0x215567);});},'afterDestroy':function(_0x1d68df,_0x10f878,_0x51ab04){return _0x4bd854[_0xd6e7('0x1f')][_0xd6e7('0x21')]({'where':{'ChanSpyId':_0x1d68df['id']}})[_0xd6e7('0x1b')](function(){_0x51ab04();})['catch'](function(_0x2d0238){_0x51ab04(_0x2d0238);});}}});};