Built motion from commit 092f8824.|2.5.49
[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 _0x1f79=['./voiceChanSpy.attributes','context','from-sip','format','%s%s','prefix','push','Set','CDR(type)=%s','chanspy','record','MixMonitor','${UNIQUEID}.%s,a','recordingFormat','auth','merge','Authenticate','ChanSpy','name','options','join','StopMixMonitor','length','internal','findAll','then','catch','exports','models','define','VoiceChanSpy','VoiceExtension','bulkCreate','destroy','lodash','util'];(function(_0xce6f11,_0x3c3137){var _0x35b709=function(_0x1755c6){while(--_0x1755c6){_0xce6f11['push'](_0xce6f11['shift']());}};_0x35b709(++_0x3c3137);}(_0x1f79,0x11e));var _0x91f7=function(_0x3bad9d,_0x2b4f24){_0x3bad9d=_0x3bad9d-0x0;var _0x5ed540=_0x1f79[_0x3bad9d];return _0x5ed540;};'use strict';var _=require(_0x91f7('0x0'));var util=require(_0x91f7('0x1'));var BPromise=require('bluebird');var attributes=require(_0x91f7('0x2'));var getUserApplications=function(_0x52458b,_0xe3457,_0x119074){var _0x266802=0x1;var _0x5bb196=[];var _0x9f4b95={'context':_0xe3457[_0x91f7('0x3')]||_0x91f7('0x4'),'exten':util[_0x91f7('0x5')](_0x91f7('0x6'),_0x52458b[_0x91f7('0x7')],_0x119074),'type':'system','isApp':![],'ChanSpyId':_0x52458b['id'],'UserId':_0xe3457['id']};_0x5bb196[_0x91f7('0x8')](_['merge']({'app':_0x91f7('0x9'),'appdata':util['format'](_0x91f7('0xa'),_0x91f7('0xb')),'priority':_0x266802++},_0x9f4b95));if(_0x52458b[_0x91f7('0xc')]){_0x5bb196[_0x91f7('0x8')](_['merge']({'app':_0x91f7('0xd'),'appdata':util[_0x91f7('0x5')](_0x91f7('0xe'),_0x52458b[_0x91f7('0xf')]),'priority':_0x266802++},_0x9f4b95));}if(_0x52458b[_0x91f7('0x10')]){_0x5bb196[_0x91f7('0x8')](_[_0x91f7('0x11')]({'app':_0x91f7('0x12'),'appdata':_0x52458b['password'],'priority':_0x266802++},_0x9f4b95));}_0x5bb196['push'](_[_0x91f7('0x11')]({'app':_0x91f7('0x13'),'appdata':util[_0x91f7('0x5')]('SIP/%s,%s',_0xe3457[_0x91f7('0x14')],_0x52458b['options']?_0x52458b[_0x91f7('0x15')][_0x91f7('0x16')](''):''),'priority':_0x266802++},_0x9f4b95));if(_0x52458b[_0x91f7('0xc')]){_0x5bb196[_0x91f7('0x8')](_['merge']({'app':_0x91f7('0x17'),'priority':_0x266802++},_0x9f4b95));}return _0x5bb196;};var getChanSpyApplications=function(_0x18465e,_0x3e1f52){var _0x19c5a8=[];for(var _0x40fe61=0x0,_0x226fb0=0x1;_0x40fe61<_0x3e1f52[_0x91f7('0x18')];_0x40fe61++,_0x226fb0=0x1){_0x19c5a8=_0x19c5a8['concat'](getUserApplications(_0x18465e,_0x3e1f52[_0x40fe61],_0x3e1f52[_0x40fe61][_0x91f7('0x19')]));if(_0x3e1f52[_0x40fe61][_0x91f7('0x19')]!=_0x3e1f52[_0x40fe61][_0x91f7('0x14')]){_0x19c5a8=_0x19c5a8['concat'](getUserApplications(_0x18465e,_0x3e1f52[_0x40fe61],_0x3e1f52[_0x40fe61][_0x91f7('0x14')]));}}return _0x19c5a8;};var getChanSpyPromise=function(_0x404777,_0x40d541){return new BPromise(function(_0xa49259,_0xebcd3a){return _0x404777['User'][_0x91f7('0x1a')]({'attributes':['id','name','internal'],'where':{'role':'agent','chanspy':!![]},'raw':!![]})[_0x91f7('0x1b')](function(_0x4d9d22){if(_0x4d9d22){return _0xa49259(getChanSpyApplications(_0x40d541,_0x4d9d22));}return _0xa49259([]);})[_0x91f7('0x1c')](function(_0x504c28){_0xebcd3a(_0x504c28);});});};module[_0x91f7('0x1d')]=function(_0x4f7978,_0x49f1ca){var _0x4dcb48=_0x4f7978[_0x91f7('0x1e')];return _0x4f7978[_0x91f7('0x1f')](_0x91f7('0x20'),attributes,{'tableName':'voice_chanspy','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x1d1dc5,_0x2b269f,_0x210616){return getChanSpyPromise(_0x4dcb48,_0x1d1dc5)[_0x91f7('0x1b')](function(_0x536920){if(_0x536920&&_0x536920['length']){return _0x4dcb48[_0x91f7('0x21')][_0x91f7('0x22')](_0x536920);}})[_0x91f7('0x1b')](function(){_0x210616();})[_0x91f7('0x1c')](function(_0x52b37c){_0x210616(_0x52b37c);});},'afterUpdate':function(_0x567f14,_0x3ae15b,_0x121128){return _0x4dcb48[_0x91f7('0x21')][_0x91f7('0x23')]({'where':{'ChanSpyId':_0x567f14['id']}})[_0x91f7('0x1b')](function(){return getChanSpyPromise(_0x4dcb48,_0x567f14);})[_0x91f7('0x1b')](function(_0x47972b){if(_0x47972b&&_0x47972b['length']){return _0x4dcb48[_0x91f7('0x21')]['bulkCreate'](_0x47972b);}})[_0x91f7('0x1b')](function(){_0x121128();})['catch'](function(_0x27b777){_0x121128(_0x27b777);});},'afterDestroy':function(_0x42f7ac,_0x1d73ac,_0xd7c2d5){return _0x4dcb48['VoiceExtension'][_0x91f7('0x23')]({'where':{'ChanSpyId':_0x42f7ac['id']}})[_0x91f7('0x1b')](function(){_0xd7c2d5();})['catch'](function(_0x4497af){_0xd7c2d5(_0x4497af);});}}});};