3afbfdc3ef4ad96f8a1b1e96d78ea677c51dc259
[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 _0x1704=['ChatMessage','newmessage','Sms','SmsInteraction','newinteraction','SmsMessage','Fax','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','then','info','Trigger,\x20%s','error','code','catch','get','channel','direction','UserId','User','find','name','interface','format','SIP/%s','incomingmessage','outgoingmessage','event','opened','changed','closed','length','hasOwnProperty','model','hook','toLowerCase','condition','util','../../mysqldb','jayson/promise','triggers','client','http','ChatInteraction','afterCreate','afterUpdate','closedinteraction'];(function(_0x465028,_0x4570ac){var _0xb783d4=function(_0x5458c5){while(--_0x5458c5){_0x465028['push'](_0x465028['shift']());}};_0xb783d4(++_0x4570ac);}(_0x1704,0x1dc));var _0x4170=function(_0x43ad68,_0x190974){_0x43ad68=_0x43ad68-0x0;var _0x186c3e=_0x1704[_0x43ad68];return _0x186c3e;};'use strict';var util=require(_0x4170('0x0'));var db=require(_0x4170('0x1'))['db'];var jayson=require(_0x4170('0x2'));var logger=require('../logger')(_0x4170('0x3'));var client=jayson[_0x4170('0x4')][_0x4170('0x5')]({'port':0x232a});var triggers=[{'channel':'Chat','model':_0x4170('0x6'),'event':_0x4170('0x7'),'condition':'newinteraction','callback':afterCreate},{'channel':'Chat','model':_0x4170('0x6'),'event':_0x4170('0x8'),'condition':_0x4170('0x9'),'callback':afterUpdate},{'channel':'Chat','model':_0x4170('0xa'),'event':_0x4170('0x7'),'condition':_0x4170('0xb'),'callback':afterCreateMessage},{'channel':_0x4170('0xc'),'model':_0x4170('0xd'),'event':_0x4170('0x7'),'condition':_0x4170('0xe'),'callback':afterCreate},{'channel':_0x4170('0xc'),'model':_0x4170('0xd'),'event':_0x4170('0x8'),'condition':_0x4170('0x9'),'callback':afterUpdate},{'channel':_0x4170('0xc'),'model':_0x4170('0xf'),'event':_0x4170('0x7'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x4170('0x10'),'model':'FaxInteraction','event':'afterCreate','condition':_0x4170('0xe'),'callback':afterCreate},{'channel':'Fax','model':'FaxInteraction','event':_0x4170('0x8'),'condition':_0x4170('0x9'),'callback':afterUpdate},{'channel':_0x4170('0x10'),'model':_0x4170('0x11'),'event':'afterCreate','condition':'newmessage','callback':afterCreateMessage},{'channel':_0x4170('0x12'),'model':_0x4170('0x13'),'event':_0x4170('0x7'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x4170('0x12'),'model':'MailInteraction','event':_0x4170('0x8'),'condition':_0x4170('0x9'),'callback':afterUpdate},{'channel':_0x4170('0x12'),'model':_0x4170('0x14'),'event':_0x4170('0x7'),'condition':_0x4170('0xb'),'callback':afterCreateMessage},{'channel':_0x4170('0x15'),'model':'OpenchannelInteraction','event':_0x4170('0x7'),'condition':_0x4170('0xe'),'callback':afterCreate},{'channel':_0x4170('0x15'),'model':_0x4170('0x16'),'event':_0x4170('0x8'),'condition':_0x4170('0x9'),'callback':afterUpdate},{'channel':'Openchannel','model':_0x4170('0x17'),'event':'afterCreate','condition':_0x4170('0xb'),'callback':afterCreateMessage}];function request(_0x1ea7bf){return client[_0x4170('0x18')](_0x4170('0x19'),_0x1ea7bf)[_0x4170('0x1a')](function(_0x4d1548){logger[_0x4170('0x1b')](_0x4170('0x1c'),_0x4170('0x19'),_0x4d1548);if(_0x4d1548[_0x4170('0x1d')]){if(_0x4d1548[_0x4170('0x1d')][_0x4170('0x1e')]===0x1f4){logger['error'](_0x4170('0x1c'),_0x4170('0x19'),_0x4d1548[_0x4170('0x1d')]);}}})[_0x4170('0x1f')](function(_0x4471e5){logger['error']('Trigger,\x20%s','EventManager',_0x4471e5);});}function afterCreateMessage(_0x593b46,_0xcc4d0){return function(_0x389666,_0x352dcc){_0x389666=_0x389666[_0x4170('0x20')]({'plain':!![]});_0x389666[_0x4170('0x21')]=_0x593b46;_0x389666['event']=_0x389666[_0x4170('0x22')];if(_0x389666[_0x4170('0x23')]){return db[_0x4170('0x24')][_0x4170('0x25')]({'where':{'id':_0x389666[_0x4170('0x23')]},'attributes':['id',_0x4170('0x26')],'raw':!![]})[_0x4170('0x1a')](function(_0x29b098){_0x389666[_0x4170('0x27')]=util[_0x4170('0x28')](_0x4170('0x29'),_0x29b098[_0x4170('0x26')]);_0x389666['channel']=_0x593b46;return request({'event':_0x4170('0x2a'),'message':_0x389666});})[_0x4170('0x1f')](function(_0x116604){console[_0x4170('0x1d')](_0x116604);});}else{return request({'event':_0x4170('0x2b'),'message':_0x389666});}};}function afterCreate(_0x120fc0,_0x14967a){return function(_0x10aa57,_0x53454c){_0x10aa57=_0x10aa57[_0x4170('0x20')]({'plain':!![]});_0x10aa57['channel']=_0x120fc0;_0x10aa57[_0x4170('0x2c')]=_0x4170('0x2d');return request({'event':_0x14967a,'message':_0x10aa57});};}function afterUpdate(_0x3f97ff,_0x52ebaa){return function(_0x36ab1f,_0x2b6ec4){if(_0x36ab1f[_0x4170('0x2e')](_0x4170('0x2f'))&&_0x36ab1f[_0x4170('0x2f')]){_0x36ab1f=_0x36ab1f['get']({'plain':!![]});_0x36ab1f[_0x4170('0x21')]=_0x3f97ff;_0x36ab1f[_0x4170('0x2c')]=_0x4170('0x2f');if(_0x36ab1f[_0x4170('0x23')]){return db['User'][_0x4170('0x25')]({'where':{'id':_0x36ab1f['UserId']},'attributes':['id',_0x4170('0x26')],'raw':!![]})[_0x4170('0x1a')](function(_0xd1819){_0x36ab1f[_0x4170('0x27')]=util[_0x4170('0x28')]('SIP/%s',_0xd1819[_0x4170('0x26')]);return request({'event':_0x52ebaa,'message':_0x36ab1f});})['catch'](function(_0x18fab2){console[_0x4170('0x1d')](_0x18fab2);});}else{return request({'event':_0x52ebaa,'message':_0x36ab1f});}}};}exports['default']=function(){for(var _0x2c4535=0x0;_0x2c4535<triggers[_0x4170('0x30')];_0x2c4535+=0x1){if(db[_0x4170('0x31')](triggers[_0x2c4535]['model'])){db[triggers[_0x2c4535][_0x4170('0x32')]][_0x4170('0x33')](triggers[_0x2c4535]['event'],triggers[_0x2c4535]['callback'](triggers[_0x2c4535][_0x4170('0x21')][_0x4170('0x34')](),triggers[_0x2c4535][_0x4170('0x35')]));}}};