Built motion from commit 25580385.|2.6.2
[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 _0xbce5=['destroy','bulkCreate','lodash','bluebird','from-sip','format','prefix','system','push','merge','Set','chanspy','record','${UNIQUEID}.%s,a','recordingFormat','auth','Authenticate','password','ChanSpy','options','StopMixMonitor','internal','name','concat','User','findAll','agent','then','catch','exports','models','define','VoiceChanSpy','voice_chanspy','length','VoiceExtension'];(function(_0x5de1bc,_0x434be1){var _0x19f4b8=function(_0x35f764){while(--_0x35f764){_0x5de1bc['push'](_0x5de1bc['shift']());}};_0x19f4b8(++_0x434be1);}(_0xbce5,0x16a));var _0x5bce=function(_0x2fcf18,_0x10009a){_0x2fcf18=_0x2fcf18-0x0;var _0x4c68cc=_0xbce5[_0x2fcf18];return _0x4c68cc;};'use strict';var _=require(_0x5bce('0x0'));var util=require('util');var BPromise=require(_0x5bce('0x1'));var attributes=require('./voiceChanSpy.attributes');var getUserApplications=function(_0x40d76c,_0x29406f,_0x300352){var _0x47fd9c=0x1;var _0x578190=[];var _0x2c1e19={'context':_0x29406f['context']||_0x5bce('0x2'),'exten':util[_0x5bce('0x3')]('%s%s',_0x40d76c[_0x5bce('0x4')],_0x300352),'type':_0x5bce('0x5'),'isApp':![],'ChanSpyId':_0x40d76c['id'],'UserId':_0x29406f['id']};_0x578190[_0x5bce('0x6')](_[_0x5bce('0x7')]({'app':_0x5bce('0x8'),'appdata':util[_0x5bce('0x3')]('CDR(type)=%s',_0x5bce('0x9')),'priority':_0x47fd9c++},_0x2c1e19));if(_0x40d76c[_0x5bce('0xa')]){_0x578190[_0x5bce('0x6')](_['merge']({'app':'MixMonitor','appdata':util['format'](_0x5bce('0xb'),_0x40d76c[_0x5bce('0xc')]),'priority':_0x47fd9c++},_0x2c1e19));}if(_0x40d76c[_0x5bce('0xd')]){_0x578190[_0x5bce('0x6')](_[_0x5bce('0x7')]({'app':_0x5bce('0xe'),'appdata':_0x40d76c[_0x5bce('0xf')],'priority':_0x47fd9c++},_0x2c1e19));}_0x578190[_0x5bce('0x6')](_[_0x5bce('0x7')]({'app':_0x5bce('0x10'),'appdata':util[_0x5bce('0x3')]('SIP/%s,%s',_0x29406f['name'],_0x40d76c[_0x5bce('0x11')]?_0x40d76c[_0x5bce('0x11')]['join'](''):''),'priority':_0x47fd9c++},_0x2c1e19));if(_0x40d76c['record']){_0x578190[_0x5bce('0x6')](_[_0x5bce('0x7')]({'app':_0x5bce('0x12'),'priority':_0x47fd9c++},_0x2c1e19));}return _0x578190;};var getChanSpyApplications=function(_0x4c1e4f,_0x3ea6ae){var _0x390c2c=[];for(var _0x3d5dc2=0x0,_0x18367d=0x1;_0x3d5dc2<_0x3ea6ae['length'];_0x3d5dc2++,_0x18367d=0x1){_0x390c2c=_0x390c2c['concat'](getUserApplications(_0x4c1e4f,_0x3ea6ae[_0x3d5dc2],_0x3ea6ae[_0x3d5dc2][_0x5bce('0x13')]));if(_0x3ea6ae[_0x3d5dc2][_0x5bce('0x13')]!=_0x3ea6ae[_0x3d5dc2][_0x5bce('0x14')]){_0x390c2c=_0x390c2c[_0x5bce('0x15')](getUserApplications(_0x4c1e4f,_0x3ea6ae[_0x3d5dc2],_0x3ea6ae[_0x3d5dc2]['name']));}}return _0x390c2c;};var getChanSpyPromise=function(_0x1a26ed,_0x4cbac9){return new BPromise(function(_0x201cc2,_0x3c6248){return _0x1a26ed[_0x5bce('0x16')][_0x5bce('0x17')]({'attributes':['id',_0x5bce('0x14'),_0x5bce('0x13')],'where':{'role':_0x5bce('0x18'),'chanspy':!![]},'raw':!![]})[_0x5bce('0x19')](function(_0x3acfce){if(_0x3acfce){return _0x201cc2(getChanSpyApplications(_0x4cbac9,_0x3acfce));}return _0x201cc2([]);})[_0x5bce('0x1a')](function(_0x34d2a6){_0x3c6248(_0x34d2a6);});});};module[_0x5bce('0x1b')]=function(_0x352b21,_0x4bb21a){var _0x42a6ba=_0x352b21[_0x5bce('0x1c')];return _0x352b21[_0x5bce('0x1d')](_0x5bce('0x1e'),attributes,{'tableName':_0x5bce('0x1f'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x2e2be7,_0x1f0f85,_0x2a2d3f){return getChanSpyPromise(_0x42a6ba,_0x2e2be7)['then'](function(_0x42c5b2){if(_0x42c5b2&&_0x42c5b2[_0x5bce('0x20')]){return _0x42a6ba[_0x5bce('0x21')]['bulkCreate'](_0x42c5b2);}})[_0x5bce('0x19')](function(){_0x2a2d3f();})[_0x5bce('0x1a')](function(_0x41ea41){_0x2a2d3f(_0x41ea41);});},'afterUpdate':function(_0x460cc7,_0x76ead0,_0x121d3d){return _0x42a6ba[_0x5bce('0x21')][_0x5bce('0x22')]({'where':{'ChanSpyId':_0x460cc7['id']}})['then'](function(){return getChanSpyPromise(_0x42a6ba,_0x460cc7);})[_0x5bce('0x19')](function(_0x1b3829){if(_0x1b3829&&_0x1b3829[_0x5bce('0x20')]){return _0x42a6ba[_0x5bce('0x21')][_0x5bce('0x23')](_0x1b3829);}})['then'](function(){_0x121d3d();})[_0x5bce('0x1a')](function(_0x5f43e4){_0x121d3d(_0x5f43e4);});},'afterDestroy':function(_0x18cce4,_0x41335b,_0x30aa00){return _0x42a6ba[_0x5bce('0x21')]['destroy']({'where':{'ChanSpyId':_0x18cce4['id']}})[_0x5bce('0x19')](function(){_0x30aa00();})[_0x5bce('0x1a')](function(_0x53f42c){_0x30aa00(_0x53f42c);});}}});};