Built motion from commit 9d7072cc.|2.5.39
[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 _0xe219=['closed','substatus','QueryTypes','AfterUpdate','User','find','email','default','length','hasOwnProperty','model','hook','callback','toLowerCase','condition','../../mysqldb','../logger','triggers','client','ChatInteraction','afterCreate','newinteraction','Chat','afterUpdate','closedinteraction','newmessage','Sms','SmsInteraction','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','OpenchannelInteraction','Openchannel','OpenchannelMessage','request','then','info','EventManager','error','code','Trigger,\x20%s','get','channel','motionChannel','event','direction','resolve','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','query','SELECT','contact','UserId','interface','format','SIP/%s','name','incomingmessage','catch','AfterCreateMessage','opened','Sequelize','agent','AfterCreate','changed'];(function(_0x433d28,_0x34ddb4){var _0x311ae9=function(_0x28843d){while(--_0x28843d){_0x433d28['push'](_0x433d28['shift']());}};_0x311ae9(++_0x34ddb4);}(_0xe219,0xea));var _0x9e21=function(_0x1d03b3,_0x570fde){_0x1d03b3=_0x1d03b3-0x0;var _0xd10317=_0xe219[_0x1d03b3];return _0xd10317;};'use strict';var util=require('util');var db=require(_0x9e21('0x0'))['db'];var jayson=require('jayson/promise');var logger=require(_0x9e21('0x1'))(_0x9e21('0x2'));var client=jayson[_0x9e21('0x3')]['http']({'port':0x232a});var triggers=[{'channel':'Chat','model':_0x9e21('0x4'),'event':_0x9e21('0x5'),'condition':_0x9e21('0x6'),'callback':afterCreate},{'channel':_0x9e21('0x7'),'model':_0x9e21('0x4'),'event':_0x9e21('0x8'),'condition':_0x9e21('0x9'),'callback':afterUpdate},{'channel':_0x9e21('0x7'),'model':'ChatMessage','event':_0x9e21('0x5'),'condition':_0x9e21('0xa'),'callback':afterCreateMessage},{'channel':_0x9e21('0xb'),'model':_0x9e21('0xc'),'event':_0x9e21('0x5'),'condition':_0x9e21('0x6'),'callback':afterCreate},{'channel':'Sms','model':'SmsInteraction','event':'afterUpdate','condition':_0x9e21('0x9'),'callback':afterUpdate},{'channel':'Sms','model':_0x9e21('0xd'),'event':'afterCreate','condition':_0x9e21('0xa'),'callback':afterCreateMessage},{'channel':_0x9e21('0xe'),'model':'WhatsappInteraction','event':'afterCreate','condition':_0x9e21('0x6'),'callback':afterCreate},{'channel':'Whatsapp','model':_0x9e21('0xf'),'event':_0x9e21('0x8'),'condition':_0x9e21('0x9'),'callback':afterUpdate},{'channel':'Whatsapp','model':_0x9e21('0x10'),'event':_0x9e21('0x5'),'condition':_0x9e21('0xa'),'callback':afterCreateMessage},{'channel':_0x9e21('0x11'),'model':_0x9e21('0x12'),'event':_0x9e21('0x5'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x9e21('0x11'),'model':_0x9e21('0x12'),'event':_0x9e21('0x8'),'condition':_0x9e21('0x9'),'callback':afterUpdate},{'channel':_0x9e21('0x11'),'model':_0x9e21('0x13'),'event':_0x9e21('0x5'),'condition':_0x9e21('0xa'),'callback':afterCreateMessage},{'channel':_0x9e21('0x14'),'model':_0x9e21('0x15'),'event':'afterCreate','condition':'newinteraction','callback':afterCreate},{'channel':_0x9e21('0x14'),'model':_0x9e21('0x15'),'event':_0x9e21('0x8'),'condition':_0x9e21('0x9'),'callback':afterUpdate},{'channel':_0x9e21('0x14'),'model':'MailMessage','event':_0x9e21('0x5'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Openchannel','model':_0x9e21('0x16'),'event':_0x9e21('0x5'),'condition':_0x9e21('0x6'),'callback':afterCreate},{'channel':_0x9e21('0x17'),'model':_0x9e21('0x16'),'event':_0x9e21('0x8'),'condition':_0x9e21('0x9'),'callback':afterUpdate},{'channel':_0x9e21('0x17'),'model':_0x9e21('0x18'),'event':_0x9e21('0x5'),'condition':_0x9e21('0xa'),'callback':afterCreateMessage}];function request(_0x22602f){return client[_0x9e21('0x19')]('EventManager',_0x22602f)[_0x9e21('0x1a')](function(_0x42634d){logger[_0x9e21('0x1b')]('Trigger,\x20%s',_0x9e21('0x1c'),_0x42634d);if(_0x42634d[_0x9e21('0x1d')]){if(_0x42634d[_0x9e21('0x1d')][_0x9e21('0x1e')]===0x1f4){logger[_0x9e21('0x1d')](_0x9e21('0x1f'),_0x9e21('0x1c'),_0x42634d[_0x9e21('0x1d')]);}}})['catch'](function(_0x1f5e13){logger[_0x9e21('0x1d')](_0x9e21('0x1f'),_0x9e21('0x1c'),_0x1f5e13);});}function afterCreateMessage(_0x1504bf){return function(_0x19f087){_0x19f087=_0x19f087[_0x9e21('0x20')]({'plain':!![]});_0x19f087[_0x9e21('0x21')]=_0x1504bf;_0x19f087[_0x9e21('0x22')]=_0x1504bf;_0x19f087[_0x9e21('0x23')]=_0x19f087[_0x9e21('0x24')];Promise[_0x9e21('0x25')]()[_0x9e21('0x1a')](function(){if(typeof _0x19f087['ContactId']===_0x9e21('0x26'))return null;var _0x508310=_0x9e21('0x27')+_0x19f087[_0x9e21('0x28')];return db[_0x9e21('0x29')][_0x9e21('0x2a')](_0x508310,{'type':db['Sequelize']['QueryTypes'][_0x9e21('0x2b')],'raw':!![]});})[_0x9e21('0x1a')](function(_0xcaa5c5){if(_0xcaa5c5){_0x19f087[_0x9e21('0x2c')]=_0xcaa5c5[0x0];}if(typeof _0x19f087['UserId']===_0x9e21('0x26'))return;return getAgent(_0x19f087[_0x9e21('0x2d')]);})[_0x9e21('0x1a')](function(_0x4ff57d){if(_0x4ff57d){_0x19f087[_0x9e21('0x2e')]=util[_0x9e21('0x2f')](_0x9e21('0x30'),_0x4ff57d[_0x9e21('0x31')]);_0x19f087['agent']=_0x4ff57d;_0x19f087['channel']=_0x1504bf;return request({'event':_0x9e21('0x32'),'message':_0x19f087});}else{return request({'event':'outgoingmessage','message':_0x19f087});}})[_0x9e21('0x33')](function(_0x51e08f){logger[_0x9e21('0x1d')](_0x9e21('0x1f'),_0x9e21('0x34'),_0x51e08f);});};}function afterCreate(_0x5e3b69,_0x49bfe7){return function(_0x120e8a){_0x120e8a=_0x120e8a[_0x9e21('0x20')]({'plain':!![]});_0x120e8a[_0x9e21('0x21')]=_0x5e3b69;_0x120e8a['motionChannel']=_0x5e3b69;_0x120e8a[_0x9e21('0x23')]=_0x9e21('0x35');Promise['resolve']()[_0x9e21('0x1a')](function(){var _0xd12e34=_0x9e21('0x27')+_0x120e8a['ContactId'];return db[_0x9e21('0x29')][_0x9e21('0x2a')](_0xd12e34,{'type':db[_0x9e21('0x36')]['QueryTypes'][_0x9e21('0x2b')],'raw':!![]});})['then'](function(_0x285007){if(_0x285007){_0x120e8a[_0x9e21('0x2c')]=_0x285007[0x0];}if(typeof _0x120e8a[_0x9e21('0x2d')]===_0x9e21('0x26'))return;return getAgent(_0x120e8a[_0x9e21('0x2d')]);})[_0x9e21('0x1a')](function(_0xe8bd11){if(_0xe8bd11){_0x120e8a[_0x9e21('0x2e')]=util[_0x9e21('0x2f')](_0x9e21('0x30'),_0xe8bd11[_0x9e21('0x31')]);_0x120e8a[_0x9e21('0x37')]=_0xe8bd11;}return request({'event':_0x49bfe7,'message':_0x120e8a});})['catch'](function(_0x313807){logger[_0x9e21('0x1d')](_0x9e21('0x1f'),_0x9e21('0x38'),_0x313807);});};}function afterUpdate(_0x2dc429){return function(_0x4f084c){var _0x3a8246=_0x4f084c[_0x9e21('0x39')](_0x9e21('0x3a'))&&_0x4f084c['closed'];var _0x38e6c8=_0x4f084c[_0x9e21('0x39')](_0x9e21('0x3b'));if(_0x3a8246||_0x38e6c8){var _0x2e993f=_0x3a8246?_0x9e21('0x9'):_0x9e21('0x3b');var _0xb519f0=_0x4f084c[_0x9e21('0x20')]({'plain':!![]});_0xb519f0[_0x9e21('0x21')]=_0x2dc429;_0xb519f0['motionChannel']=_0x2dc429;_0xb519f0[_0x9e21('0x23')]=_0x3a8246?_0x9e21('0x3a'):_0x9e21('0x3b');var _0x14f9ca=_0x9e21('0x27')+_0xb519f0[_0x9e21('0x28')];return db[_0x9e21('0x29')]['query'](_0x14f9ca,{'type':db[_0x9e21('0x36')][_0x9e21('0x3c')][_0x9e21('0x2b')],'raw':!![]})[_0x9e21('0x1a')](function(_0x2ca380){if(_0x2ca380){_0xb519f0[_0x9e21('0x2c')]=_0x2ca380[0x0];}if(typeof _0xb519f0[_0x9e21('0x2d')]==='undefined')return;return getAgent(_0xb519f0['UserId']);})[_0x9e21('0x1a')](function(_0x1d74d4){if(_0x1d74d4){_0xb519f0[_0x9e21('0x2e')]=util[_0x9e21('0x2f')](_0x9e21('0x30'),_0x1d74d4[_0x9e21('0x31')]);_0xb519f0[_0x9e21('0x37')]=_0x1d74d4;}return request({'event':_0x2e993f,'message':_0xb519f0});})['catch'](function(_0x3df138){logger[_0x9e21('0x1d')](_0x9e21('0x1f'),_0x9e21('0x3d'),_0x3df138);});}};}function getAgent(_0x5a56c4){return db[_0x9e21('0x3e')][_0x9e21('0x3f')]({'where':{'id':_0x5a56c4},'attributes':['id',_0x9e21('0x31'),'fullname',_0x9e21('0x40'),'internal'],'raw':!![]})[_0x9e21('0x1a')](function(_0x397645){return _0x397645;});}exports[_0x9e21('0x41')]=function(){for(var _0x3a701f=0x0;_0x3a701f<triggers[_0x9e21('0x42')];_0x3a701f+=0x1){if(db[_0x9e21('0x43')](triggers[_0x3a701f]['model'])){db[triggers[_0x3a701f][_0x9e21('0x44')]][_0x9e21('0x45')](triggers[_0x3a701f][_0x9e21('0x23')],triggers[_0x3a701f][_0x9e21('0x46')](triggers[_0x3a701f][_0x9e21('0x21')][_0x9e21('0x47')](),triggers[_0x3a701f][_0x9e21('0x48')]));}}};