Built motion from commit ac06311e.|2.6.28
[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 _0x9b95=['incomingmessage','outgoingmessage','Trigger,\x20%s','AfterCreateMessage','event','offlineMessage','opened','query','SELECT','AfterCreate','changed','closed','substatus','UserId','AfterUpdate','find','fullname','internal','default','length','hasOwnProperty','model','hook','callback','condition','../logger','triggers','afterCreate','newinteraction','Chat','afterUpdate','closedinteraction','ChatMessage','newmessage','Sms','SmsInteraction','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','MailInteraction','Mail','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','then','info','error','code','catch','get','channel','motionChannel','direction','resolve','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','QueryTypes','contact','undefined','interface','format','SIP/%s','name','agent'];(function(_0x535da1,_0x1560ed){var _0x4c4b7c=function(_0x56ee7a){while(--_0x56ee7a){_0x535da1['push'](_0x535da1['shift']());}};_0x4c4b7c(++_0x1560ed);}(_0x9b95,0xab));var _0x59b9=function(_0x57b54c,_0x54ce0d){_0x57b54c=_0x57b54c-0x0;var _0x59cc19=_0x9b95[_0x57b54c];return _0x59cc19;};'use strict';var util=require('util');var db=require('../../mysqldb')['db'];var jayson=require('jayson/promise');var logger=require(_0x59b9('0x0'))(_0x59b9('0x1'));var client=jayson['client']['http']({'port':0x232a});var triggers=[{'channel':'Chat','model':'ChatInteraction','event':_0x59b9('0x2'),'condition':_0x59b9('0x3'),'callback':afterCreate},{'channel':_0x59b9('0x4'),'model':'ChatInteraction','event':_0x59b9('0x5'),'condition':_0x59b9('0x6'),'callback':afterUpdate},{'channel':_0x59b9('0x4'),'model':_0x59b9('0x7'),'event':_0x59b9('0x2'),'condition':_0x59b9('0x8'),'callback':afterCreateMessage},{'channel':_0x59b9('0x4'),'model':'ChatOfflineMessage','event':_0x59b9('0x2'),'condition':_0x59b9('0x8'),'callback':afterCreateOfflineMessage},{'channel':_0x59b9('0x9'),'model':_0x59b9('0xa'),'event':_0x59b9('0x2'),'condition':_0x59b9('0x3'),'callback':afterCreate},{'channel':_0x59b9('0x9'),'model':_0x59b9('0xa'),'event':_0x59b9('0x5'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x59b9('0x9'),'model':_0x59b9('0xb'),'event':_0x59b9('0x2'),'condition':_0x59b9('0x8'),'callback':afterCreateMessage},{'channel':_0x59b9('0xc'),'model':'WhatsappInteraction','event':_0x59b9('0x2'),'condition':_0x59b9('0x3'),'callback':afterCreate},{'channel':_0x59b9('0xc'),'model':_0x59b9('0xd'),'event':_0x59b9('0x5'),'condition':_0x59b9('0x6'),'callback':afterUpdate},{'channel':_0x59b9('0xc'),'model':_0x59b9('0xe'),'event':_0x59b9('0x2'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Fax','model':'FaxInteraction','event':_0x59b9('0x2'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x59b9('0xf'),'model':_0x59b9('0x10'),'event':_0x59b9('0x5'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x59b9('0xf'),'model':_0x59b9('0x11'),'event':_0x59b9('0x2'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Mail','model':_0x59b9('0x12'),'event':_0x59b9('0x2'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x59b9('0x13'),'model':_0x59b9('0x12'),'event':_0x59b9('0x5'),'condition':_0x59b9('0x6'),'callback':afterUpdate},{'channel':_0x59b9('0x13'),'model':_0x59b9('0x14'),'event':_0x59b9('0x2'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x59b9('0x15'),'model':_0x59b9('0x16'),'event':_0x59b9('0x2'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x59b9('0x15'),'model':_0x59b9('0x16'),'event':_0x59b9('0x5'),'condition':_0x59b9('0x6'),'callback':afterUpdate},{'channel':'Openchannel','model':_0x59b9('0x17'),'event':_0x59b9('0x2'),'condition':_0x59b9('0x8'),'callback':afterCreateMessage}];function request(_0xfac78f){return client[_0x59b9('0x18')](_0x59b9('0x19'),_0xfac78f)[_0x59b9('0x1a')](function(_0x511dc2){logger[_0x59b9('0x1b')]('Trigger,\x20%s','EventManager',_0x511dc2);if(_0x511dc2['error']){if(_0x511dc2[_0x59b9('0x1c')][_0x59b9('0x1d')]===0x1f4){logger[_0x59b9('0x1c')]('Trigger,\x20%s','EventManager',_0x511dc2[_0x59b9('0x1c')]);}}})[_0x59b9('0x1e')](function(_0x521024){logger[_0x59b9('0x1c')]('Trigger,\x20%s',_0x59b9('0x19'),_0x521024);});}function afterCreateMessage(_0x200b8a){return function(_0x4ea499){_0x4ea499=_0x4ea499[_0x59b9('0x1f')]({'plain':!![]});_0x4ea499[_0x59b9('0x20')]=_0x200b8a;_0x4ea499[_0x59b9('0x21')]=_0x200b8a;_0x4ea499['event']=_0x4ea499[_0x59b9('0x22')];Promise[_0x59b9('0x23')]()[_0x59b9('0x1a')](function(){if(typeof _0x4ea499['ContactId']==='undefined')return null;var _0x3ca7ff=_0x59b9('0x24')+_0x4ea499[_0x59b9('0x25')];return db[_0x59b9('0x26')]['query'](_0x3ca7ff,{'type':db[_0x59b9('0x27')][_0x59b9('0x28')]['SELECT'],'raw':!![]});})[_0x59b9('0x1a')](function(_0x4905e1){if(_0x4905e1){_0x4ea499[_0x59b9('0x29')]=_0x4905e1[0x0];}if(typeof _0x4ea499['UserId']===_0x59b9('0x2a'))return;return getAgent(_0x4ea499['UserId']);})[_0x59b9('0x1a')](function(_0x53bc21){if(_0x53bc21){_0x4ea499[_0x59b9('0x2b')]=util[_0x59b9('0x2c')](_0x59b9('0x2d'),_0x53bc21[_0x59b9('0x2e')]);_0x4ea499[_0x59b9('0x2f')]=_0x53bc21;_0x4ea499['channel']=_0x200b8a;return request({'event':_0x59b9('0x30'),'message':_0x4ea499});}else{return request({'event':_0x59b9('0x31'),'message':_0x4ea499});}})[_0x59b9('0x1e')](function(_0x3f524f){logger['error'](_0x59b9('0x32'),_0x59b9('0x33'),_0x3f524f);});};}function afterCreateOfflineMessage(_0x2260a2){return function(_0x10ebd9){_0x10ebd9=_0x10ebd9[_0x59b9('0x1f')]({'plain':!![]});_0x10ebd9[_0x59b9('0x20')]=_0x2260a2;_0x10ebd9[_0x59b9('0x21')]=_0x2260a2;_0x10ebd9[_0x59b9('0x34')]=_0x59b9('0x35');return request({'event':_0x10ebd9[_0x59b9('0x34')],'message':_0x10ebd9});};}function afterCreate(_0x48e260,_0x4b9b15){return function(_0x297c5e){_0x297c5e=_0x297c5e[_0x59b9('0x1f')]({'plain':!![]});_0x297c5e[_0x59b9('0x20')]=_0x48e260;_0x297c5e[_0x59b9('0x21')]=_0x48e260;_0x297c5e['event']=_0x59b9('0x36');Promise[_0x59b9('0x23')]()['then'](function(){var _0x5b6946=_0x59b9('0x24')+_0x297c5e[_0x59b9('0x25')];return db[_0x59b9('0x26')][_0x59b9('0x37')](_0x5b6946,{'type':db[_0x59b9('0x27')][_0x59b9('0x28')][_0x59b9('0x38')],'raw':!![]});})[_0x59b9('0x1a')](function(_0x46cf96){if(_0x46cf96){_0x297c5e[_0x59b9('0x29')]=_0x46cf96[0x0];}if(typeof _0x297c5e['UserId']==='undefined')return;return getAgent(_0x297c5e['UserId']);})[_0x59b9('0x1a')](function(_0x1b3317){if(_0x1b3317){_0x297c5e['interface']=util[_0x59b9('0x2c')](_0x59b9('0x2d'),_0x1b3317[_0x59b9('0x2e')]);_0x297c5e[_0x59b9('0x2f')]=_0x1b3317;}return request({'event':_0x4b9b15,'message':_0x297c5e});})['catch'](function(_0x3e0470){logger[_0x59b9('0x1c')]('Trigger,\x20%s',_0x59b9('0x39'),_0x3e0470);});};}function afterUpdate(_0x51defe){return function(_0x44bd58){var _0x198542=_0x44bd58[_0x59b9('0x3a')](_0x59b9('0x3b'))&&_0x44bd58[_0x59b9('0x3b')];var _0x583fc7=_0x44bd58[_0x59b9('0x3a')]('substatus');if(_0x198542||_0x583fc7){var _0x25fe72=_0x198542?'closedinteraction':_0x59b9('0x3c');var _0x163207=_0x44bd58[_0x59b9('0x1f')]({'plain':!![]});_0x163207[_0x59b9('0x20')]=_0x51defe;_0x163207[_0x59b9('0x21')]=_0x51defe;_0x163207['event']=_0x198542?_0x59b9('0x3b'):'substatus';var _0x5e818d=_0x59b9('0x24')+_0x163207[_0x59b9('0x25')];return db['sequelize'][_0x59b9('0x37')](_0x5e818d,{'type':db[_0x59b9('0x27')]['QueryTypes'][_0x59b9('0x38')],'raw':!![]})[_0x59b9('0x1a')](function(_0x14b075){if(_0x14b075){_0x163207['contact']=_0x14b075[0x0];}if(typeof _0x163207[_0x59b9('0x3d')]===_0x59b9('0x2a'))return;return getAgent(_0x163207['UserId']);})[_0x59b9('0x1a')](function(_0x40ae2d){if(_0x40ae2d){_0x163207[_0x59b9('0x2b')]=util[_0x59b9('0x2c')](_0x59b9('0x2d'),_0x40ae2d[_0x59b9('0x2e')]);_0x163207[_0x59b9('0x2f')]=_0x40ae2d;}return request({'event':_0x25fe72,'message':_0x163207});})[_0x59b9('0x1e')](function(_0x4f9fb){logger[_0x59b9('0x1c')](_0x59b9('0x32'),_0x59b9('0x3e'),_0x4f9fb);});}};}function getAgent(_0x45b297){return db['User'][_0x59b9('0x3f')]({'where':{'id':_0x45b297},'attributes':['id',_0x59b9('0x2e'),_0x59b9('0x40'),'email',_0x59b9('0x41')],'raw':!![]})[_0x59b9('0x1a')](function(_0x45b80c){return _0x45b80c;});}exports[_0x59b9('0x42')]=function(){for(var _0x3964aa=0x0;_0x3964aa<triggers[_0x59b9('0x43')];_0x3964aa+=0x1){if(db[_0x59b9('0x44')](triggers[_0x3964aa][_0x59b9('0x45')])){db[triggers[_0x3964aa][_0x59b9('0x45')]][_0x59b9('0x46')](triggers[_0x3964aa][_0x59b9('0x34')],triggers[_0x3964aa][_0x59b9('0x47')](triggers[_0x3964aa][_0x59b9('0x20')]['toLowerCase'](),triggers[_0x3964aa][_0x59b9('0x48')]));}}};