668ab796b0ee03fb1674f6d9a51ecdab0435c5ac
[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 _0x54eb=['then','info','Trigger,\x20%s','error','EventManager','catch','get','find','UserId','format','SIP/%s','name','channel','incomingmessage','opened','changed','closed','User','interface','default','length','hasOwnProperty','model','event','callback','toLowerCase','condition','util','../../mysqldb','jayson/promise','../logger','http','Chat','ChatInteraction','afterCreate','afterUpdate','closedinteraction','ChatMessage','newmessage','Sms','SmsInteraction','newinteraction','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','MailInteraction','Mail','MailMessage','Openchannel','OpenchannelMessage','request'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x54eb,0x1d3));var _0xb54e=function(_0x13e741,_0x5d3c24){_0x13e741=_0x13e741-0x0;var _0x3f8bb3=_0x54eb[_0x13e741];return _0x3f8bb3;};'use strict';var util=require(_0xb54e('0x0'));var db=require(_0xb54e('0x1'))['db'];var jayson=require(_0xb54e('0x2'));var logger=require(_0xb54e('0x3'))('triggers');var client=jayson['client'][_0xb54e('0x4')]({'port':0x232a});var triggers=[{'channel':_0xb54e('0x5'),'model':_0xb54e('0x6'),'event':_0xb54e('0x7'),'condition':'newinteraction','callback':afterCreate},{'channel':'Chat','model':'ChatInteraction','event':_0xb54e('0x8'),'condition':_0xb54e('0x9'),'callback':afterUpdate},{'channel':_0xb54e('0x5'),'model':_0xb54e('0xa'),'event':_0xb54e('0x7'),'condition':_0xb54e('0xb'),'callback':afterCreateMessage},{'channel':_0xb54e('0xc'),'model':_0xb54e('0xd'),'event':_0xb54e('0x7'),'condition':_0xb54e('0xe'),'callback':afterCreate},{'channel':_0xb54e('0xc'),'model':_0xb54e('0xd'),'event':_0xb54e('0x8'),'condition':_0xb54e('0x9'),'callback':afterUpdate},{'channel':_0xb54e('0xc'),'model':_0xb54e('0xf'),'event':_0xb54e('0x7'),'condition':_0xb54e('0xb'),'callback':afterCreateMessage},{'channel':_0xb54e('0x10'),'model':_0xb54e('0x11'),'event':_0xb54e('0x7'),'condition':_0xb54e('0xe'),'callback':afterCreate},{'channel':'Whatsapp','model':_0xb54e('0x11'),'event':_0xb54e('0x8'),'condition':_0xb54e('0x9'),'callback':afterUpdate},{'channel':_0xb54e('0x10'),'model':_0xb54e('0x12'),'event':_0xb54e('0x7'),'condition':_0xb54e('0xb'),'callback':afterCreateMessage},{'channel':_0xb54e('0x13'),'model':_0xb54e('0x14'),'event':_0xb54e('0x7'),'condition':_0xb54e('0xe'),'callback':afterCreate},{'channel':_0xb54e('0x13'),'model':_0xb54e('0x14'),'event':_0xb54e('0x8'),'condition':_0xb54e('0x9'),'callback':afterUpdate},{'channel':'Fax','model':_0xb54e('0x15'),'event':_0xb54e('0x7'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Mail','model':_0xb54e('0x16'),'event':_0xb54e('0x7'),'condition':_0xb54e('0xe'),'callback':afterCreate},{'channel':_0xb54e('0x17'),'model':_0xb54e('0x16'),'event':'afterUpdate','condition':_0xb54e('0x9'),'callback':afterUpdate},{'channel':_0xb54e('0x17'),'model':_0xb54e('0x18'),'event':_0xb54e('0x7'),'condition':_0xb54e('0xb'),'callback':afterCreateMessage},{'channel':'Openchannel','model':'OpenchannelInteraction','event':_0xb54e('0x7'),'condition':_0xb54e('0xe'),'callback':afterCreate},{'channel':_0xb54e('0x19'),'model':'OpenchannelInteraction','event':'afterUpdate','condition':_0xb54e('0x9'),'callback':afterUpdate},{'channel':'Openchannel','model':_0xb54e('0x1a'),'event':_0xb54e('0x7'),'condition':'newmessage','callback':afterCreateMessage}];function request(_0x22c341){return client[_0xb54e('0x1b')]('EventManager',_0x22c341)[_0xb54e('0x1c')](function(_0x15212a){logger[_0xb54e('0x1d')](_0xb54e('0x1e'),'EventManager',_0x15212a);if(_0x15212a['error']){if(_0x15212a[_0xb54e('0x1f')]['code']===0x1f4){logger[_0xb54e('0x1f')]('Trigger,\x20%s',_0xb54e('0x20'),_0x15212a[_0xb54e('0x1f')]);}}})[_0xb54e('0x21')](function(_0x327ae3){logger[_0xb54e('0x1f')](_0xb54e('0x1e'),'EventManager',_0x327ae3);});}function afterCreateMessage(_0x499b35,_0x99b64c){return function(_0x14ffe3,_0x4c380a){_0x14ffe3=_0x14ffe3[_0xb54e('0x22')]({'plain':!![]});_0x14ffe3['channel']=_0x499b35;_0x14ffe3['event']=_0x14ffe3['direction'];if(_0x14ffe3['UserId']){return db['User'][_0xb54e('0x23')]({'where':{'id':_0x14ffe3[_0xb54e('0x24')]},'attributes':['id','name'],'raw':!![]})[_0xb54e('0x1c')](function(_0x2cdf40){_0x14ffe3['interface']=util[_0xb54e('0x25')](_0xb54e('0x26'),_0x2cdf40[_0xb54e('0x27')]);_0x14ffe3[_0xb54e('0x28')]=_0x499b35;return request({'event':_0xb54e('0x29'),'message':_0x14ffe3});})[_0xb54e('0x21')](function(_0x52ef46){console[_0xb54e('0x1f')](_0x52ef46);});}else{return request({'event':'outgoingmessage','message':_0x14ffe3});}};}function afterCreate(_0x5460f4,_0x5c8645){return function(_0x383085,_0x3370be){_0x383085=_0x383085[_0xb54e('0x22')]({'plain':!![]});_0x383085[_0xb54e('0x28')]=_0x5460f4;_0x383085['event']=_0xb54e('0x2a');return request({'event':_0x5c8645,'message':_0x383085});};}function afterUpdate(_0x2aab56,_0x22bf34){return function(_0x49df5b,_0x2e880f){if(_0x49df5b[_0xb54e('0x2b')](_0xb54e('0x2c'))&&_0x49df5b['closed']){_0x49df5b=_0x49df5b['get']({'plain':!![]});_0x49df5b[_0xb54e('0x28')]=_0x2aab56;_0x49df5b['event']=_0xb54e('0x2c');if(_0x49df5b[_0xb54e('0x24')]){return db[_0xb54e('0x2d')][_0xb54e('0x23')]({'where':{'id':_0x49df5b['UserId']},'attributes':['id','name'],'raw':!![]})[_0xb54e('0x1c')](function(_0x4aa9fa){_0x49df5b[_0xb54e('0x2e')]=util[_0xb54e('0x25')](_0xb54e('0x26'),_0x4aa9fa[_0xb54e('0x27')]);return request({'event':_0x22bf34,'message':_0x49df5b});})[_0xb54e('0x21')](function(_0x434114){console['error'](_0x434114);});}else{return request({'event':_0x22bf34,'message':_0x49df5b});}}};}exports[_0xb54e('0x2f')]=function(){for(var _0x380351=0x0;_0x380351<triggers[_0xb54e('0x30')];_0x380351+=0x1){if(db[_0xb54e('0x31')](triggers[_0x380351][_0xb54e('0x32')])){db[triggers[_0x380351]['model']]['hook'](triggers[_0x380351][_0xb54e('0x33')],triggers[_0x380351][_0xb54e('0x34')](triggers[_0x380351][_0xb54e('0x28')][_0xb54e('0x35')](),triggers[_0x380351][_0xb54e('0x36')]));}}};