Built motion from commit a61a4a20.|2.5.46
[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 _0x1061=['push','Set','CDR(type)=%s','chanspy','merge','MixMonitor','${UNIQUEID}.%s,a','recordingFormat','auth','Authenticate','name','options','record','StopMixMonitor','concat','internal','User','findAll','models','voice_chanspy','then','length','VoiceExtension','bulkCreate','catch','destroy','util','bluebird','context','from-sip','format','%s%s'];(function(_0x26bc7a,_0x1ae963){var _0x2a496d=function(_0x5be56e){while(--_0x5be56e){_0x26bc7a['push'](_0x26bc7a['shift']());}};_0x2a496d(++_0x1ae963);}(_0x1061,0x1ba));var _0x1106=function(_0x271848,_0x3cfcc8){_0x271848=_0x271848-0x0;var _0x473412=_0x1061[_0x271848];return _0x473412;};'use strict';var _=require('lodash');var util=require(_0x1106('0x0'));var BPromise=require(_0x1106('0x1'));var attributes=require('./voiceChanSpy.attributes');var getUserApplications=function(_0x2158a,_0x438903,_0x12ad9f){var _0x32bec7=0x1;var _0xe5e309=[];var _0x2bff50={'context':_0x438903[_0x1106('0x2')]||_0x1106('0x3'),'exten':util[_0x1106('0x4')](_0x1106('0x5'),_0x2158a['prefix'],_0x12ad9f),'type':'system','isApp':![],'ChanSpyId':_0x2158a['id'],'UserId':_0x438903['id']};_0xe5e309[_0x1106('0x6')](_['merge']({'app':_0x1106('0x7'),'appdata':util[_0x1106('0x4')](_0x1106('0x8'),_0x1106('0x9')),'priority':_0x32bec7++},_0x2bff50));if(_0x2158a['record']){_0xe5e309[_0x1106('0x6')](_[_0x1106('0xa')]({'app':_0x1106('0xb'),'appdata':util[_0x1106('0x4')](_0x1106('0xc'),_0x2158a[_0x1106('0xd')]),'priority':_0x32bec7++},_0x2bff50));}if(_0x2158a[_0x1106('0xe')]){_0xe5e309[_0x1106('0x6')](_[_0x1106('0xa')]({'app':_0x1106('0xf'),'appdata':_0x2158a['password'],'priority':_0x32bec7++},_0x2bff50));}_0xe5e309[_0x1106('0x6')](_[_0x1106('0xa')]({'app':'ChanSpy','appdata':util[_0x1106('0x4')]('SIP/%s,%s',_0x438903[_0x1106('0x10')],_0x2158a[_0x1106('0x11')]?_0x2158a[_0x1106('0x11')]['join'](''):''),'priority':_0x32bec7++},_0x2bff50));if(_0x2158a[_0x1106('0x12')]){_0xe5e309['push'](_['merge']({'app':_0x1106('0x13'),'priority':_0x32bec7++},_0x2bff50));}return _0xe5e309;};var getChanSpyApplications=function(_0x38fe17,_0xcd303d){var _0x96d771=[];for(var _0x285515=0x0,_0x3d928e=0x1;_0x285515<_0xcd303d['length'];_0x285515++,_0x3d928e=0x1){_0x96d771=_0x96d771[_0x1106('0x14')](getUserApplications(_0x38fe17,_0xcd303d[_0x285515],_0xcd303d[_0x285515][_0x1106('0x15')]));if(_0xcd303d[_0x285515][_0x1106('0x15')]!=_0xcd303d[_0x285515][_0x1106('0x10')]){_0x96d771=_0x96d771[_0x1106('0x14')](getUserApplications(_0x38fe17,_0xcd303d[_0x285515],_0xcd303d[_0x285515][_0x1106('0x10')]));}}return _0x96d771;};var getChanSpyPromise=function(_0x3e21bb,_0x443e16){return new BPromise(function(_0x43e4d6,_0x53da40){return _0x3e21bb[_0x1106('0x16')][_0x1106('0x17')]({'attributes':['id','name',_0x1106('0x15')],'where':{'role':'agent','chanspy':!![]},'raw':!![]})['then'](function(_0x5c8adc){if(_0x5c8adc){return _0x43e4d6(getChanSpyApplications(_0x443e16,_0x5c8adc));}return _0x43e4d6([]);})['catch'](function(_0xafdb9e){_0x53da40(_0xafdb9e);});});};module['exports']=function(_0x3959d1,_0x318180){var _0x233627=_0x3959d1[_0x1106('0x18')];return _0x3959d1['define']('VoiceChanSpy',attributes,{'tableName':_0x1106('0x19'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x2ea47c,_0x3523dd,_0x111262){return getChanSpyPromise(_0x233627,_0x2ea47c)[_0x1106('0x1a')](function(_0x431ad5){if(_0x431ad5&&_0x431ad5[_0x1106('0x1b')]){return _0x233627[_0x1106('0x1c')][_0x1106('0x1d')](_0x431ad5);}})[_0x1106('0x1a')](function(){_0x111262();})[_0x1106('0x1e')](function(_0x515cdb){_0x111262(_0x515cdb);});},'afterUpdate':function(_0x25baf8,_0x183d1c,_0x431773){return _0x233627[_0x1106('0x1c')][_0x1106('0x1f')]({'where':{'ChanSpyId':_0x25baf8['id']}})[_0x1106('0x1a')](function(){return getChanSpyPromise(_0x233627,_0x25baf8);})[_0x1106('0x1a')](function(_0x13edbb){if(_0x13edbb&&_0x13edbb['length']){return _0x233627[_0x1106('0x1c')]['bulkCreate'](_0x13edbb);}})[_0x1106('0x1a')](function(){_0x431773();})[_0x1106('0x1e')](function(_0x1bac99){_0x431773(_0x1bac99);});},'afterDestroy':function(_0x17f79c,_0x391869,_0x10c6af){return _0x233627['VoiceExtension'][_0x1106('0x1f')]({'where':{'ChanSpyId':_0x17f79c['id']}})[_0x1106('0x1a')](function(){_0x10c6af();})['catch'](function(_0x50eb48){_0x10c6af(_0x50eb48);});}}});};