125c11847c1b1f49ca8d73c83e1c8c7aa50ad34f
[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 _0x0b40=['define','VoiceChanSpy','voice_chanspy','VoiceExtension','bulkCreate','destroy','util','bluebird','from-sip','format','%s%s','prefix','push','merge','Set','CDR(type)=%s','chanspy','MixMonitor','${UNIQUEID}.%s,a','recordingFormat','auth','Authenticate','password','SIP/%s,%s','name','options','record','StopMixMonitor','length','concat','internal','User','findAll','then','catch','exports'];(function(_0x205852,_0x184d90){var _0x491d8d=function(_0x53f919){while(--_0x53f919){_0x205852['push'](_0x205852['shift']());}};_0x491d8d(++_0x184d90);}(_0x0b40,0xba));var _0x00b4=function(_0x22f8ab,_0x15d8ff){_0x22f8ab=_0x22f8ab-0x0;var _0x2a70e5=_0x0b40[_0x22f8ab];return _0x2a70e5;};'use strict';var _=require('lodash');var util=require(_0x00b4('0x0'));var BPromise=require(_0x00b4('0x1'));var attributes=require('./voiceChanSpy.attributes');var getUserApplications=function(_0x2a5a0f,_0x309480,_0xa2cb7f){var _0x173af6=0x1;var _0x350fba=[];var _0x40d4f4={'context':_0x309480['context']||_0x00b4('0x2'),'exten':util[_0x00b4('0x3')](_0x00b4('0x4'),_0x2a5a0f[_0x00b4('0x5')],_0xa2cb7f),'type':'system','isApp':![],'ChanSpyId':_0x2a5a0f['id'],'UserId':_0x309480['id']};_0x350fba[_0x00b4('0x6')](_[_0x00b4('0x7')]({'app':_0x00b4('0x8'),'appdata':util['format'](_0x00b4('0x9'),_0x00b4('0xa')),'priority':_0x173af6++},_0x40d4f4));if(_0x2a5a0f['record']){_0x350fba['push'](_[_0x00b4('0x7')]({'app':_0x00b4('0xb'),'appdata':util[_0x00b4('0x3')](_0x00b4('0xc'),_0x2a5a0f[_0x00b4('0xd')]),'priority':_0x173af6++},_0x40d4f4));}if(_0x2a5a0f[_0x00b4('0xe')]){_0x350fba[_0x00b4('0x6')](_[_0x00b4('0x7')]({'app':_0x00b4('0xf'),'appdata':_0x2a5a0f[_0x00b4('0x10')],'priority':_0x173af6++},_0x40d4f4));}_0x350fba[_0x00b4('0x6')](_[_0x00b4('0x7')]({'app':'ChanSpy','appdata':util['format'](_0x00b4('0x11'),_0x309480[_0x00b4('0x12')],_0x2a5a0f[_0x00b4('0x13')]?_0x2a5a0f[_0x00b4('0x13')]['join'](''):''),'priority':_0x173af6++},_0x40d4f4));if(_0x2a5a0f[_0x00b4('0x14')]){_0x350fba[_0x00b4('0x6')](_[_0x00b4('0x7')]({'app':_0x00b4('0x15'),'priority':_0x173af6++},_0x40d4f4));}return _0x350fba;};var getChanSpyApplications=function(_0x1ba0b0,_0x11983e){var _0xb13dae=[];for(var _0x56e54c=0x0,_0x253e76=0x1;_0x56e54c<_0x11983e[_0x00b4('0x16')];_0x56e54c++,_0x253e76=0x1){_0xb13dae=_0xb13dae[_0x00b4('0x17')](getUserApplications(_0x1ba0b0,_0x11983e[_0x56e54c],_0x11983e[_0x56e54c][_0x00b4('0x18')]));if(_0x11983e[_0x56e54c][_0x00b4('0x18')]!=_0x11983e[_0x56e54c]['name']){_0xb13dae=_0xb13dae[_0x00b4('0x17')](getUserApplications(_0x1ba0b0,_0x11983e[_0x56e54c],_0x11983e[_0x56e54c][_0x00b4('0x12')]));}}return _0xb13dae;};var getChanSpyPromise=function(_0x1ebb7a,_0x5ec333){return new BPromise(function(_0x42b07c,_0x277e32){return _0x1ebb7a[_0x00b4('0x19')][_0x00b4('0x1a')]({'attributes':['id',_0x00b4('0x12'),'internal'],'where':{'role':'agent','chanspy':!![]},'raw':!![]})[_0x00b4('0x1b')](function(_0x252e21){if(_0x252e21){return _0x42b07c(getChanSpyApplications(_0x5ec333,_0x252e21));}return _0x42b07c([]);})[_0x00b4('0x1c')](function(_0x27ea17){_0x277e32(_0x27ea17);});});};module[_0x00b4('0x1d')]=function(_0x5234a6,_0x41b33d){var _0x16fcec=_0x5234a6['models'];return _0x5234a6[_0x00b4('0x1e')](_0x00b4('0x1f'),attributes,{'tableName':_0x00b4('0x20'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x5bd552,_0x130984,_0x2d8063){return getChanSpyPromise(_0x16fcec,_0x5bd552)[_0x00b4('0x1b')](function(_0x50d48d){if(_0x50d48d&&_0x50d48d['length']){return _0x16fcec[_0x00b4('0x21')][_0x00b4('0x22')](_0x50d48d);}})[_0x00b4('0x1b')](function(){_0x2d8063();})[_0x00b4('0x1c')](function(_0x3cf0ff){_0x2d8063(_0x3cf0ff);});},'afterUpdate':function(_0x3f2e95,_0x591363,_0x35f219){return _0x16fcec[_0x00b4('0x21')][_0x00b4('0x23')]({'where':{'ChanSpyId':_0x3f2e95['id']}})[_0x00b4('0x1b')](function(){return getChanSpyPromise(_0x16fcec,_0x3f2e95);})[_0x00b4('0x1b')](function(_0x21cc39){if(_0x21cc39&&_0x21cc39[_0x00b4('0x16')]){return _0x16fcec[_0x00b4('0x21')][_0x00b4('0x22')](_0x21cc39);}})[_0x00b4('0x1b')](function(){_0x35f219();})[_0x00b4('0x1c')](function(_0x4d44a0){_0x35f219(_0x4d44a0);});},'afterDestroy':function(_0x188a6e,_0x394435,_0x416af9){return _0x16fcec[_0x00b4('0x21')][_0x00b4('0x23')]({'where':{'ChanSpyId':_0x188a6e['id']}})['then'](function(){_0x416af9();})[_0x00b4('0x1c')](function(_0x4afdfe){_0x416af9(_0x4afdfe);});}}});};