97d6825acfb863ecc3f1e26553e48409d337a94a
[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 _0x6da7=['channel','outgoingmessage','opened','changed','closed','default','length','hasOwnProperty','model','callback','toLowerCase','condition','util','../../mysqldb','jayson/promise','../logger','http','Chat','ChatInteraction','afterCreate','newinteraction','afterUpdate','closedinteraction','ChatMessage','SmsInteraction','Sms','SmsMessage','Whatsapp','WhatsappMessage','newmessage','Fax','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','then','info','Trigger,\x20%s','error','code','catch','get','event','direction','UserId','User','find','name','interface','format','SIP/%s'];(function(_0x2d9e27,_0x5965b2){var _0xd35381=function(_0x343d18){while(--_0x343d18){_0x2d9e27['push'](_0x2d9e27['shift']());}};_0xd35381(++_0x5965b2);}(_0x6da7,0x1cc));var _0x76da=function(_0x3d5066,_0x423b73){_0x3d5066=_0x3d5066-0x0;var _0x1a8b0b=_0x6da7[_0x3d5066];return _0x1a8b0b;};'use strict';var util=require(_0x76da('0x0'));var db=require(_0x76da('0x1'))['db'];var jayson=require(_0x76da('0x2'));var logger=require(_0x76da('0x3'))('triggers');var client=jayson['client'][_0x76da('0x4')]({'port':0x232a});var triggers=[{'channel':_0x76da('0x5'),'model':_0x76da('0x6'),'event':_0x76da('0x7'),'condition':_0x76da('0x8'),'callback':afterCreate},{'channel':_0x76da('0x5'),'model':'ChatInteraction','event':_0x76da('0x9'),'condition':_0x76da('0xa'),'callback':afterUpdate},{'channel':'Chat','model':_0x76da('0xb'),'event':_0x76da('0x7'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Sms','model':_0x76da('0xc'),'event':_0x76da('0x7'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x76da('0xd'),'model':_0x76da('0xc'),'event':_0x76da('0x9'),'condition':_0x76da('0xa'),'callback':afterUpdate},{'channel':_0x76da('0xd'),'model':_0x76da('0xe'),'event':'afterCreate','condition':'newmessage','callback':afterCreateMessage},{'channel':_0x76da('0xf'),'model':'WhatsappInteraction','event':_0x76da('0x7'),'condition':_0x76da('0x8'),'callback':afterCreate},{'channel':'Whatsapp','model':'WhatsappInteraction','event':_0x76da('0x9'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Whatsapp','model':_0x76da('0x10'),'event':_0x76da('0x7'),'condition':_0x76da('0x11'),'callback':afterCreateMessage},{'channel':'Fax','model':'FaxInteraction','event':'afterCreate','condition':_0x76da('0x8'),'callback':afterCreate},{'channel':_0x76da('0x12'),'model':'FaxInteraction','event':_0x76da('0x9'),'condition':_0x76da('0xa'),'callback':afterUpdate},{'channel':_0x76da('0x12'),'model':_0x76da('0x13'),'event':_0x76da('0x7'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x76da('0x14'),'model':_0x76da('0x15'),'event':'afterCreate','condition':_0x76da('0x8'),'callback':afterCreate},{'channel':_0x76da('0x14'),'model':_0x76da('0x15'),'event':_0x76da('0x9'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x76da('0x14'),'model':_0x76da('0x16'),'event':_0x76da('0x7'),'condition':_0x76da('0x11'),'callback':afterCreateMessage},{'channel':_0x76da('0x17'),'model':_0x76da('0x18'),'event':_0x76da('0x7'),'condition':_0x76da('0x8'),'callback':afterCreate},{'channel':'Openchannel','model':_0x76da('0x18'),'event':_0x76da('0x9'),'condition':_0x76da('0xa'),'callback':afterUpdate},{'channel':_0x76da('0x17'),'model':_0x76da('0x19'),'event':_0x76da('0x7'),'condition':'newmessage','callback':afterCreateMessage}];function request(_0x65ec4d){return client[_0x76da('0x1a')](_0x76da('0x1b'),_0x65ec4d)[_0x76da('0x1c')](function(_0x4c9461){logger[_0x76da('0x1d')](_0x76da('0x1e'),_0x76da('0x1b'),_0x4c9461);if(_0x4c9461[_0x76da('0x1f')]){if(_0x4c9461[_0x76da('0x1f')][_0x76da('0x20')]===0x1f4){logger[_0x76da('0x1f')]('Trigger,\x20%s','EventManager',_0x4c9461[_0x76da('0x1f')]);}}})[_0x76da('0x21')](function(_0xf24bcb){logger[_0x76da('0x1f')](_0x76da('0x1e'),_0x76da('0x1b'),_0xf24bcb);});}function afterCreateMessage(_0x398265,_0xf376d6){return function(_0x5e0988,_0x272aef){_0x5e0988=_0x5e0988[_0x76da('0x22')]({'plain':!![]});_0x5e0988['channel']=_0x398265;_0x5e0988[_0x76da('0x23')]=_0x5e0988[_0x76da('0x24')];if(_0x5e0988[_0x76da('0x25')]){return db[_0x76da('0x26')][_0x76da('0x27')]({'where':{'id':_0x5e0988['UserId']},'attributes':['id',_0x76da('0x28')],'raw':!![]})[_0x76da('0x1c')](function(_0x5e259a){_0x5e0988[_0x76da('0x29')]=util[_0x76da('0x2a')](_0x76da('0x2b'),_0x5e259a[_0x76da('0x28')]);_0x5e0988[_0x76da('0x2c')]=_0x398265;return request({'event':'incomingmessage','message':_0x5e0988});})[_0x76da('0x21')](function(_0x13bb9e){console[_0x76da('0x1f')](_0x13bb9e);});}else{return request({'event':_0x76da('0x2d'),'message':_0x5e0988});}};}function afterCreate(_0x36af34,_0x57c6b1){return function(_0xef4d9e,_0xbbd826){_0xef4d9e=_0xef4d9e[_0x76da('0x22')]({'plain':!![]});_0xef4d9e[_0x76da('0x2c')]=_0x36af34;_0xef4d9e[_0x76da('0x23')]=_0x76da('0x2e');return request({'event':_0x57c6b1,'message':_0xef4d9e});};}function afterUpdate(_0x34cf4e,_0x59172a){return function(_0x2ac347,_0x1b147f){if(_0x2ac347[_0x76da('0x2f')](_0x76da('0x30'))&&_0x2ac347[_0x76da('0x30')]){_0x2ac347=_0x2ac347[_0x76da('0x22')]({'plain':!![]});_0x2ac347['channel']=_0x34cf4e;_0x2ac347[_0x76da('0x23')]=_0x76da('0x30');if(_0x2ac347[_0x76da('0x25')]){return db[_0x76da('0x26')][_0x76da('0x27')]({'where':{'id':_0x2ac347['UserId']},'attributes':['id','name'],'raw':!![]})['then'](function(_0x5cd9ad){_0x2ac347['interface']=util[_0x76da('0x2a')]('SIP/%s',_0x5cd9ad[_0x76da('0x28')]);return request({'event':_0x59172a,'message':_0x2ac347});})[_0x76da('0x21')](function(_0x453f87){console[_0x76da('0x1f')](_0x453f87);});}else{return request({'event':_0x59172a,'message':_0x2ac347});}}};}exports[_0x76da('0x31')]=function(){for(var _0x239ccb=0x0;_0x239ccb<triggers[_0x76da('0x32')];_0x239ccb+=0x1){if(db[_0x76da('0x33')](triggers[_0x239ccb][_0x76da('0x34')])){db[triggers[_0x239ccb]['model']]['hook'](triggers[_0x239ccb]['event'],triggers[_0x239ccb][_0x76da('0x35')](triggers[_0x239ccb][_0x76da('0x2c')][_0x76da('0x36')](),triggers[_0x239ccb][_0x76da('0x37')]));}}};