Built motion from commit b5996064.|2.6.21
[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 _0x98c4=['jayson/promise','../logger','triggers','client','http','Chat','ChatInteraction','afterCreate','newinteraction','afterUpdate','closedinteraction','ChatMessage','newmessage','ChatOfflineMessage','Sms','SmsInteraction','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','then','error','code','Trigger,\x20%s','get','channel','motionChannel','event','direction','resolve','ContactId','undefined','sequelize','query','QueryTypes','contact','UserId','interface','SIP/%s','name','agent','incomingmessage','outgoingmessage','AfterCreateMessage','offlineMessage','opened','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','Sequelize','SELECT','format','AfterCreate','changed','closed','substatus','catch','AfterUpdate','User','find','email','default','length','hasOwnProperty','hook','callback','../../mysqldb'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x98c4,0x17b));var _0x498c=function(_0x3ecd7d,_0x52140d){_0x3ecd7d=_0x3ecd7d-0x0;var _0x38ea7a=_0x98c4[_0x3ecd7d];return _0x38ea7a;};'use strict';var util=require('util');var db=require(_0x498c('0x0'))['db'];var jayson=require(_0x498c('0x1'));var logger=require(_0x498c('0x2'))(_0x498c('0x3'));var client=jayson[_0x498c('0x4')][_0x498c('0x5')]({'port':0x232a});var triggers=[{'channel':_0x498c('0x6'),'model':_0x498c('0x7'),'event':_0x498c('0x8'),'condition':_0x498c('0x9'),'callback':afterCreate},{'channel':_0x498c('0x6'),'model':_0x498c('0x7'),'event':_0x498c('0xa'),'condition':_0x498c('0xb'),'callback':afterUpdate},{'channel':_0x498c('0x6'),'model':_0x498c('0xc'),'event':_0x498c('0x8'),'condition':_0x498c('0xd'),'callback':afterCreateMessage},{'channel':_0x498c('0x6'),'model':_0x498c('0xe'),'event':_0x498c('0x8'),'condition':_0x498c('0xd'),'callback':afterCreateOfflineMessage},{'channel':_0x498c('0xf'),'model':_0x498c('0x10'),'event':_0x498c('0x8'),'condition':_0x498c('0x9'),'callback':afterCreate},{'channel':_0x498c('0xf'),'model':'SmsInteraction','event':_0x498c('0xa'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Sms','model':_0x498c('0x11'),'event':_0x498c('0x8'),'condition':_0x498c('0xd'),'callback':afterCreateMessage},{'channel':_0x498c('0x12'),'model':'WhatsappInteraction','event':_0x498c('0x8'),'condition':'newinteraction','callback':afterCreate},{'channel':'Whatsapp','model':_0x498c('0x13'),'event':'afterUpdate','condition':_0x498c('0xb'),'callback':afterUpdate},{'channel':_0x498c('0x12'),'model':_0x498c('0x14'),'event':_0x498c('0x8'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x498c('0x15'),'model':_0x498c('0x16'),'event':_0x498c('0x8'),'condition':_0x498c('0x9'),'callback':afterCreate},{'channel':_0x498c('0x15'),'model':_0x498c('0x16'),'event':_0x498c('0xa'),'condition':_0x498c('0xb'),'callback':afterUpdate},{'channel':'Fax','model':_0x498c('0x17'),'event':_0x498c('0x8'),'condition':_0x498c('0xd'),'callback':afterCreateMessage},{'channel':_0x498c('0x18'),'model':_0x498c('0x19'),'event':_0x498c('0x8'),'condition':_0x498c('0x9'),'callback':afterCreate},{'channel':'Mail','model':_0x498c('0x19'),'event':_0x498c('0xa'),'condition':_0x498c('0xb'),'callback':afterUpdate},{'channel':_0x498c('0x18'),'model':_0x498c('0x1a'),'event':'afterCreate','condition':_0x498c('0xd'),'callback':afterCreateMessage},{'channel':_0x498c('0x1b'),'model':_0x498c('0x1c'),'event':'afterCreate','condition':'newinteraction','callback':afterCreate},{'channel':_0x498c('0x1b'),'model':_0x498c('0x1c'),'event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':'Openchannel','model':_0x498c('0x1d'),'event':'afterCreate','condition':_0x498c('0xd'),'callback':afterCreateMessage}];function request(_0x241ec8){return client[_0x498c('0x1e')](_0x498c('0x1f'),_0x241ec8)[_0x498c('0x20')](function(_0x6d2572){logger['info']('Trigger,\x20%s',_0x498c('0x1f'),_0x6d2572);if(_0x6d2572['error']){if(_0x6d2572[_0x498c('0x21')][_0x498c('0x22')]===0x1f4){logger['error'](_0x498c('0x23'),'EventManager',_0x6d2572[_0x498c('0x21')]);}}})['catch'](function(_0x47d395){logger[_0x498c('0x21')](_0x498c('0x23'),_0x498c('0x1f'),_0x47d395);});}function afterCreateMessage(_0x33603a){return function(_0x451b07){_0x451b07=_0x451b07[_0x498c('0x24')]({'plain':!![]});_0x451b07[_0x498c('0x25')]=_0x33603a;_0x451b07[_0x498c('0x26')]=_0x33603a;_0x451b07[_0x498c('0x27')]=_0x451b07[_0x498c('0x28')];Promise[_0x498c('0x29')]()['then'](function(){if(typeof _0x451b07[_0x498c('0x2a')]===_0x498c('0x2b'))return null;var _0x243a7d='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x451b07[_0x498c('0x2a')];return db[_0x498c('0x2c')][_0x498c('0x2d')](_0x243a7d,{'type':db['Sequelize'][_0x498c('0x2e')]['SELECT'],'raw':!![]});})['then'](function(_0x2cc115){if(_0x2cc115){_0x451b07[_0x498c('0x2f')]=_0x2cc115[0x0];}if(typeof _0x451b07[_0x498c('0x30')]===_0x498c('0x2b'))return;return getAgent(_0x451b07['UserId']);})[_0x498c('0x20')](function(_0x32aa07){if(_0x32aa07){_0x451b07[_0x498c('0x31')]=util['format'](_0x498c('0x32'),_0x32aa07[_0x498c('0x33')]);_0x451b07[_0x498c('0x34')]=_0x32aa07;_0x451b07['channel']=_0x33603a;return request({'event':_0x498c('0x35'),'message':_0x451b07});}else{return request({'event':_0x498c('0x36'),'message':_0x451b07});}})['catch'](function(_0x45c5be){logger[_0x498c('0x21')](_0x498c('0x23'),_0x498c('0x37'),_0x45c5be);});};}function afterCreateOfflineMessage(_0x3caae1){return function(_0x4a8c4f){_0x4a8c4f=_0x4a8c4f[_0x498c('0x24')]({'plain':!![]});_0x4a8c4f['channel']=_0x3caae1;_0x4a8c4f['motionChannel']=_0x3caae1;_0x4a8c4f[_0x498c('0x27')]=_0x498c('0x38');return request({'event':_0x4a8c4f[_0x498c('0x27')],'message':_0x4a8c4f});};}function afterCreate(_0x5f235b,_0x11eee9){return function(_0x2b3595){_0x2b3595=_0x2b3595[_0x498c('0x24')]({'plain':!![]});_0x2b3595['channel']=_0x5f235b;_0x2b3595[_0x498c('0x26')]=_0x5f235b;_0x2b3595[_0x498c('0x27')]=_0x498c('0x39');Promise[_0x498c('0x29')]()[_0x498c('0x20')](function(){var _0x2a22c0=_0x498c('0x3a')+_0x2b3595[_0x498c('0x2a')];return db[_0x498c('0x2c')][_0x498c('0x2d')](_0x2a22c0,{'type':db[_0x498c('0x3b')][_0x498c('0x2e')][_0x498c('0x3c')],'raw':!![]});})[_0x498c('0x20')](function(_0x397e0e){if(_0x397e0e){_0x2b3595[_0x498c('0x2f')]=_0x397e0e[0x0];}if(typeof _0x2b3595[_0x498c('0x30')]==='undefined')return;return getAgent(_0x2b3595[_0x498c('0x30')]);})[_0x498c('0x20')](function(_0x2c8eaf){if(_0x2c8eaf){_0x2b3595[_0x498c('0x31')]=util[_0x498c('0x3d')]('SIP/%s',_0x2c8eaf[_0x498c('0x33')]);_0x2b3595['agent']=_0x2c8eaf;}return request({'event':_0x11eee9,'message':_0x2b3595});})['catch'](function(_0x6d0dea){logger[_0x498c('0x21')]('Trigger,\x20%s',_0x498c('0x3e'),_0x6d0dea);});};}function afterUpdate(_0x275637){return function(_0x987804){var _0x531e26=_0x987804[_0x498c('0x3f')](_0x498c('0x40'))&&_0x987804[_0x498c('0x40')];var _0x39d924=_0x987804[_0x498c('0x3f')](_0x498c('0x41'));if(_0x531e26||_0x39d924){var _0x40a7b2=_0x531e26?_0x498c('0xb'):'substatus';var _0x1060f1=_0x987804['get']({'plain':!![]});_0x1060f1[_0x498c('0x25')]=_0x275637;_0x1060f1['motionChannel']=_0x275637;_0x1060f1['event']=_0x531e26?_0x498c('0x40'):'substatus';var _0x5dabfe=_0x498c('0x3a')+_0x1060f1[_0x498c('0x2a')];return db['sequelize'][_0x498c('0x2d')](_0x5dabfe,{'type':db[_0x498c('0x3b')][_0x498c('0x2e')][_0x498c('0x3c')],'raw':!![]})[_0x498c('0x20')](function(_0x5da567){if(_0x5da567){_0x1060f1[_0x498c('0x2f')]=_0x5da567[0x0];}if(typeof _0x1060f1['UserId']===_0x498c('0x2b'))return;return getAgent(_0x1060f1['UserId']);})[_0x498c('0x20')](function(_0x3c87e7){if(_0x3c87e7){_0x1060f1[_0x498c('0x31')]=util[_0x498c('0x3d')]('SIP/%s',_0x3c87e7['name']);_0x1060f1[_0x498c('0x34')]=_0x3c87e7;}return request({'event':_0x40a7b2,'message':_0x1060f1});})[_0x498c('0x42')](function(_0x405451){logger[_0x498c('0x21')]('Trigger,\x20%s',_0x498c('0x43'),_0x405451);});}};}function getAgent(_0x3e5f4c){return db[_0x498c('0x44')][_0x498c('0x45')]({'where':{'id':_0x3e5f4c},'attributes':['id',_0x498c('0x33'),'fullname',_0x498c('0x46'),'internal'],'raw':!![]})[_0x498c('0x20')](function(_0x17af88){return _0x17af88;});}exports[_0x498c('0x47')]=function(){for(var _0x2d76b9=0x0;_0x2d76b9<triggers[_0x498c('0x48')];_0x2d76b9+=0x1){if(db[_0x498c('0x49')](triggers[_0x2d76b9]['model'])){db[triggers[_0x2d76b9]['model']][_0x498c('0x4a')](triggers[_0x2d76b9][_0x498c('0x27')],triggers[_0x2d76b9][_0x498c('0x4b')](triggers[_0x2d76b9]['channel']['toLowerCase'](),triggers[_0x2d76b9]['condition']));}}};