f46a3bc9c93f32d753ec0d16c538dae588e8c5a3
[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 _0x252f=['merge','Set','CDR(type)=%s','chanspy','MixMonitor','${UNIQUEID}.%s,a','recordingFormat','auth','Authenticate','password','ChanSpy','name','options','record','StopMixMonitor','length','internal','concat','User','findAll','agent','then','catch','define','VoiceChanSpy','voice_chanspy','VoiceExtension','destroy','lodash','util','context','from-sip','format','prefix','system','push'];(function(_0x3de4f8,_0x336c7d){var _0x3d81fc=function(_0x53b9f9){while(--_0x53b9f9){_0x3de4f8['push'](_0x3de4f8['shift']());}};_0x3d81fc(++_0x336c7d);}(_0x252f,0xd0));var _0xf252=function(_0x57c2f6,_0x1ee1bf){_0x57c2f6=_0x57c2f6-0x0;var _0x1cbd95=_0x252f[_0x57c2f6];return _0x1cbd95;};'use strict';var _=require(_0xf252('0x0'));var util=require(_0xf252('0x1'));var BPromise=require('bluebird');var attributes=require('./voiceChanSpy.attributes');var getUserApplications=function(_0x296888,_0x2663b4,_0x57b4a7){var _0x52c5c7=0x1;var _0x3c570c=[];var _0x264343={'context':_0x2663b4[_0xf252('0x2')]||_0xf252('0x3'),'exten':util[_0xf252('0x4')]('%s%s',_0x296888[_0xf252('0x5')],_0x57b4a7),'type':_0xf252('0x6'),'isApp':![],'ChanSpyId':_0x296888['id'],'UserId':_0x2663b4['id']};_0x3c570c[_0xf252('0x7')](_[_0xf252('0x8')]({'app':_0xf252('0x9'),'appdata':util['format'](_0xf252('0xa'),_0xf252('0xb')),'priority':_0x52c5c7++},_0x264343));if(_0x296888['record']){_0x3c570c[_0xf252('0x7')](_['merge']({'app':_0xf252('0xc'),'appdata':util['format'](_0xf252('0xd'),_0x296888[_0xf252('0xe')]),'priority':_0x52c5c7++},_0x264343));}if(_0x296888[_0xf252('0xf')]){_0x3c570c[_0xf252('0x7')](_['merge']({'app':_0xf252('0x10'),'appdata':_0x296888[_0xf252('0x11')],'priority':_0x52c5c7++},_0x264343));}_0x3c570c[_0xf252('0x7')](_[_0xf252('0x8')]({'app':_0xf252('0x12'),'appdata':util[_0xf252('0x4')]('SIP/%s,%s',_0x2663b4[_0xf252('0x13')],_0x296888[_0xf252('0x14')]?_0x296888[_0xf252('0x14')]['join'](''):''),'priority':_0x52c5c7++},_0x264343));if(_0x296888[_0xf252('0x15')]){_0x3c570c[_0xf252('0x7')](_[_0xf252('0x8')]({'app':_0xf252('0x16'),'priority':_0x52c5c7++},_0x264343));}return _0x3c570c;};var getChanSpyApplications=function(_0x486254,_0x1c5411){var _0x5421a0=[];for(var _0x32a8e9=0x0,_0x16450a=0x1;_0x32a8e9<_0x1c5411[_0xf252('0x17')];_0x32a8e9++,_0x16450a=0x1){_0x5421a0=_0x5421a0['concat'](getUserApplications(_0x486254,_0x1c5411[_0x32a8e9],_0x1c5411[_0x32a8e9]['internal']));if(_0x1c5411[_0x32a8e9][_0xf252('0x18')]!=_0x1c5411[_0x32a8e9][_0xf252('0x13')]){_0x5421a0=_0x5421a0[_0xf252('0x19')](getUserApplications(_0x486254,_0x1c5411[_0x32a8e9],_0x1c5411[_0x32a8e9]['name']));}}return _0x5421a0;};var getChanSpyPromise=function(_0xaa6041,_0x4f063c){return new BPromise(function(_0x5acc79,_0x33937c){return _0xaa6041[_0xf252('0x1a')][_0xf252('0x1b')]({'attributes':['id',_0xf252('0x13'),'internal'],'where':{'role':_0xf252('0x1c'),'chanspy':!![]},'raw':!![]})[_0xf252('0x1d')](function(_0x33087c){if(_0x33087c){return _0x5acc79(getChanSpyApplications(_0x4f063c,_0x33087c));}return _0x5acc79([]);})[_0xf252('0x1e')](function(_0x574614){_0x33937c(_0x574614);});});};module['exports']=function(_0x12d287,_0x453220){var _0x52d882=_0x12d287['models'];return _0x12d287[_0xf252('0x1f')](_0xf252('0x20'),attributes,{'tableName':_0xf252('0x21'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x5180ec,_0x3d8fd2,_0x7848e8){return getChanSpyPromise(_0x52d882,_0x5180ec)[_0xf252('0x1d')](function(_0x36f8a5){if(_0x36f8a5&&_0x36f8a5[_0xf252('0x17')]){return _0x52d882[_0xf252('0x22')]['bulkCreate'](_0x36f8a5);}})[_0xf252('0x1d')](function(){_0x7848e8();})[_0xf252('0x1e')](function(_0x2c6073){_0x7848e8(_0x2c6073);});},'afterUpdate':function(_0x28fa03,_0x18cef6,_0x321dbc){return _0x52d882[_0xf252('0x22')][_0xf252('0x23')]({'where':{'ChanSpyId':_0x28fa03['id']}})[_0xf252('0x1d')](function(){return getChanSpyPromise(_0x52d882,_0x28fa03);})[_0xf252('0x1d')](function(_0x4bc687){if(_0x4bc687&&_0x4bc687[_0xf252('0x17')]){return _0x52d882['VoiceExtension']['bulkCreate'](_0x4bc687);}})[_0xf252('0x1d')](function(){_0x321dbc();})[_0xf252('0x1e')](function(_0x58617f){_0x321dbc(_0x58617f);});},'afterDestroy':function(_0x599064,_0x4d935f,_0x3b1f6d){return _0x52d882[_0xf252('0x22')][_0xf252('0x23')]({'where':{'ChanSpyId':_0x599064['id']}})['then'](function(){_0x3b1f6d();})[_0xf252('0x1e')](function(_0x52a9e6){_0x3b1f6d(_0x52a9e6);});}}});};