d31c4af143ca2b38e267d513c6d6427f92ee626e
[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 _0x8c30=['util','bluebird','./voiceChanSpy.attributes','from-sip','format','prefix','system','push','merge','Set','chanspy','record','MixMonitor','${UNIQUEID}.%s,a','auth','Authenticate','password','ChanSpy','SIP/%s,%s','name','options','concat','internal','findAll','then','catch','exports','define','VoiceChanSpy','voice_chanspy','length','VoiceExtension','destroy','bulkCreate','lodash'];(function(_0x5b2ade,_0x1bcb99){var _0x1cd911=function(_0x44730f){while(--_0x44730f){_0x5b2ade['push'](_0x5b2ade['shift']());}};_0x1cd911(++_0x1bcb99);}(_0x8c30,0x1c6));var _0x08c3=function(_0x38d909,_0xeac8e4){_0x38d909=_0x38d909-0x0;var _0x2b6a3a=_0x8c30[_0x38d909];return _0x2b6a3a;};'use strict';var _=require(_0x08c3('0x0'));var util=require(_0x08c3('0x1'));var BPromise=require(_0x08c3('0x2'));var attributes=require(_0x08c3('0x3'));var getUserApplications=function(_0x1fafe0,_0x47291b,_0x885acb){var _0x5234ef=0x1;var _0x45c3d5=[];var _0x1a7a7a={'context':_0x47291b['context']||_0x08c3('0x4'),'exten':util[_0x08c3('0x5')]('%s%s',_0x1fafe0[_0x08c3('0x6')],_0x885acb),'type':_0x08c3('0x7'),'isApp':![],'ChanSpyId':_0x1fafe0['id'],'UserId':_0x47291b['id']};_0x45c3d5[_0x08c3('0x8')](_[_0x08c3('0x9')]({'app':_0x08c3('0xa'),'appdata':util['format']('CDR(type)=%s',_0x08c3('0xb')),'priority':_0x5234ef++},_0x1a7a7a));if(_0x1fafe0[_0x08c3('0xc')]){_0x45c3d5[_0x08c3('0x8')](_[_0x08c3('0x9')]({'app':_0x08c3('0xd'),'appdata':util[_0x08c3('0x5')](_0x08c3('0xe'),_0x1fafe0['recordingFormat']),'priority':_0x5234ef++},_0x1a7a7a));}if(_0x1fafe0[_0x08c3('0xf')]){_0x45c3d5[_0x08c3('0x8')](_['merge']({'app':_0x08c3('0x10'),'appdata':_0x1fafe0[_0x08c3('0x11')],'priority':_0x5234ef++},_0x1a7a7a));}_0x45c3d5['push'](_[_0x08c3('0x9')]({'app':_0x08c3('0x12'),'appdata':util[_0x08c3('0x5')](_0x08c3('0x13'),_0x47291b[_0x08c3('0x14')],_0x1fafe0['options']?_0x1fafe0[_0x08c3('0x15')]['join'](''):''),'priority':_0x5234ef++},_0x1a7a7a));if(_0x1fafe0[_0x08c3('0xc')]){_0x45c3d5[_0x08c3('0x8')](_[_0x08c3('0x9')]({'app':'StopMixMonitor','priority':_0x5234ef++},_0x1a7a7a));}return _0x45c3d5;};var getChanSpyApplications=function(_0x37df87,_0x46a7b6){var _0x3b41d0=[];for(var _0x2c8e05=0x0,_0x1c0494=0x1;_0x2c8e05<_0x46a7b6['length'];_0x2c8e05++,_0x1c0494=0x1){_0x3b41d0=_0x3b41d0[_0x08c3('0x16')](getUserApplications(_0x37df87,_0x46a7b6[_0x2c8e05],_0x46a7b6[_0x2c8e05]['internal']));if(_0x46a7b6[_0x2c8e05][_0x08c3('0x17')]!=_0x46a7b6[_0x2c8e05][_0x08c3('0x14')]){_0x3b41d0=_0x3b41d0[_0x08c3('0x16')](getUserApplications(_0x37df87,_0x46a7b6[_0x2c8e05],_0x46a7b6[_0x2c8e05][_0x08c3('0x14')]));}}return _0x3b41d0;};var getChanSpyPromise=function(_0xa80322,_0x4413c1){return new BPromise(function(_0x48e88e,_0x132091){return _0xa80322['User'][_0x08c3('0x18')]({'attributes':['id',_0x08c3('0x14'),_0x08c3('0x17')],'where':{'role':'agent','chanspy':!![]},'raw':!![]})[_0x08c3('0x19')](function(_0x55e3b3){if(_0x55e3b3){return _0x48e88e(getChanSpyApplications(_0x4413c1,_0x55e3b3));}return _0x48e88e([]);})[_0x08c3('0x1a')](function(_0x271a7a){_0x132091(_0x271a7a);});});};module[_0x08c3('0x1b')]=function(_0x359a20,_0x4af933){var _0x539631=_0x359a20['models'];return _0x359a20[_0x08c3('0x1c')](_0x08c3('0x1d'),attributes,{'tableName':_0x08c3('0x1e'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x10966d,_0x1b22d4,_0x33561e){return getChanSpyPromise(_0x539631,_0x10966d)['then'](function(_0x445708){if(_0x445708&&_0x445708[_0x08c3('0x1f')]){return _0x539631[_0x08c3('0x20')]['bulkCreate'](_0x445708);}})['then'](function(){_0x33561e();})[_0x08c3('0x1a')](function(_0x226c2b){_0x33561e(_0x226c2b);});},'afterUpdate':function(_0x55cd21,_0x3c0e4a,_0x8b0db6){return _0x539631[_0x08c3('0x20')][_0x08c3('0x21')]({'where':{'ChanSpyId':_0x55cd21['id']}})[_0x08c3('0x19')](function(){return getChanSpyPromise(_0x539631,_0x55cd21);})[_0x08c3('0x19')](function(_0x4b63d3){if(_0x4b63d3&&_0x4b63d3[_0x08c3('0x1f')]){return _0x539631[_0x08c3('0x20')][_0x08c3('0x22')](_0x4b63d3);}})['then'](function(){_0x8b0db6();})[_0x08c3('0x1a')](function(_0x24b8cd){_0x8b0db6(_0x24b8cd);});},'afterDestroy':function(_0x16519c,_0x4ce1a1,_0xb2734d){return _0x539631[_0x08c3('0x20')]['destroy']({'where':{'ChanSpyId':_0x16519c['id']}})['then'](function(){_0xb2734d();})[_0x08c3('0x1a')](function(_0x3a226e){_0xb2734d(_0x3a226e);});}}});};