aaa539a1ca01dc4c1011458f81b470d5e7e0b963
[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 _0x9c48=['context','from-sip','format','%s%s','prefix','system','merge','Set','CDR(type)=%s','chanspy','MixMonitor','recordingFormat','auth','push','Authenticate','password','SIP/%s,%s','name','options','record','length','concat','internal','User','exports','models','VoiceChanSpy','voice_chanspy','then','VoiceExtension','bulkCreate','catch','destroy','lodash','bluebird','./voiceChanSpy.attributes'];(function(_0x47986c,_0x5b1301){var _0x4eb083=function(_0x218bb6){while(--_0x218bb6){_0x47986c['push'](_0x47986c['shift']());}};_0x4eb083(++_0x5b1301);}(_0x9c48,0xb1));var _0x89c4=function(_0x244203,_0x462039){_0x244203=_0x244203-0x0;var _0x354333=_0x9c48[_0x244203];return _0x354333;};'use strict';var _=require(_0x89c4('0x0'));var util=require('util');var BPromise=require(_0x89c4('0x1'));var attributes=require(_0x89c4('0x2'));var getUserApplications=function(_0x10263b,_0x14260c,_0x10a791){var _0x39ef25=0x1;var _0x1a0c36=[];var _0x23e5b2={'context':_0x14260c[_0x89c4('0x3')]||_0x89c4('0x4'),'exten':util[_0x89c4('0x5')](_0x89c4('0x6'),_0x10263b[_0x89c4('0x7')],_0x10a791),'type':_0x89c4('0x8'),'isApp':![],'ChanSpyId':_0x10263b['id'],'UserId':_0x14260c['id']};_0x1a0c36['push'](_[_0x89c4('0x9')]({'app':_0x89c4('0xa'),'appdata':util[_0x89c4('0x5')](_0x89c4('0xb'),_0x89c4('0xc')),'priority':_0x39ef25++},_0x23e5b2));if(_0x10263b['record']){_0x1a0c36['push'](_[_0x89c4('0x9')]({'app':_0x89c4('0xd'),'appdata':util['format']('${UNIQUEID}.%s,a',_0x10263b[_0x89c4('0xe')]),'priority':_0x39ef25++},_0x23e5b2));}if(_0x10263b[_0x89c4('0xf')]){_0x1a0c36[_0x89c4('0x10')](_['merge']({'app':_0x89c4('0x11'),'appdata':_0x10263b[_0x89c4('0x12')],'priority':_0x39ef25++},_0x23e5b2));}_0x1a0c36['push'](_[_0x89c4('0x9')]({'app':'ChanSpy','appdata':util[_0x89c4('0x5')](_0x89c4('0x13'),_0x14260c[_0x89c4('0x14')],_0x10263b[_0x89c4('0x15')]?_0x10263b[_0x89c4('0x15')]['join'](''):''),'priority':_0x39ef25++},_0x23e5b2));if(_0x10263b[_0x89c4('0x16')]){_0x1a0c36[_0x89c4('0x10')](_[_0x89c4('0x9')]({'app':'StopMixMonitor','priority':_0x39ef25++},_0x23e5b2));}return _0x1a0c36;};var getChanSpyApplications=function(_0x6f9159,_0x4e2097){var _0x55a3a2=[];for(var _0x15d638=0x0,_0x22c796=0x1;_0x15d638<_0x4e2097[_0x89c4('0x17')];_0x15d638++,_0x22c796=0x1){_0x55a3a2=_0x55a3a2[_0x89c4('0x18')](getUserApplications(_0x6f9159,_0x4e2097[_0x15d638],_0x4e2097[_0x15d638][_0x89c4('0x19')]));if(_0x4e2097[_0x15d638][_0x89c4('0x19')]!=_0x4e2097[_0x15d638][_0x89c4('0x14')]){_0x55a3a2=_0x55a3a2[_0x89c4('0x18')](getUserApplications(_0x6f9159,_0x4e2097[_0x15d638],_0x4e2097[_0x15d638]['name']));}}return _0x55a3a2;};var getChanSpyPromise=function(_0xb69145,_0x43627f){return new BPromise(function(_0x4aa16c,_0x11cbcb){return _0xb69145[_0x89c4('0x1a')]['findAll']({'attributes':['id','name',_0x89c4('0x19')],'where':{'role':'agent','chanspy':!![]},'raw':!![]})['then'](function(_0x5ce126){if(_0x5ce126){return _0x4aa16c(getChanSpyApplications(_0x43627f,_0x5ce126));}return _0x4aa16c([]);})['catch'](function(_0x2b0fe1){_0x11cbcb(_0x2b0fe1);});});};module[_0x89c4('0x1b')]=function(_0x31e1c1,_0x5d6c5e){var _0x11abe1=_0x31e1c1[_0x89c4('0x1c')];return _0x31e1c1['define'](_0x89c4('0x1d'),attributes,{'tableName':_0x89c4('0x1e'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x1a6c45,_0x403c6f,_0x80c5b9){return getChanSpyPromise(_0x11abe1,_0x1a6c45)[_0x89c4('0x1f')](function(_0x407677){if(_0x407677&&_0x407677[_0x89c4('0x17')]){return _0x11abe1[_0x89c4('0x20')][_0x89c4('0x21')](_0x407677);}})[_0x89c4('0x1f')](function(){_0x80c5b9();})[_0x89c4('0x22')](function(_0x21459e){_0x80c5b9(_0x21459e);});},'afterUpdate':function(_0x16273d,_0x338f57,_0x35f1a7){return _0x11abe1['VoiceExtension'][_0x89c4('0x23')]({'where':{'ChanSpyId':_0x16273d['id']}})[_0x89c4('0x1f')](function(){return getChanSpyPromise(_0x11abe1,_0x16273d);})[_0x89c4('0x1f')](function(_0x4d7ee7){if(_0x4d7ee7&&_0x4d7ee7['length']){return _0x11abe1['VoiceExtension'][_0x89c4('0x21')](_0x4d7ee7);}})[_0x89c4('0x1f')](function(){_0x35f1a7();})[_0x89c4('0x22')](function(_0x25e43b){_0x35f1a7(_0x25e43b);});},'afterDestroy':function(_0x1b5dbb,_0x11eb00,_0x22a961){return _0x11abe1[_0x89c4('0x20')][_0x89c4('0x23')]({'where':{'ChanSpyId':_0x1b5dbb['id']}})['then'](function(){_0x22a961();})['catch'](function(_0x599c40){_0x22a961(_0x599c40);});}}});};