47030294ea8fcadd59d71b8b0ea3afa75ab2a36f
[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 _0x803f=['./voiceChanSpy.attributes','from-sip','format','%s%s','system','push','Set','CDR(type)=%s','record','merge','MixMonitor','${UNIQUEID}.%s,a','recordingFormat','auth','name','options','join','StopMixMonitor','concat','internal','findAll','agent','then','catch','models','define','VoiceChanSpy','voice_chanspy','length','VoiceExtension','bulkCreate','destroy','lodash','bluebird'];(function(_0x1f7d38,_0x455177){var _0x4af573=function(_0x114ca6){while(--_0x114ca6){_0x1f7d38['push'](_0x1f7d38['shift']());}};_0x4af573(++_0x455177);}(_0x803f,0x64));var _0xf803=function(_0x37616a,_0x2248e5){_0x37616a=_0x37616a-0x0;var _0x5a9082=_0x803f[_0x37616a];return _0x5a9082;};'use strict';var _=require(_0xf803('0x0'));var util=require('util');var BPromise=require(_0xf803('0x1'));var attributes=require(_0xf803('0x2'));var getUserApplications=function(_0x4ce875,_0x1a8691,_0x43fb3b){var _0x19ff73=0x1;var _0x6baafe=[];var _0x5c2cd6={'context':_0x1a8691['context']||_0xf803('0x3'),'exten':util[_0xf803('0x4')](_0xf803('0x5'),_0x4ce875['prefix'],_0x43fb3b),'type':_0xf803('0x6'),'isApp':![],'ChanSpyId':_0x4ce875['id'],'UserId':_0x1a8691['id']};_0x6baafe[_0xf803('0x7')](_['merge']({'app':_0xf803('0x8'),'appdata':util[_0xf803('0x4')](_0xf803('0x9'),'chanspy'),'priority':_0x19ff73++},_0x5c2cd6));if(_0x4ce875[_0xf803('0xa')]){_0x6baafe['push'](_[_0xf803('0xb')]({'app':_0xf803('0xc'),'appdata':util['format'](_0xf803('0xd'),_0x4ce875[_0xf803('0xe')]),'priority':_0x19ff73++},_0x5c2cd6));}if(_0x4ce875[_0xf803('0xf')]){_0x6baafe[_0xf803('0x7')](_[_0xf803('0xb')]({'app':'Authenticate','appdata':_0x4ce875['password'],'priority':_0x19ff73++},_0x5c2cd6));}_0x6baafe[_0xf803('0x7')](_[_0xf803('0xb')]({'app':'ChanSpy','appdata':util[_0xf803('0x4')]('SIP/%s,%s',_0x1a8691[_0xf803('0x10')],_0x4ce875[_0xf803('0x11')]?_0x4ce875[_0xf803('0x11')][_0xf803('0x12')](''):''),'priority':_0x19ff73++},_0x5c2cd6));if(_0x4ce875['record']){_0x6baafe[_0xf803('0x7')](_[_0xf803('0xb')]({'app':_0xf803('0x13'),'priority':_0x19ff73++},_0x5c2cd6));}return _0x6baafe;};var getChanSpyApplications=function(_0x11373e,_0x2aaef6){var _0xd170bc=[];for(var _0xbd7728=0x0,_0x4afba4=0x1;_0xbd7728<_0x2aaef6['length'];_0xbd7728++,_0x4afba4=0x1){_0xd170bc=_0xd170bc[_0xf803('0x14')](getUserApplications(_0x11373e,_0x2aaef6[_0xbd7728],_0x2aaef6[_0xbd7728][_0xf803('0x15')]));if(_0x2aaef6[_0xbd7728][_0xf803('0x15')]!=_0x2aaef6[_0xbd7728][_0xf803('0x10')]){_0xd170bc=_0xd170bc[_0xf803('0x14')](getUserApplications(_0x11373e,_0x2aaef6[_0xbd7728],_0x2aaef6[_0xbd7728][_0xf803('0x10')]));}}return _0xd170bc;};var getChanSpyPromise=function(_0x2bbe76,_0x246364){return new BPromise(function(_0x790499,_0x253e9c){return _0x2bbe76['User'][_0xf803('0x16')]({'attributes':['id',_0xf803('0x10'),_0xf803('0x15')],'where':{'role':_0xf803('0x17'),'chanspy':!![]},'raw':!![]})[_0xf803('0x18')](function(_0x48bc46){if(_0x48bc46){return _0x790499(getChanSpyApplications(_0x246364,_0x48bc46));}return _0x790499([]);})[_0xf803('0x19')](function(_0x1a7879){_0x253e9c(_0x1a7879);});});};module['exports']=function(_0x27882f,_0x72a235){var _0xb5c475=_0x27882f[_0xf803('0x1a')];return _0x27882f[_0xf803('0x1b')](_0xf803('0x1c'),attributes,{'tableName':_0xf803('0x1d'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x20d897,_0x393d0c,_0x1e5a2a){return getChanSpyPromise(_0xb5c475,_0x20d897)[_0xf803('0x18')](function(_0x57eaab){if(_0x57eaab&&_0x57eaab[_0xf803('0x1e')]){return _0xb5c475[_0xf803('0x1f')][_0xf803('0x20')](_0x57eaab);}})[_0xf803('0x18')](function(){_0x1e5a2a();})['catch'](function(_0x483890){_0x1e5a2a(_0x483890);});},'afterUpdate':function(_0x17a57a,_0xa5d34,_0x1c8937){return _0xb5c475['VoiceExtension'][_0xf803('0x21')]({'where':{'ChanSpyId':_0x17a57a['id']}})[_0xf803('0x18')](function(){return getChanSpyPromise(_0xb5c475,_0x17a57a);})['then'](function(_0x572558){if(_0x572558&&_0x572558[_0xf803('0x1e')]){return _0xb5c475[_0xf803('0x1f')]['bulkCreate'](_0x572558);}})[_0xf803('0x18')](function(){_0x1c8937();})[_0xf803('0x19')](function(_0x3711a1){_0x1c8937(_0x3711a1);});},'afterDestroy':function(_0x4bd4a0,_0x73852c,_0x27c32f){return _0xb5c475[_0xf803('0x1f')][_0xf803('0x21')]({'where':{'ChanSpyId':_0x4bd4a0['id']}})[_0xf803('0x18')](function(){_0x27c32f();})[_0xf803('0x19')](function(_0x34b5fa){_0x27c32f(_0x34b5fa);});}}});};