86a36c9ece69463b9b7879152165d7173182bed5
[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 _0x8b80=['concat','internal','agent','then','catch','exports','models','define','VoiceChanSpy','VoiceExtension','bulkCreate','destroy','bluebird','./voiceChanSpy.attributes','context','from-sip','%s%s','push','merge','Set','format','CDR(type)=%s','chanspy','record','MixMonitor','${UNIQUEID}.%s,a','auth','Authenticate','ChanSpy','SIP/%s,%s','name','options','join','length'];(function(_0x1d5714,_0x2fa5f4){var _0x1b620e=function(_0x9a0a73){while(--_0x9a0a73){_0x1d5714['push'](_0x1d5714['shift']());}};_0x1b620e(++_0x2fa5f4);}(_0x8b80,0x13e));var _0x08b8=function(_0x272638,_0x42b993){_0x272638=_0x272638-0x0;var _0x19d027=_0x8b80[_0x272638];return _0x19d027;};'use strict';var _=require('lodash');var util=require('util');var BPromise=require(_0x08b8('0x0'));var attributes=require(_0x08b8('0x1'));var getUserApplications=function(_0x4fe5e7,_0x38ea79,_0x102c9c){var _0x1d7dbf=0x1;var _0x1f9b15=[];var _0x172bd1={'context':_0x38ea79[_0x08b8('0x2')]||_0x08b8('0x3'),'exten':util['format'](_0x08b8('0x4'),_0x4fe5e7['prefix'],_0x102c9c),'type':'system','isApp':![],'ChanSpyId':_0x4fe5e7['id'],'UserId':_0x38ea79['id']};_0x1f9b15[_0x08b8('0x5')](_[_0x08b8('0x6')]({'app':_0x08b8('0x7'),'appdata':util[_0x08b8('0x8')](_0x08b8('0x9'),_0x08b8('0xa')),'priority':_0x1d7dbf++},_0x172bd1));if(_0x4fe5e7[_0x08b8('0xb')]){_0x1f9b15['push'](_['merge']({'app':_0x08b8('0xc'),'appdata':util['format'](_0x08b8('0xd'),_0x4fe5e7['recordingFormat']),'priority':_0x1d7dbf++},_0x172bd1));}if(_0x4fe5e7[_0x08b8('0xe')]){_0x1f9b15[_0x08b8('0x5')](_[_0x08b8('0x6')]({'app':_0x08b8('0xf'),'appdata':_0x4fe5e7['password'],'priority':_0x1d7dbf++},_0x172bd1));}_0x1f9b15['push'](_['merge']({'app':_0x08b8('0x10'),'appdata':util['format'](_0x08b8('0x11'),_0x38ea79[_0x08b8('0x12')],_0x4fe5e7[_0x08b8('0x13')]?_0x4fe5e7[_0x08b8('0x13')][_0x08b8('0x14')](''):''),'priority':_0x1d7dbf++},_0x172bd1));if(_0x4fe5e7[_0x08b8('0xb')]){_0x1f9b15[_0x08b8('0x5')](_[_0x08b8('0x6')]({'app':'StopMixMonitor','priority':_0x1d7dbf++},_0x172bd1));}return _0x1f9b15;};var getChanSpyApplications=function(_0x2cc645,_0x697fe4){var _0x2f62d0=[];for(var _0x1fa46b=0x0,_0x5f6e6c=0x1;_0x1fa46b<_0x697fe4[_0x08b8('0x15')];_0x1fa46b++,_0x5f6e6c=0x1){_0x2f62d0=_0x2f62d0[_0x08b8('0x16')](getUserApplications(_0x2cc645,_0x697fe4[_0x1fa46b],_0x697fe4[_0x1fa46b][_0x08b8('0x17')]));if(_0x697fe4[_0x1fa46b][_0x08b8('0x17')]!=_0x697fe4[_0x1fa46b][_0x08b8('0x12')]){_0x2f62d0=_0x2f62d0[_0x08b8('0x16')](getUserApplications(_0x2cc645,_0x697fe4[_0x1fa46b],_0x697fe4[_0x1fa46b][_0x08b8('0x12')]));}}return _0x2f62d0;};var getChanSpyPromise=function(_0x2358d6,_0xbeda3f){return new BPromise(function(_0x50f838,_0x20ce83){return _0x2358d6['User']['findAll']({'attributes':['id',_0x08b8('0x12'),_0x08b8('0x17')],'where':{'role':_0x08b8('0x18'),'chanspy':!![]},'raw':!![]})[_0x08b8('0x19')](function(_0xfe41c9){if(_0xfe41c9){return _0x50f838(getChanSpyApplications(_0xbeda3f,_0xfe41c9));}return _0x50f838([]);})[_0x08b8('0x1a')](function(_0x50c8cd){_0x20ce83(_0x50c8cd);});});};module[_0x08b8('0x1b')]=function(_0x459296,_0x30cacf){var _0x4b2a5d=_0x459296[_0x08b8('0x1c')];return _0x459296[_0x08b8('0x1d')](_0x08b8('0x1e'),attributes,{'tableName':'voice_chanspy','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x20a843,_0xcef7d8,_0x265cf9){return getChanSpyPromise(_0x4b2a5d,_0x20a843)[_0x08b8('0x19')](function(_0x570366){if(_0x570366&&_0x570366[_0x08b8('0x15')]){return _0x4b2a5d[_0x08b8('0x1f')][_0x08b8('0x20')](_0x570366);}})[_0x08b8('0x19')](function(){_0x265cf9();})[_0x08b8('0x1a')](function(_0xea0477){_0x265cf9(_0xea0477);});},'afterUpdate':function(_0x1ed85d,_0x56e973,_0x27ccad){return _0x4b2a5d[_0x08b8('0x1f')][_0x08b8('0x21')]({'where':{'ChanSpyId':_0x1ed85d['id']}})[_0x08b8('0x19')](function(){return getChanSpyPromise(_0x4b2a5d,_0x1ed85d);})[_0x08b8('0x19')](function(_0x5d5064){if(_0x5d5064&&_0x5d5064[_0x08b8('0x15')]){return _0x4b2a5d[_0x08b8('0x1f')][_0x08b8('0x20')](_0x5d5064);}})[_0x08b8('0x19')](function(){_0x27ccad();})[_0x08b8('0x1a')](function(_0x307822){_0x27ccad(_0x307822);});},'afterDestroy':function(_0x5dd6e3,_0x4066a9,_0x39f702){return _0x4b2a5d[_0x08b8('0x1f')][_0x08b8('0x21')]({'where':{'ChanSpyId':_0x5dd6e3['id']}})[_0x08b8('0x19')](function(){_0x39f702();})[_0x08b8('0x1a')](function(_0x35a660){_0x39f702(_0x35a660);});}}});};