Built motion from commit 21186556.|2.6.19
[motion2.git] / server / config / triggers / index.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 _0xc0f4=['client','http','ChatInteraction','newinteraction','Chat','closedinteraction','ChatMessage','afterCreate','newmessage','ChatOfflineMessage','SmsInteraction','Sms','afterUpdate','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','Openchannel','OpenchannelMessage','request','EventManager','error','Trigger,\x20%s','catch','channel','event','direction','then','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','query','Sequelize','QueryTypes','contact','UserId','format','SIP/%s','name','agent','incomingmessage','outgoingmessage','AfterCreateMessage','get','motionChannel','opened','resolve','SELECT','changed','closed','substatus','interface','AfterUpdate','User','fullname','email','internal','length','hasOwnProperty','model','callback','condition','jayson/promise','../logger','triggers'];(function(_0x1a809b,_0x4c15e3){var _0x5d90e6=function(_0x5dd2e1){while(--_0x5dd2e1){_0x1a809b['push'](_0x1a809b['shift']());}};_0x5d90e6(++_0x4c15e3);}(_0xc0f4,0x119));var _0x4c0f=function(_0x50074f,_0x13cc6f){_0x50074f=_0x50074f-0x0;var _0x187cd2=_0xc0f4[_0x50074f];return _0x187cd2;};'use strict';var util=require('util');var db=require('../../mysqldb')['db'];var jayson=require(_0x4c0f('0x0'));var logger=require(_0x4c0f('0x1'))(_0x4c0f('0x2'));var client=jayson[_0x4c0f('0x3')][_0x4c0f('0x4')]({'port':0x232a});var triggers=[{'channel':'Chat','model':_0x4c0f('0x5'),'event':'afterCreate','condition':_0x4c0f('0x6'),'callback':afterCreate},{'channel':_0x4c0f('0x7'),'model':_0x4c0f('0x5'),'event':'afterUpdate','condition':_0x4c0f('0x8'),'callback':afterUpdate},{'channel':_0x4c0f('0x7'),'model':_0x4c0f('0x9'),'event':_0x4c0f('0xa'),'condition':_0x4c0f('0xb'),'callback':afterCreateMessage},{'channel':'Chat','model':_0x4c0f('0xc'),'event':_0x4c0f('0xa'),'condition':_0x4c0f('0xb'),'callback':afterCreateOfflineMessage},{'channel':'Sms','model':_0x4c0f('0xd'),'event':_0x4c0f('0xa'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x4c0f('0xe'),'model':_0x4c0f('0xd'),'event':_0x4c0f('0xf'),'condition':_0x4c0f('0x8'),'callback':afterUpdate},{'channel':'Sms','model':_0x4c0f('0x10'),'event':_0x4c0f('0xa'),'condition':_0x4c0f('0xb'),'callback':afterCreateMessage},{'channel':_0x4c0f('0x11'),'model':_0x4c0f('0x12'),'event':'afterCreate','condition':_0x4c0f('0x6'),'callback':afterCreate},{'channel':_0x4c0f('0x11'),'model':'WhatsappInteraction','event':_0x4c0f('0xf'),'condition':_0x4c0f('0x8'),'callback':afterUpdate},{'channel':'Whatsapp','model':_0x4c0f('0x13'),'event':_0x4c0f('0xa'),'condition':_0x4c0f('0xb'),'callback':afterCreateMessage},{'channel':_0x4c0f('0x14'),'model':_0x4c0f('0x15'),'event':'afterCreate','condition':_0x4c0f('0x6'),'callback':afterCreate},{'channel':_0x4c0f('0x14'),'model':_0x4c0f('0x15'),'event':'afterUpdate','condition':_0x4c0f('0x8'),'callback':afterUpdate},{'channel':_0x4c0f('0x14'),'model':_0x4c0f('0x16'),'event':_0x4c0f('0xa'),'condition':_0x4c0f('0xb'),'callback':afterCreateMessage},{'channel':_0x4c0f('0x17'),'model':_0x4c0f('0x18'),'event':_0x4c0f('0xa'),'condition':_0x4c0f('0x6'),'callback':afterCreate},{'channel':_0x4c0f('0x17'),'model':_0x4c0f('0x18'),'event':_0x4c0f('0xf'),'condition':_0x4c0f('0x8'),'callback':afterUpdate},{'channel':_0x4c0f('0x17'),'model':'MailMessage','event':'afterCreate','condition':_0x4c0f('0xb'),'callback':afterCreateMessage},{'channel':_0x4c0f('0x19'),'model':'OpenchannelInteraction','event':_0x4c0f('0xa'),'condition':_0x4c0f('0x6'),'callback':afterCreate},{'channel':_0x4c0f('0x19'),'model':'OpenchannelInteraction','event':_0x4c0f('0xf'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x4c0f('0x19'),'model':_0x4c0f('0x1a'),'event':_0x4c0f('0xa'),'condition':_0x4c0f('0xb'),'callback':afterCreateMessage}];function request(_0x319816){return client[_0x4c0f('0x1b')](_0x4c0f('0x1c'),_0x319816)['then'](function(_0x36ec89){logger['info']('Trigger,\x20%s',_0x4c0f('0x1c'),_0x36ec89);if(_0x36ec89[_0x4c0f('0x1d')]){if(_0x36ec89[_0x4c0f('0x1d')]['code']===0x1f4){logger[_0x4c0f('0x1d')](_0x4c0f('0x1e'),_0x4c0f('0x1c'),_0x36ec89['error']);}}})[_0x4c0f('0x1f')](function(_0x22731b){logger[_0x4c0f('0x1d')](_0x4c0f('0x1e'),_0x4c0f('0x1c'),_0x22731b);});}function afterCreateMessage(_0x5224d8){return function(_0x353e17){_0x353e17=_0x353e17['get']({'plain':!![]});_0x353e17[_0x4c0f('0x20')]=_0x5224d8;_0x353e17['motionChannel']=_0x5224d8;_0x353e17[_0x4c0f('0x21')]=_0x353e17[_0x4c0f('0x22')];Promise['resolve']()[_0x4c0f('0x23')](function(){if(typeof _0x353e17[_0x4c0f('0x24')]===_0x4c0f('0x25'))return null;var _0x387396=_0x4c0f('0x26')+_0x353e17[_0x4c0f('0x24')];return db[_0x4c0f('0x27')][_0x4c0f('0x28')](_0x387396,{'type':db[_0x4c0f('0x29')][_0x4c0f('0x2a')]['SELECT'],'raw':!![]});})[_0x4c0f('0x23')](function(_0x1c8493){if(_0x1c8493){_0x353e17[_0x4c0f('0x2b')]=_0x1c8493[0x0];}if(typeof _0x353e17['UserId']===_0x4c0f('0x25'))return;return getAgent(_0x353e17[_0x4c0f('0x2c')]);})['then'](function(_0xc7ca20){if(_0xc7ca20){_0x353e17['interface']=util[_0x4c0f('0x2d')](_0x4c0f('0x2e'),_0xc7ca20[_0x4c0f('0x2f')]);_0x353e17[_0x4c0f('0x30')]=_0xc7ca20;_0x353e17[_0x4c0f('0x20')]=_0x5224d8;return request({'event':_0x4c0f('0x31'),'message':_0x353e17});}else{return request({'event':_0x4c0f('0x32'),'message':_0x353e17});}})[_0x4c0f('0x1f')](function(_0x3e4c8a){logger[_0x4c0f('0x1d')](_0x4c0f('0x1e'),_0x4c0f('0x33'),_0x3e4c8a);});};}function afterCreateOfflineMessage(_0x6d02c2){return function(_0x41ceb5){_0x41ceb5=_0x41ceb5[_0x4c0f('0x34')]({'plain':!![]});_0x41ceb5['channel']=_0x6d02c2;_0x41ceb5[_0x4c0f('0x35')]=_0x6d02c2;_0x41ceb5[_0x4c0f('0x21')]='offlineMessage';return request({'event':_0x41ceb5[_0x4c0f('0x21')],'message':_0x41ceb5});};}function afterCreate(_0x2aeaf9,_0x3f11e1){return function(_0x330351){_0x330351=_0x330351[_0x4c0f('0x34')]({'plain':!![]});_0x330351['channel']=_0x2aeaf9;_0x330351['motionChannel']=_0x2aeaf9;_0x330351[_0x4c0f('0x21')]=_0x4c0f('0x36');Promise[_0x4c0f('0x37')]()['then'](function(){var _0x587799='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x330351['ContactId'];return db['sequelize'][_0x4c0f('0x28')](_0x587799,{'type':db['Sequelize'][_0x4c0f('0x2a')][_0x4c0f('0x38')],'raw':!![]});})[_0x4c0f('0x23')](function(_0x38a116){if(_0x38a116){_0x330351[_0x4c0f('0x2b')]=_0x38a116[0x0];}if(typeof _0x330351[_0x4c0f('0x2c')]===_0x4c0f('0x25'))return;return getAgent(_0x330351[_0x4c0f('0x2c')]);})[_0x4c0f('0x23')](function(_0x1f46b8){if(_0x1f46b8){_0x330351['interface']=util['format']('SIP/%s',_0x1f46b8['name']);_0x330351[_0x4c0f('0x30')]=_0x1f46b8;}return request({'event':_0x3f11e1,'message':_0x330351});})[_0x4c0f('0x1f')](function(_0x4c8857){logger[_0x4c0f('0x1d')](_0x4c0f('0x1e'),'AfterCreate',_0x4c8857);});};}function afterUpdate(_0x5b7af8){return function(_0x559aae){var _0x19bcdd=_0x559aae[_0x4c0f('0x39')](_0x4c0f('0x3a'))&&_0x559aae[_0x4c0f('0x3a')];var _0x4c3224=_0x559aae[_0x4c0f('0x39')]('substatus');if(_0x19bcdd||_0x4c3224){var _0x264eb5=_0x19bcdd?_0x4c0f('0x8'):_0x4c0f('0x3b');var _0x513ac2=_0x559aae[_0x4c0f('0x34')]({'plain':!![]});_0x513ac2[_0x4c0f('0x20')]=_0x5b7af8;_0x513ac2[_0x4c0f('0x35')]=_0x5b7af8;_0x513ac2['event']=_0x19bcdd?_0x4c0f('0x3a'):'substatus';var _0x206d0f=_0x4c0f('0x26')+_0x513ac2['ContactId'];return db[_0x4c0f('0x27')][_0x4c0f('0x28')](_0x206d0f,{'type':db[_0x4c0f('0x29')][_0x4c0f('0x2a')][_0x4c0f('0x38')],'raw':!![]})[_0x4c0f('0x23')](function(_0x20c008){if(_0x20c008){_0x513ac2[_0x4c0f('0x2b')]=_0x20c008[0x0];}if(typeof _0x513ac2[_0x4c0f('0x2c')]===_0x4c0f('0x25'))return;return getAgent(_0x513ac2[_0x4c0f('0x2c')]);})[_0x4c0f('0x23')](function(_0x2d6afa){if(_0x2d6afa){_0x513ac2[_0x4c0f('0x3c')]=util[_0x4c0f('0x2d')]('SIP/%s',_0x2d6afa[_0x4c0f('0x2f')]);_0x513ac2[_0x4c0f('0x30')]=_0x2d6afa;}return request({'event':_0x264eb5,'message':_0x513ac2});})[_0x4c0f('0x1f')](function(_0x1513c2){logger[_0x4c0f('0x1d')](_0x4c0f('0x1e'),_0x4c0f('0x3d'),_0x1513c2);});}};}function getAgent(_0x2fc06f){return db[_0x4c0f('0x3e')]['find']({'where':{'id':_0x2fc06f},'attributes':['id',_0x4c0f('0x2f'),_0x4c0f('0x3f'),_0x4c0f('0x40'),_0x4c0f('0x41')],'raw':!![]})[_0x4c0f('0x23')](function(_0x486638){return _0x486638;});}exports['default']=function(){for(var _0x52df9f=0x0;_0x52df9f<triggers[_0x4c0f('0x42')];_0x52df9f+=0x1){if(db[_0x4c0f('0x43')](triggers[_0x52df9f]['model'])){db[triggers[_0x52df9f][_0x4c0f('0x44')]]['hook'](triggers[_0x52df9f][_0x4c0f('0x21')],triggers[_0x52df9f][_0x4c0f('0x45')](triggers[_0x52df9f][_0x4c0f('0x20')]['toLowerCase'](),triggers[_0x52df9f][_0x4c0f('0x46')]));}}};