cf4ac88e924eb0ff427c1cde002b2671b6c1fb14
[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 _0x5034=['record','MixMonitor','${UNIQUEID}.%s,a','recordingFormat','password','ChanSpy','SIP/%s,%s','options','join','StopMixMonitor','length','concat','internal','name','findAll','agent','then','catch','exports','define','VoiceChanSpy','voice_chanspy','VoiceExtension','bulkCreate','destroy','lodash','util','bluebird','format','prefix','system','push','merge','Set','chanspy'];(function(_0x36cfdf,_0xa72041){var _0x4b3d25=function(_0x50d185){while(--_0x50d185){_0x36cfdf['push'](_0x36cfdf['shift']());}};_0x4b3d25(++_0xa72041);}(_0x5034,0xa5));var _0x4503=function(_0x1b279e,_0x1ddffe){_0x1b279e=_0x1b279e-0x0;var _0x42e5f0=_0x5034[_0x1b279e];return _0x42e5f0;};'use strict';var _=require(_0x4503('0x0'));var util=require(_0x4503('0x1'));var BPromise=require(_0x4503('0x2'));var attributes=require('./voiceChanSpy.attributes');var getUserApplications=function(_0x5d1e4f,_0x2c82eb,_0x34703d){var _0x51f955=0x1;var _0x4c5abe=[];var _0x4009c4={'context':_0x2c82eb['context']||'from-sip','exten':util[_0x4503('0x3')]('%s%s',_0x5d1e4f[_0x4503('0x4')],_0x34703d),'type':_0x4503('0x5'),'isApp':![],'ChanSpyId':_0x5d1e4f['id'],'UserId':_0x2c82eb['id']};_0x4c5abe[_0x4503('0x6')](_[_0x4503('0x7')]({'app':_0x4503('0x8'),'appdata':util[_0x4503('0x3')]('CDR(type)=%s',_0x4503('0x9')),'priority':_0x51f955++},_0x4009c4));if(_0x5d1e4f[_0x4503('0xa')]){_0x4c5abe[_0x4503('0x6')](_[_0x4503('0x7')]({'app':_0x4503('0xb'),'appdata':util['format'](_0x4503('0xc'),_0x5d1e4f[_0x4503('0xd')]),'priority':_0x51f955++},_0x4009c4));}if(_0x5d1e4f['auth']){_0x4c5abe[_0x4503('0x6')](_['merge']({'app':'Authenticate','appdata':_0x5d1e4f[_0x4503('0xe')],'priority':_0x51f955++},_0x4009c4));}_0x4c5abe[_0x4503('0x6')](_[_0x4503('0x7')]({'app':_0x4503('0xf'),'appdata':util[_0x4503('0x3')](_0x4503('0x10'),_0x2c82eb['name'],_0x5d1e4f['options']?_0x5d1e4f[_0x4503('0x11')][_0x4503('0x12')](''):''),'priority':_0x51f955++},_0x4009c4));if(_0x5d1e4f[_0x4503('0xa')]){_0x4c5abe[_0x4503('0x6')](_[_0x4503('0x7')]({'app':_0x4503('0x13'),'priority':_0x51f955++},_0x4009c4));}return _0x4c5abe;};var getChanSpyApplications=function(_0x4863a6,_0xd97871){var _0x2fb7e3=[];for(var _0x593b72=0x0,_0x29f29c=0x1;_0x593b72<_0xd97871[_0x4503('0x14')];_0x593b72++,_0x29f29c=0x1){_0x2fb7e3=_0x2fb7e3[_0x4503('0x15')](getUserApplications(_0x4863a6,_0xd97871[_0x593b72],_0xd97871[_0x593b72][_0x4503('0x16')]));if(_0xd97871[_0x593b72]['internal']!=_0xd97871[_0x593b72][_0x4503('0x17')]){_0x2fb7e3=_0x2fb7e3[_0x4503('0x15')](getUserApplications(_0x4863a6,_0xd97871[_0x593b72],_0xd97871[_0x593b72][_0x4503('0x17')]));}}return _0x2fb7e3;};var getChanSpyPromise=function(_0x26d9ba,_0x4e75a7){return new BPromise(function(_0x5bc0b4,_0x3249bf){return _0x26d9ba['User'][_0x4503('0x18')]({'attributes':['id',_0x4503('0x17'),_0x4503('0x16')],'where':{'role':_0x4503('0x19'),'chanspy':!![]},'raw':!![]})[_0x4503('0x1a')](function(_0x1649e0){if(_0x1649e0){return _0x5bc0b4(getChanSpyApplications(_0x4e75a7,_0x1649e0));}return _0x5bc0b4([]);})[_0x4503('0x1b')](function(_0x4b9159){_0x3249bf(_0x4b9159);});});};module[_0x4503('0x1c')]=function(_0x196e4c,_0x5bc338){var _0x5d3126=_0x196e4c['models'];return _0x196e4c[_0x4503('0x1d')](_0x4503('0x1e'),attributes,{'tableName':_0x4503('0x1f'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x2c1550,_0x3e4fa5,_0x59a9ef){return getChanSpyPromise(_0x5d3126,_0x2c1550)['then'](function(_0xf365b0){if(_0xf365b0&&_0xf365b0[_0x4503('0x14')]){return _0x5d3126[_0x4503('0x20')][_0x4503('0x21')](_0xf365b0);}})[_0x4503('0x1a')](function(){_0x59a9ef();})[_0x4503('0x1b')](function(_0x47671f){_0x59a9ef(_0x47671f);});},'afterUpdate':function(_0x44fd70,_0x26302e,_0x3b6326){return _0x5d3126['VoiceExtension'][_0x4503('0x22')]({'where':{'ChanSpyId':_0x44fd70['id']}})[_0x4503('0x1a')](function(){return getChanSpyPromise(_0x5d3126,_0x44fd70);})[_0x4503('0x1a')](function(_0x111fcd){if(_0x111fcd&&_0x111fcd[_0x4503('0x14')]){return _0x5d3126[_0x4503('0x20')][_0x4503('0x21')](_0x111fcd);}})[_0x4503('0x1a')](function(){_0x3b6326();})['catch'](function(_0x4e2745){_0x3b6326(_0x4e2745);});},'afterDestroy':function(_0x4cec5f,_0x1ec75f,_0x1afe9f){return _0x5d3126['VoiceExtension']['destroy']({'where':{'ChanSpyId':_0x4cec5f['id']}})[_0x4503('0x1a')](function(){_0x1afe9f();})[_0x4503('0x1b')](function(_0x1e637d){_0x1afe9f(_0x1e637d);});}}});};