d36f8f16e76f2abe3fe7e6863710e68e164dcbeb
[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 _0x1ef8=['record','merge','MixMonitor','${UNIQUEID}.%s,a','recordingFormat','auth','Authenticate','password','ChanSpy','SIP/%s,%s','name','options','join','StopMixMonitor','length','internal','User','findAll','agent','then','exports','models','define','VoiceChanSpy','VoiceExtension','bulkCreate','destroy','catch','lodash','%s%s','prefix','system','push','Set','format','CDR(type)=%s','chanspy'];(function(_0xecdcbf,_0xd4aa98){var _0x4f79bd=function(_0x510475){while(--_0x510475){_0xecdcbf['push'](_0xecdcbf['shift']());}};_0x4f79bd(++_0xd4aa98);}(_0x1ef8,0xd5));var _0x81ef=function(_0x3409e9,_0x473eaa){_0x3409e9=_0x3409e9-0x0;var _0x5276be=_0x1ef8[_0x3409e9];return _0x5276be;};'use strict';var _=require(_0x81ef('0x0'));var util=require('util');var BPromise=require('bluebird');var attributes=require('./voiceChanSpy.attributes');var getUserApplications=function(_0x52b69f,_0x1d17cc,_0x4005a2){var _0x1f990e=0x1;var _0x6a5df=[];var _0x28ed6e={'context':_0x1d17cc['context']||'from-sip','exten':util['format'](_0x81ef('0x1'),_0x52b69f[_0x81ef('0x2')],_0x4005a2),'type':_0x81ef('0x3'),'isApp':![],'ChanSpyId':_0x52b69f['id'],'UserId':_0x1d17cc['id']};_0x6a5df[_0x81ef('0x4')](_['merge']({'app':_0x81ef('0x5'),'appdata':util[_0x81ef('0x6')](_0x81ef('0x7'),_0x81ef('0x8')),'priority':_0x1f990e++},_0x28ed6e));if(_0x52b69f[_0x81ef('0x9')]){_0x6a5df['push'](_[_0x81ef('0xa')]({'app':_0x81ef('0xb'),'appdata':util['format'](_0x81ef('0xc'),_0x52b69f[_0x81ef('0xd')]),'priority':_0x1f990e++},_0x28ed6e));}if(_0x52b69f[_0x81ef('0xe')]){_0x6a5df[_0x81ef('0x4')](_[_0x81ef('0xa')]({'app':_0x81ef('0xf'),'appdata':_0x52b69f[_0x81ef('0x10')],'priority':_0x1f990e++},_0x28ed6e));}_0x6a5df[_0x81ef('0x4')](_[_0x81ef('0xa')]({'app':_0x81ef('0x11'),'appdata':util[_0x81ef('0x6')](_0x81ef('0x12'),_0x1d17cc[_0x81ef('0x13')],_0x52b69f[_0x81ef('0x14')]?_0x52b69f['options'][_0x81ef('0x15')](''):''),'priority':_0x1f990e++},_0x28ed6e));if(_0x52b69f[_0x81ef('0x9')]){_0x6a5df[_0x81ef('0x4')](_[_0x81ef('0xa')]({'app':_0x81ef('0x16'),'priority':_0x1f990e++},_0x28ed6e));}return _0x6a5df;};var getChanSpyApplications=function(_0x238fd6,_0x144929){var _0x416095=[];for(var _0xd1a94b=0x0,_0x4dae0f=0x1;_0xd1a94b<_0x144929[_0x81ef('0x17')];_0xd1a94b++,_0x4dae0f=0x1){_0x416095=_0x416095['concat'](getUserApplications(_0x238fd6,_0x144929[_0xd1a94b],_0x144929[_0xd1a94b]['internal']));if(_0x144929[_0xd1a94b][_0x81ef('0x18')]!=_0x144929[_0xd1a94b][_0x81ef('0x13')]){_0x416095=_0x416095['concat'](getUserApplications(_0x238fd6,_0x144929[_0xd1a94b],_0x144929[_0xd1a94b]['name']));}}return _0x416095;};var getChanSpyPromise=function(_0x3da16a,_0x250c26){return new BPromise(function(_0x23fe66,_0x2c6dd3){return _0x3da16a[_0x81ef('0x19')][_0x81ef('0x1a')]({'attributes':['id',_0x81ef('0x13'),_0x81ef('0x18')],'where':{'role':_0x81ef('0x1b'),'chanspy':!![]},'raw':!![]})[_0x81ef('0x1c')](function(_0x219e27){if(_0x219e27){return _0x23fe66(getChanSpyApplications(_0x250c26,_0x219e27));}return _0x23fe66([]);})['catch'](function(_0x5f49f6){_0x2c6dd3(_0x5f49f6);});});};module[_0x81ef('0x1d')]=function(_0x3f6a78,_0x511341){var _0x3ad6ac=_0x3f6a78[_0x81ef('0x1e')];return _0x3f6a78[_0x81ef('0x1f')](_0x81ef('0x20'),attributes,{'tableName':'voice_chanspy','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x37596b,_0x481683,_0x381396){return getChanSpyPromise(_0x3ad6ac,_0x37596b)[_0x81ef('0x1c')](function(_0x3cbce8){if(_0x3cbce8&&_0x3cbce8[_0x81ef('0x17')]){return _0x3ad6ac[_0x81ef('0x21')][_0x81ef('0x22')](_0x3cbce8);}})[_0x81ef('0x1c')](function(){_0x381396();})['catch'](function(_0x43c04b){_0x381396(_0x43c04b);});},'afterUpdate':function(_0x4dff29,_0x20900f,_0x357cdf){return _0x3ad6ac['VoiceExtension'][_0x81ef('0x23')]({'where':{'ChanSpyId':_0x4dff29['id']}})[_0x81ef('0x1c')](function(){return getChanSpyPromise(_0x3ad6ac,_0x4dff29);})[_0x81ef('0x1c')](function(_0x4ae554){if(_0x4ae554&&_0x4ae554[_0x81ef('0x17')]){return _0x3ad6ac['VoiceExtension'][_0x81ef('0x22')](_0x4ae554);}})[_0x81ef('0x1c')](function(){_0x357cdf();})[_0x81ef('0x24')](function(_0x16a9e1){_0x357cdf(_0x16a9e1);});},'afterDestroy':function(_0x211f1c,_0x31bed8,_0x232f25){return _0x3ad6ac[_0x81ef('0x21')][_0x81ef('0x23')]({'where':{'ChanSpyId':_0x211f1c['id']}})[_0x81ef('0x1c')](function(){_0x232f25();})[_0x81ef('0x24')](function(_0x1d089b){_0x232f25(_0x1d089b);});}}});};