Built motion from commit 753c950e.|2.5.42
[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 _0x087f=['context','%s%s','prefix','system','push','merge','Set','format','CDR(type)=%s','chanspy','record','MixMonitor','recordingFormat','password','ChanSpy','name','options','StopMixMonitor','length','concat','internal','User','findAll','agent','then','exports','models','voice_chanspy','VoiceExtension','bulkCreate','destroy','catch','lodash','util'];(function(_0x38ced4,_0x24263f){var _0x547c07=function(_0x279fc4){while(--_0x279fc4){_0x38ced4['push'](_0x38ced4['shift']());}};_0x547c07(++_0x24263f);}(_0x087f,0x130));var _0xf087=function(_0x1374e9,_0x26ed43){_0x1374e9=_0x1374e9-0x0;var _0x53e230=_0x087f[_0x1374e9];return _0x53e230;};'use strict';var _=require(_0xf087('0x0'));var util=require(_0xf087('0x1'));var BPromise=require('bluebird');var attributes=require('./voiceChanSpy.attributes');var getUserApplications=function(_0x521d3a,_0x5cb81c,_0x2c3492){var _0x3d1885=0x1;var _0x4b232d=[];var _0x12ce01={'context':_0x5cb81c[_0xf087('0x2')]||'from-sip','exten':util['format'](_0xf087('0x3'),_0x521d3a[_0xf087('0x4')],_0x2c3492),'type':_0xf087('0x5'),'isApp':![],'ChanSpyId':_0x521d3a['id'],'UserId':_0x5cb81c['id']};_0x4b232d[_0xf087('0x6')](_[_0xf087('0x7')]({'app':_0xf087('0x8'),'appdata':util[_0xf087('0x9')](_0xf087('0xa'),_0xf087('0xb')),'priority':_0x3d1885++},_0x12ce01));if(_0x521d3a[_0xf087('0xc')]){_0x4b232d[_0xf087('0x6')](_[_0xf087('0x7')]({'app':_0xf087('0xd'),'appdata':util[_0xf087('0x9')]('${UNIQUEID}.%s,a',_0x521d3a[_0xf087('0xe')]),'priority':_0x3d1885++},_0x12ce01));}if(_0x521d3a['auth']){_0x4b232d[_0xf087('0x6')](_[_0xf087('0x7')]({'app':'Authenticate','appdata':_0x521d3a[_0xf087('0xf')],'priority':_0x3d1885++},_0x12ce01));}_0x4b232d['push'](_['merge']({'app':_0xf087('0x10'),'appdata':util[_0xf087('0x9')]('SIP/%s,%s',_0x5cb81c[_0xf087('0x11')],_0x521d3a[_0xf087('0x12')]?_0x521d3a[_0xf087('0x12')]['join'](''):''),'priority':_0x3d1885++},_0x12ce01));if(_0x521d3a[_0xf087('0xc')]){_0x4b232d[_0xf087('0x6')](_['merge']({'app':_0xf087('0x13'),'priority':_0x3d1885++},_0x12ce01));}return _0x4b232d;};var getChanSpyApplications=function(_0x49fd24,_0x3214b7){var _0x1f6fc7=[];for(var _0x39c287=0x0,_0x5b6b4e=0x1;_0x39c287<_0x3214b7[_0xf087('0x14')];_0x39c287++,_0x5b6b4e=0x1){_0x1f6fc7=_0x1f6fc7[_0xf087('0x15')](getUserApplications(_0x49fd24,_0x3214b7[_0x39c287],_0x3214b7[_0x39c287][_0xf087('0x16')]));if(_0x3214b7[_0x39c287][_0xf087('0x16')]!=_0x3214b7[_0x39c287]['name']){_0x1f6fc7=_0x1f6fc7[_0xf087('0x15')](getUserApplications(_0x49fd24,_0x3214b7[_0x39c287],_0x3214b7[_0x39c287][_0xf087('0x11')]));}}return _0x1f6fc7;};var getChanSpyPromise=function(_0x528c38,_0x23bb29){return new BPromise(function(_0x593c3c,_0x1da52b){return _0x528c38[_0xf087('0x17')][_0xf087('0x18')]({'attributes':['id',_0xf087('0x11'),_0xf087('0x16')],'where':{'role':_0xf087('0x19'),'chanspy':!![]},'raw':!![]})[_0xf087('0x1a')](function(_0x426402){if(_0x426402){return _0x593c3c(getChanSpyApplications(_0x23bb29,_0x426402));}return _0x593c3c([]);})['catch'](function(_0x4b1a57){_0x1da52b(_0x4b1a57);});});};module[_0xf087('0x1b')]=function(_0x2b019d,_0x512693){var _0x24ed91=_0x2b019d[_0xf087('0x1c')];return _0x2b019d['define']('VoiceChanSpy',attributes,{'tableName':_0xf087('0x1d'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x514995,_0x356ef5,_0x152c25){return getChanSpyPromise(_0x24ed91,_0x514995)[_0xf087('0x1a')](function(_0x32a1d9){if(_0x32a1d9&&_0x32a1d9['length']){return _0x24ed91[_0xf087('0x1e')][_0xf087('0x1f')](_0x32a1d9);}})[_0xf087('0x1a')](function(){_0x152c25();})['catch'](function(_0x453a7d){_0x152c25(_0x453a7d);});},'afterUpdate':function(_0x35bb79,_0x2b6b6e,_0x1c1714){return _0x24ed91['VoiceExtension']['destroy']({'where':{'ChanSpyId':_0x35bb79['id']}})[_0xf087('0x1a')](function(){return getChanSpyPromise(_0x24ed91,_0x35bb79);})[_0xf087('0x1a')](function(_0x38f17b){if(_0x38f17b&&_0x38f17b[_0xf087('0x14')]){return _0x24ed91[_0xf087('0x1e')]['bulkCreate'](_0x38f17b);}})[_0xf087('0x1a')](function(){_0x1c1714();})['catch'](function(_0x5247e8){_0x1c1714(_0x5247e8);});},'afterDestroy':function(_0x22a745,_0x35a110,_0x4fe170){return _0x24ed91['VoiceExtension'][_0xf087('0x20')]({'where':{'ChanSpyId':_0x22a745['id']}})[_0xf087('0x1a')](function(){_0x4fe170();})[_0xf087('0x21')](function(_0x4a409f){_0x4fe170(_0x4a409f);});}}});};