Built motion from commit 775e2a94.|2.6.3
[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 _0x32eb=['push','merge','Set','CDR(type)=%s','chanspy','record','MixMonitor','${UNIQUEID}.%s,a','recordingFormat','auth','Authenticate','format','SIP/%s,%s','name','join','StopMixMonitor','length','internal','concat','catch','exports','models','define','VoiceChanSpy','voice_chanspy','then','VoiceExtension','destroy','bulkCreate','util','bluebird','./voiceChanSpy.attributes','context','from-sip','%s%s','system'];(function(_0x57b677,_0x10e96c){var _0x2e1faf=function(_0x760922){while(--_0x760922){_0x57b677['push'](_0x57b677['shift']());}};_0x2e1faf(++_0x10e96c);}(_0x32eb,0x1a9));var _0xb32e=function(_0x476b5f,_0x1f9952){_0x476b5f=_0x476b5f-0x0;var _0x5a23d8=_0x32eb[_0x476b5f];return _0x5a23d8;};'use strict';var _=require('lodash');var util=require(_0xb32e('0x0'));var BPromise=require(_0xb32e('0x1'));var attributes=require(_0xb32e('0x2'));var getUserApplications=function(_0x5aabe4,_0x1ad32d,_0x3a035c){var _0x5d7278=0x1;var _0xb25b6f=[];var _0x1ef26c={'context':_0x1ad32d[_0xb32e('0x3')]||_0xb32e('0x4'),'exten':util['format'](_0xb32e('0x5'),_0x5aabe4['prefix'],_0x3a035c),'type':_0xb32e('0x6'),'isApp':![],'ChanSpyId':_0x5aabe4['id'],'UserId':_0x1ad32d['id']};_0xb25b6f[_0xb32e('0x7')](_[_0xb32e('0x8')]({'app':_0xb32e('0x9'),'appdata':util['format'](_0xb32e('0xa'),_0xb32e('0xb')),'priority':_0x5d7278++},_0x1ef26c));if(_0x5aabe4[_0xb32e('0xc')]){_0xb25b6f[_0xb32e('0x7')](_[_0xb32e('0x8')]({'app':_0xb32e('0xd'),'appdata':util['format'](_0xb32e('0xe'),_0x5aabe4[_0xb32e('0xf')]),'priority':_0x5d7278++},_0x1ef26c));}if(_0x5aabe4[_0xb32e('0x10')]){_0xb25b6f['push'](_['merge']({'app':_0xb32e('0x11'),'appdata':_0x5aabe4['password'],'priority':_0x5d7278++},_0x1ef26c));}_0xb25b6f[_0xb32e('0x7')](_[_0xb32e('0x8')]({'app':'ChanSpy','appdata':util[_0xb32e('0x12')](_0xb32e('0x13'),_0x1ad32d[_0xb32e('0x14')],_0x5aabe4['options']?_0x5aabe4['options'][_0xb32e('0x15')](''):''),'priority':_0x5d7278++},_0x1ef26c));if(_0x5aabe4[_0xb32e('0xc')]){_0xb25b6f['push'](_[_0xb32e('0x8')]({'app':_0xb32e('0x16'),'priority':_0x5d7278++},_0x1ef26c));}return _0xb25b6f;};var getChanSpyApplications=function(_0x459c00,_0x3d0187){var _0x484603=[];for(var _0x226ba0=0x0,_0x536884=0x1;_0x226ba0<_0x3d0187[_0xb32e('0x17')];_0x226ba0++,_0x536884=0x1){_0x484603=_0x484603['concat'](getUserApplications(_0x459c00,_0x3d0187[_0x226ba0],_0x3d0187[_0x226ba0][_0xb32e('0x18')]));if(_0x3d0187[_0x226ba0][_0xb32e('0x18')]!=_0x3d0187[_0x226ba0][_0xb32e('0x14')]){_0x484603=_0x484603[_0xb32e('0x19')](getUserApplications(_0x459c00,_0x3d0187[_0x226ba0],_0x3d0187[_0x226ba0][_0xb32e('0x14')]));}}return _0x484603;};var getChanSpyPromise=function(_0x39d2d9,_0x1f5bf7){return new BPromise(function(_0x295db3,_0xd47ee8){return _0x39d2d9['User']['findAll']({'attributes':['id','name',_0xb32e('0x18')],'where':{'role':'agent','chanspy':!![]},'raw':!![]})['then'](function(_0x59d38a){if(_0x59d38a){return _0x295db3(getChanSpyApplications(_0x1f5bf7,_0x59d38a));}return _0x295db3([]);})[_0xb32e('0x1a')](function(_0x2f545a){_0xd47ee8(_0x2f545a);});});};module[_0xb32e('0x1b')]=function(_0x582b2c,_0x301b2e){var _0x1b27e8=_0x582b2c[_0xb32e('0x1c')];return _0x582b2c[_0xb32e('0x1d')](_0xb32e('0x1e'),attributes,{'tableName':_0xb32e('0x1f'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x4796d8,_0x3050a2,_0x34a678){return getChanSpyPromise(_0x1b27e8,_0x4796d8)[_0xb32e('0x20')](function(_0x5ca01a){if(_0x5ca01a&&_0x5ca01a[_0xb32e('0x17')]){return _0x1b27e8[_0xb32e('0x21')]['bulkCreate'](_0x5ca01a);}})[_0xb32e('0x20')](function(){_0x34a678();})['catch'](function(_0x4e1168){_0x34a678(_0x4e1168);});},'afterUpdate':function(_0x5c1823,_0x29b8c7,_0x267589){return _0x1b27e8[_0xb32e('0x21')][_0xb32e('0x22')]({'where':{'ChanSpyId':_0x5c1823['id']}})[_0xb32e('0x20')](function(){return getChanSpyPromise(_0x1b27e8,_0x5c1823);})[_0xb32e('0x20')](function(_0x396c7e){if(_0x396c7e&&_0x396c7e[_0xb32e('0x17')]){return _0x1b27e8['VoiceExtension'][_0xb32e('0x23')](_0x396c7e);}})[_0xb32e('0x20')](function(){_0x267589();})[_0xb32e('0x1a')](function(_0x90eab8){_0x267589(_0x90eab8);});},'afterDestroy':function(_0x28c189,_0x57f5e8,_0x19c887){return _0x1b27e8[_0xb32e('0x21')][_0xb32e('0x22')]({'where':{'ChanSpyId':_0x28c189['id']}})[_0xb32e('0x20')](function(){_0x19c887();})['catch'](function(_0x52d664){_0x19c887(_0x52d664);});}}});};