299c55778addca31380884a4f4421136abaedc57
[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 _0xcbb9=['jayson/promise','../logger','triggers','http','Chat','ChatInteraction','newinteraction','afterUpdate','closedinteraction','afterCreate','newmessage','Sms','SmsMessage','Fax','FaxInteraction','FaxMessage','MailInteraction','Mail','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','then','info','error','code','catch','Trigger,\x20%s','channel','event','UserId','User','find','name','interface','SIP/%s','incomingmessage','opened','closed','default','hasOwnProperty','model','callback','toLowerCase','condition','../../mysqldb'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0xcbb9,0x14f));var _0x9cbb=function(_0x576982,_0x533ea4){_0x576982=_0x576982-0x0;var _0x543821=_0xcbb9[_0x576982];return _0x543821;};'use strict';var util=require('util');var db=require(_0x9cbb('0x0'))['db'];var jayson=require(_0x9cbb('0x1'));var logger=require(_0x9cbb('0x2'))(_0x9cbb('0x3'));var client=jayson['client'][_0x9cbb('0x4')]({'port':0x232a});var triggers=[{'channel':_0x9cbb('0x5'),'model':_0x9cbb('0x6'),'event':'afterCreate','condition':_0x9cbb('0x7'),'callback':afterCreate},{'channel':_0x9cbb('0x5'),'model':'ChatInteraction','event':_0x9cbb('0x8'),'condition':_0x9cbb('0x9'),'callback':afterUpdate},{'channel':'Chat','model':'ChatMessage','event':_0x9cbb('0xa'),'condition':_0x9cbb('0xb'),'callback':afterCreateMessage},{'channel':_0x9cbb('0xc'),'model':'SmsInteraction','event':'afterCreate','condition':'newinteraction','callback':afterCreate},{'channel':_0x9cbb('0xc'),'model':'SmsInteraction','event':'afterUpdate','condition':_0x9cbb('0x9'),'callback':afterUpdate},{'channel':_0x9cbb('0xc'),'model':_0x9cbb('0xd'),'event':'afterCreate','condition':_0x9cbb('0xb'),'callback':afterCreateMessage},{'channel':_0x9cbb('0xe'),'model':'FaxInteraction','event':_0x9cbb('0xa'),'condition':_0x9cbb('0x7'),'callback':afterCreate},{'channel':_0x9cbb('0xe'),'model':_0x9cbb('0xf'),'event':_0x9cbb('0x8'),'condition':_0x9cbb('0x9'),'callback':afterUpdate},{'channel':_0x9cbb('0xe'),'model':_0x9cbb('0x10'),'event':_0x9cbb('0xa'),'condition':_0x9cbb('0xb'),'callback':afterCreateMessage},{'channel':'Mail','model':_0x9cbb('0x11'),'event':_0x9cbb('0xa'),'condition':_0x9cbb('0x7'),'callback':afterCreate},{'channel':_0x9cbb('0x12'),'model':_0x9cbb('0x11'),'event':_0x9cbb('0x8'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Mail','model':_0x9cbb('0x13'),'event':_0x9cbb('0xa'),'condition':_0x9cbb('0xb'),'callback':afterCreateMessage},{'channel':_0x9cbb('0x14'),'model':_0x9cbb('0x15'),'event':_0x9cbb('0xa'),'condition':_0x9cbb('0x7'),'callback':afterCreate},{'channel':_0x9cbb('0x14'),'model':'OpenchannelInteraction','event':_0x9cbb('0x8'),'condition':_0x9cbb('0x9'),'callback':afterUpdate},{'channel':_0x9cbb('0x14'),'model':_0x9cbb('0x16'),'event':_0x9cbb('0xa'),'condition':_0x9cbb('0xb'),'callback':afterCreateMessage}];function request(_0x25636c){return client[_0x9cbb('0x17')](_0x9cbb('0x18'),_0x25636c)[_0x9cbb('0x19')](function(_0x23511d){logger[_0x9cbb('0x1a')]('Trigger,\x20%s','EventManager',_0x23511d);if(_0x23511d[_0x9cbb('0x1b')]){if(_0x23511d[_0x9cbb('0x1b')][_0x9cbb('0x1c')]===0x1f4){logger[_0x9cbb('0x1b')]('Trigger,\x20%s',_0x9cbb('0x18'),_0x23511d[_0x9cbb('0x1b')]);}}})[_0x9cbb('0x1d')](function(_0x566f8c){logger['error'](_0x9cbb('0x1e'),_0x9cbb('0x18'),_0x566f8c);});}function afterCreateMessage(_0x195c29,_0x2ae7e6){return function(_0x27eb9c,_0x3eb7d9){_0x27eb9c=_0x27eb9c['get']({'plain':!![]});_0x27eb9c[_0x9cbb('0x1f')]=_0x195c29;_0x27eb9c[_0x9cbb('0x20')]=_0x27eb9c['direction'];if(_0x27eb9c[_0x9cbb('0x21')]){return db[_0x9cbb('0x22')][_0x9cbb('0x23')]({'where':{'id':_0x27eb9c[_0x9cbb('0x21')]},'attributes':['id',_0x9cbb('0x24')],'raw':!![]})[_0x9cbb('0x19')](function(_0x12402f){_0x27eb9c[_0x9cbb('0x25')]=util['format'](_0x9cbb('0x26'),_0x12402f[_0x9cbb('0x24')]);_0x27eb9c[_0x9cbb('0x1f')]=_0x195c29;return request({'event':_0x9cbb('0x27'),'message':_0x27eb9c});})[_0x9cbb('0x1d')](function(_0x133b22){console[_0x9cbb('0x1b')](_0x133b22);});}else{return request({'event':'outgoingmessage','message':_0x27eb9c});}};}function afterCreate(_0xdfa085,_0x1e4b54){return function(_0x48b3de,_0x5efdaa){_0x48b3de=_0x48b3de['get']({'plain':!![]});_0x48b3de[_0x9cbb('0x1f')]=_0xdfa085;_0x48b3de[_0x9cbb('0x20')]=_0x9cbb('0x28');return request({'event':_0x1e4b54,'message':_0x48b3de});};}function afterUpdate(_0x4a92f4,_0x46e71d){return function(_0x45a4b1,_0x18e37c){if(_0x45a4b1['changed'](_0x9cbb('0x29'))&&_0x45a4b1['closed']){_0x45a4b1=_0x45a4b1['get']({'plain':!![]});_0x45a4b1['channel']=_0x4a92f4;_0x45a4b1['event']=_0x9cbb('0x29');if(_0x45a4b1['UserId']){return db[_0x9cbb('0x22')][_0x9cbb('0x23')]({'where':{'id':_0x45a4b1[_0x9cbb('0x21')]},'attributes':['id',_0x9cbb('0x24')],'raw':!![]})[_0x9cbb('0x19')](function(_0xfa8b63){_0x45a4b1[_0x9cbb('0x25')]=util['format']('SIP/%s',_0xfa8b63[_0x9cbb('0x24')]);return request({'event':_0x46e71d,'message':_0x45a4b1});})['catch'](function(_0x3d69aa){console['error'](_0x3d69aa);});}else{return request({'event':_0x46e71d,'message':_0x45a4b1});}}};}exports[_0x9cbb('0x2a')]=function(){for(var _0x4d5d7e=0x0;_0x4d5d7e<triggers['length'];_0x4d5d7e+=0x1){if(db[_0x9cbb('0x2b')](triggers[_0x4d5d7e][_0x9cbb('0x2c')])){db[triggers[_0x4d5d7e]['model']]['hook'](triggers[_0x4d5d7e][_0x9cbb('0x20')],triggers[_0x4d5d7e][_0x9cbb('0x2d')](triggers[_0x4d5d7e][_0x9cbb('0x1f')][_0x9cbb('0x2e')](),triggers[_0x4d5d7e][_0x9cbb('0x2f')]));}}};