4d5881f11c1c6139b752ebd622b37a925cc4e78e
[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 _0xc450=['User','find','fullname','email','internal','default','length','model','hook','callback','toLowerCase','condition','../../mysqldb','triggers','client','newinteraction','Chat','closedinteraction','afterCreate','newmessage','ChatOfflineMessage','SmsInteraction','afterUpdate','Sms','Whatsapp','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','then','info','error','code','Trigger,\x20%s','catch','get','channel','motionChannel','event','resolve','ContactId','undefined','sequelize','query','QueryTypes','SELECT','contact','UserId','format','SIP/%s','name','incomingmessage','AfterCreateMessage','offlineMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','Sequelize','agent','changed','closed','substatus','AfterUpdate'];(function(_0x82840b,_0x1458b6){var _0x4a5a21=function(_0xc0db33){while(--_0xc0db33){_0x82840b['push'](_0x82840b['shift']());}};_0x4a5a21(++_0x1458b6);}(_0xc450,0x1ef));var _0x0c45=function(_0x4005ad,_0x4991d2){_0x4005ad=_0x4005ad-0x0;var _0x111379=_0xc450[_0x4005ad];return _0x111379;};'use strict';var util=require('util');var db=require(_0x0c45('0x0'))['db'];var jayson=require('jayson/promise');var logger=require('../logger')(_0x0c45('0x1'));var client=jayson[_0x0c45('0x2')]['http']({'port':0x232a});var triggers=[{'channel':'Chat','model':'ChatInteraction','event':'afterCreate','condition':_0x0c45('0x3'),'callback':afterCreate},{'channel':_0x0c45('0x4'),'model':'ChatInteraction','event':'afterUpdate','condition':_0x0c45('0x5'),'callback':afterUpdate},{'channel':_0x0c45('0x4'),'model':'ChatMessage','event':_0x0c45('0x6'),'condition':_0x0c45('0x7'),'callback':afterCreateMessage},{'channel':_0x0c45('0x4'),'model':_0x0c45('0x8'),'event':_0x0c45('0x6'),'condition':_0x0c45('0x7'),'callback':afterCreateOfflineMessage},{'channel':'Sms','model':_0x0c45('0x9'),'event':_0x0c45('0x6'),'condition':_0x0c45('0x3'),'callback':afterCreate},{'channel':'Sms','model':'SmsInteraction','event':_0x0c45('0xa'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x0c45('0xb'),'model':'SmsMessage','event':'afterCreate','condition':_0x0c45('0x7'),'callback':afterCreateMessage},{'channel':'Whatsapp','model':'WhatsappInteraction','event':_0x0c45('0x6'),'condition':_0x0c45('0x3'),'callback':afterCreate},{'channel':_0x0c45('0xc'),'model':'WhatsappInteraction','event':_0x0c45('0xa'),'condition':_0x0c45('0x5'),'callback':afterUpdate},{'channel':_0x0c45('0xc'),'model':_0x0c45('0xd'),'event':_0x0c45('0x6'),'condition':_0x0c45('0x7'),'callback':afterCreateMessage},{'channel':_0x0c45('0xe'),'model':'FaxInteraction','event':_0x0c45('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x0c45('0xe'),'model':_0x0c45('0xf'),'event':_0x0c45('0xa'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x0c45('0xe'),'model':_0x0c45('0x10'),'event':_0x0c45('0x6'),'condition':_0x0c45('0x7'),'callback':afterCreateMessage},{'channel':_0x0c45('0x11'),'model':_0x0c45('0x12'),'event':_0x0c45('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x0c45('0x11'),'model':_0x0c45('0x12'),'event':'afterUpdate','condition':_0x0c45('0x5'),'callback':afterUpdate},{'channel':_0x0c45('0x11'),'model':_0x0c45('0x13'),'event':_0x0c45('0x6'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x0c45('0x14'),'model':_0x0c45('0x15'),'event':_0x0c45('0x6'),'condition':_0x0c45('0x3'),'callback':afterCreate},{'channel':_0x0c45('0x14'),'model':_0x0c45('0x15'),'event':_0x0c45('0xa'),'condition':_0x0c45('0x5'),'callback':afterUpdate},{'channel':_0x0c45('0x14'),'model':_0x0c45('0x16'),'event':_0x0c45('0x6'),'condition':_0x0c45('0x7'),'callback':afterCreateMessage}];function request(_0x390a86){return client[_0x0c45('0x17')](_0x0c45('0x18'),_0x390a86)[_0x0c45('0x19')](function(_0xcb6b01){logger[_0x0c45('0x1a')]('Trigger,\x20%s',_0x0c45('0x18'),_0xcb6b01);if(_0xcb6b01[_0x0c45('0x1b')]){if(_0xcb6b01[_0x0c45('0x1b')][_0x0c45('0x1c')]===0x1f4){logger['error'](_0x0c45('0x1d'),'EventManager',_0xcb6b01[_0x0c45('0x1b')]);}}})[_0x0c45('0x1e')](function(_0x4fde07){logger[_0x0c45('0x1b')](_0x0c45('0x1d'),'EventManager',_0x4fde07);});}function afterCreateMessage(_0x454ed6){return function(_0x44f0e3){_0x44f0e3=_0x44f0e3[_0x0c45('0x1f')]({'plain':!![]});_0x44f0e3[_0x0c45('0x20')]=_0x454ed6;_0x44f0e3[_0x0c45('0x21')]=_0x454ed6;_0x44f0e3[_0x0c45('0x22')]=_0x44f0e3['direction'];Promise[_0x0c45('0x23')]()[_0x0c45('0x19')](function(){if(typeof _0x44f0e3[_0x0c45('0x24')]===_0x0c45('0x25'))return null;var _0xad14cf='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x44f0e3[_0x0c45('0x24')];return db[_0x0c45('0x26')][_0x0c45('0x27')](_0xad14cf,{'type':db['Sequelize'][_0x0c45('0x28')][_0x0c45('0x29')],'raw':!![]});})['then'](function(_0x53d92c){if(_0x53d92c){_0x44f0e3[_0x0c45('0x2a')]=_0x53d92c[0x0];}if(typeof _0x44f0e3[_0x0c45('0x2b')]===_0x0c45('0x25'))return;return getAgent(_0x44f0e3[_0x0c45('0x2b')]);})[_0x0c45('0x19')](function(_0x5ad38a){if(_0x5ad38a){_0x44f0e3['interface']=util[_0x0c45('0x2c')](_0x0c45('0x2d'),_0x5ad38a[_0x0c45('0x2e')]);_0x44f0e3['agent']=_0x5ad38a;_0x44f0e3[_0x0c45('0x20')]=_0x454ed6;return request({'event':_0x0c45('0x2f'),'message':_0x44f0e3});}else{return request({'event':'outgoingmessage','message':_0x44f0e3});}})[_0x0c45('0x1e')](function(_0x4d4650){logger[_0x0c45('0x1b')](_0x0c45('0x1d'),_0x0c45('0x30'),_0x4d4650);});};}function afterCreateOfflineMessage(_0x431fbf){return function(_0x968870){_0x968870=_0x968870[_0x0c45('0x1f')]({'plain':!![]});_0x968870[_0x0c45('0x20')]=_0x431fbf;_0x968870[_0x0c45('0x21')]=_0x431fbf;_0x968870[_0x0c45('0x22')]=_0x0c45('0x31');return request({'event':_0x968870[_0x0c45('0x22')],'message':_0x968870});};}function afterCreate(_0x5b6a92,_0x21dc42){return function(_0x521fd2){_0x521fd2=_0x521fd2[_0x0c45('0x1f')]({'plain':!![]});_0x521fd2[_0x0c45('0x20')]=_0x5b6a92;_0x521fd2[_0x0c45('0x21')]=_0x5b6a92;_0x521fd2[_0x0c45('0x22')]='opened';Promise[_0x0c45('0x23')]()[_0x0c45('0x19')](function(){var _0x53f208=_0x0c45('0x32')+_0x521fd2['ContactId'];return db[_0x0c45('0x26')]['query'](_0x53f208,{'type':db[_0x0c45('0x33')][_0x0c45('0x28')][_0x0c45('0x29')],'raw':!![]});})[_0x0c45('0x19')](function(_0x4db408){if(_0x4db408){_0x521fd2['contact']=_0x4db408[0x0];}if(typeof _0x521fd2[_0x0c45('0x2b')]===_0x0c45('0x25'))return;return getAgent(_0x521fd2[_0x0c45('0x2b')]);})[_0x0c45('0x19')](function(_0x1d0fa9){if(_0x1d0fa9){_0x521fd2['interface']=util[_0x0c45('0x2c')](_0x0c45('0x2d'),_0x1d0fa9[_0x0c45('0x2e')]);_0x521fd2[_0x0c45('0x34')]=_0x1d0fa9;}return request({'event':_0x21dc42,'message':_0x521fd2});})['catch'](function(_0x198cda){logger[_0x0c45('0x1b')](_0x0c45('0x1d'),'AfterCreate',_0x198cda);});};}function afterUpdate(_0x1f7658){return function(_0x325b0f){var _0x280849=_0x325b0f[_0x0c45('0x35')](_0x0c45('0x36'))&&_0x325b0f[_0x0c45('0x36')];var _0xb6f830=_0x325b0f[_0x0c45('0x35')]('substatus');if(_0x280849||_0xb6f830){var _0x48fa9b=_0x280849?_0x0c45('0x5'):'substatus';var _0x445c7c=_0x325b0f[_0x0c45('0x1f')]({'plain':!![]});_0x445c7c[_0x0c45('0x20')]=_0x1f7658;_0x445c7c[_0x0c45('0x21')]=_0x1f7658;_0x445c7c[_0x0c45('0x22')]=_0x280849?_0x0c45('0x36'):_0x0c45('0x37');var _0x42f1c3=_0x0c45('0x32')+_0x445c7c['ContactId'];return db['sequelize'][_0x0c45('0x27')](_0x42f1c3,{'type':db[_0x0c45('0x33')][_0x0c45('0x28')]['SELECT'],'raw':!![]})[_0x0c45('0x19')](function(_0x25f897){if(_0x25f897){_0x445c7c[_0x0c45('0x2a')]=_0x25f897[0x0];}if(typeof _0x445c7c['UserId']===_0x0c45('0x25'))return;return getAgent(_0x445c7c[_0x0c45('0x2b')]);})[_0x0c45('0x19')](function(_0x49da51){if(_0x49da51){_0x445c7c['interface']=util[_0x0c45('0x2c')]('SIP/%s',_0x49da51[_0x0c45('0x2e')]);_0x445c7c[_0x0c45('0x34')]=_0x49da51;}return request({'event':_0x48fa9b,'message':_0x445c7c});})['catch'](function(_0x49149b){logger[_0x0c45('0x1b')](_0x0c45('0x1d'),_0x0c45('0x38'),_0x49149b);});}};}function getAgent(_0x372964){return db[_0x0c45('0x39')][_0x0c45('0x3a')]({'where':{'id':_0x372964},'attributes':['id',_0x0c45('0x2e'),_0x0c45('0x3b'),_0x0c45('0x3c'),_0x0c45('0x3d')],'raw':!![]})[_0x0c45('0x19')](function(_0x554aba){return _0x554aba;});}exports[_0x0c45('0x3e')]=function(){for(var _0x4784ac=0x0;_0x4784ac<triggers[_0x0c45('0x3f')];_0x4784ac+=0x1){if(db['hasOwnProperty'](triggers[_0x4784ac][_0x0c45('0x40')])){db[triggers[_0x4784ac][_0x0c45('0x40')]][_0x0c45('0x41')](triggers[_0x4784ac][_0x0c45('0x22')],triggers[_0x4784ac][_0x0c45('0x42')](triggers[_0x4784ac][_0x0c45('0x20')][_0x0c45('0x43')](),triggers[_0x4784ac][_0x0c45('0x44')]));}}};