Built motion from commit ffdca78c.|2.6.24
[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 _0x7fda=['lodash','util','bluebird','./voiceChanSpy.attributes','context','from-sip','prefix','system','merge','Set','CDR(type)=%s','chanspy','record','push','MixMonitor','format','recordingFormat','Authenticate','ChanSpy','name','join','concat','internal','User','findAll','catch','exports','models','VoiceChanSpy','then','length','bulkCreate','VoiceExtension','destroy'];(function(_0x138adb,_0x193fee){var _0x1b27f2=function(_0x5e97a2){while(--_0x5e97a2){_0x138adb['push'](_0x138adb['shift']());}};_0x1b27f2(++_0x193fee);}(_0x7fda,0x1dc));var _0xa7fd=function(_0xb9d67c,_0x14a80e){_0xb9d67c=_0xb9d67c-0x0;var _0x4c661c=_0x7fda[_0xb9d67c];return _0x4c661c;};'use strict';var _=require(_0xa7fd('0x0'));var util=require(_0xa7fd('0x1'));var BPromise=require(_0xa7fd('0x2'));var attributes=require(_0xa7fd('0x3'));var getUserApplications=function(_0x1521cb,_0x5e9884,_0x4ded61){var _0x3f425f=0x1;var _0x5688fd=[];var _0x5674a8={'context':_0x5e9884[_0xa7fd('0x4')]||_0xa7fd('0x5'),'exten':util['format']('%s%s',_0x1521cb[_0xa7fd('0x6')],_0x4ded61),'type':_0xa7fd('0x7'),'isApp':![],'ChanSpyId':_0x1521cb['id'],'UserId':_0x5e9884['id']};_0x5688fd['push'](_[_0xa7fd('0x8')]({'app':_0xa7fd('0x9'),'appdata':util['format'](_0xa7fd('0xa'),_0xa7fd('0xb')),'priority':_0x3f425f++},_0x5674a8));if(_0x1521cb[_0xa7fd('0xc')]){_0x5688fd[_0xa7fd('0xd')](_[_0xa7fd('0x8')]({'app':_0xa7fd('0xe'),'appdata':util[_0xa7fd('0xf')]('${UNIQUEID}.%s,a',_0x1521cb[_0xa7fd('0x10')]),'priority':_0x3f425f++},_0x5674a8));}if(_0x1521cb['auth']){_0x5688fd[_0xa7fd('0xd')](_[_0xa7fd('0x8')]({'app':_0xa7fd('0x11'),'appdata':_0x1521cb['password'],'priority':_0x3f425f++},_0x5674a8));}_0x5688fd['push'](_['merge']({'app':_0xa7fd('0x12'),'appdata':util['format']('SIP/%s,%s',_0x5e9884[_0xa7fd('0x13')],_0x1521cb['options']?_0x1521cb['options'][_0xa7fd('0x14')](''):''),'priority':_0x3f425f++},_0x5674a8));if(_0x1521cb['record']){_0x5688fd[_0xa7fd('0xd')](_[_0xa7fd('0x8')]({'app':'StopMixMonitor','priority':_0x3f425f++},_0x5674a8));}return _0x5688fd;};var getChanSpyApplications=function(_0x4a1a60,_0x5ae2bd){var _0x57bd62=[];for(var _0x4955ae=0x0,_0xa3cc4c=0x1;_0x4955ae<_0x5ae2bd['length'];_0x4955ae++,_0xa3cc4c=0x1){_0x57bd62=_0x57bd62[_0xa7fd('0x15')](getUserApplications(_0x4a1a60,_0x5ae2bd[_0x4955ae],_0x5ae2bd[_0x4955ae][_0xa7fd('0x16')]));if(_0x5ae2bd[_0x4955ae][_0xa7fd('0x16')]!=_0x5ae2bd[_0x4955ae][_0xa7fd('0x13')]){_0x57bd62=_0x57bd62[_0xa7fd('0x15')](getUserApplications(_0x4a1a60,_0x5ae2bd[_0x4955ae],_0x5ae2bd[_0x4955ae][_0xa7fd('0x13')]));}}return _0x57bd62;};var getChanSpyPromise=function(_0x535674,_0x114934){return new BPromise(function(_0x4d359c,_0x248a9e){return _0x535674[_0xa7fd('0x17')][_0xa7fd('0x18')]({'attributes':['id',_0xa7fd('0x13'),'internal'],'where':{'role':'agent','chanspy':!![]},'raw':!![]})['then'](function(_0x12b83b){if(_0x12b83b){return _0x4d359c(getChanSpyApplications(_0x114934,_0x12b83b));}return _0x4d359c([]);})[_0xa7fd('0x19')](function(_0x23e3a2){_0x248a9e(_0x23e3a2);});});};module[_0xa7fd('0x1a')]=function(_0x8cfcee,_0x386ba5){var _0x599b01=_0x8cfcee[_0xa7fd('0x1b')];return _0x8cfcee['define'](_0xa7fd('0x1c'),attributes,{'tableName':'voice_chanspy','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x41fd31,_0x162664,_0x4bc58e){return getChanSpyPromise(_0x599b01,_0x41fd31)[_0xa7fd('0x1d')](function(_0x391376){if(_0x391376&&_0x391376[_0xa7fd('0x1e')]){return _0x599b01['VoiceExtension'][_0xa7fd('0x1f')](_0x391376);}})['then'](function(){_0x4bc58e();})[_0xa7fd('0x19')](function(_0x4d67b9){_0x4bc58e(_0x4d67b9);});},'afterUpdate':function(_0x128e92,_0xa93fec,_0x3fc865){return _0x599b01[_0xa7fd('0x20')][_0xa7fd('0x21')]({'where':{'ChanSpyId':_0x128e92['id']}})['then'](function(){return getChanSpyPromise(_0x599b01,_0x128e92);})[_0xa7fd('0x1d')](function(_0x2de429){if(_0x2de429&&_0x2de429[_0xa7fd('0x1e')]){return _0x599b01[_0xa7fd('0x20')]['bulkCreate'](_0x2de429);}})['then'](function(){_0x3fc865();})[_0xa7fd('0x19')](function(_0xda59e4){_0x3fc865(_0xda59e4);});},'afterDestroy':function(_0x444687,_0x584605,_0x2a2b48){return _0x599b01[_0xa7fd('0x20')]['destroy']({'where':{'ChanSpyId':_0x444687['id']}})[_0xa7fd('0x1d')](function(){_0x2a2b48();})['catch'](function(_0xc6c3d){_0x2a2b48(_0xc6c3d);});}}});};