391a2d43f5ba038d4ac0b5a8ec43174832d94638
[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 _0x0a20=['closedinteraction','ChatMessage','newmessage','SmsInteraction','afterUpdate','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','FaxInteraction','Fax','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','request','then','info','Trigger,\x20%s','EventManager','error','code','catch','get','channel','event','UserId','User','find','name','format','SIP/%s','incomingmessage','opened','changed','closed','interface','default','length','hasOwnProperty','model','callback','toLowerCase','condition','util','../../mysqldb','triggers','client','http','Chat','ChatInteraction','afterCreate','newinteraction'];(function(_0x23b1d5,_0x3043fa){var _0x3f5702=function(_0xc9b7eb){while(--_0xc9b7eb){_0x23b1d5['push'](_0x23b1d5['shift']());}};_0x3f5702(++_0x3043fa);}(_0x0a20,0x65));var _0x00a2=function(_0x42464d,_0x54e606){_0x42464d=_0x42464d-0x0;var _0x57ad76=_0x0a20[_0x42464d];return _0x57ad76;};'use strict';var util=require(_0x00a2('0x0'));var db=require(_0x00a2('0x1'))['db'];var jayson=require('jayson/promise');var logger=require('../logger')(_0x00a2('0x2'));var client=jayson[_0x00a2('0x3')][_0x00a2('0x4')]({'port':0x232a});var triggers=[{'channel':_0x00a2('0x5'),'model':_0x00a2('0x6'),'event':_0x00a2('0x7'),'condition':_0x00a2('0x8'),'callback':afterCreate},{'channel':_0x00a2('0x5'),'model':_0x00a2('0x6'),'event':'afterUpdate','condition':_0x00a2('0x9'),'callback':afterUpdate},{'channel':_0x00a2('0x5'),'model':_0x00a2('0xa'),'event':_0x00a2('0x7'),'condition':_0x00a2('0xb'),'callback':afterCreateMessage},{'channel':'Sms','model':_0x00a2('0xc'),'event':'afterCreate','condition':_0x00a2('0x8'),'callback':afterCreate},{'channel':'Sms','model':'SmsInteraction','event':_0x00a2('0xd'),'condition':_0x00a2('0x9'),'callback':afterUpdate},{'channel':'Sms','model':_0x00a2('0xe'),'event':_0x00a2('0x7'),'condition':_0x00a2('0xb'),'callback':afterCreateMessage},{'channel':_0x00a2('0xf'),'model':'WhatsappInteraction','event':_0x00a2('0x7'),'condition':_0x00a2('0x8'),'callback':afterCreate},{'channel':'Whatsapp','model':_0x00a2('0x10'),'event':_0x00a2('0xd'),'condition':_0x00a2('0x9'),'callback':afterUpdate},{'channel':_0x00a2('0xf'),'model':_0x00a2('0x11'),'event':_0x00a2('0x7'),'condition':_0x00a2('0xb'),'callback':afterCreateMessage},{'channel':'Fax','model':_0x00a2('0x12'),'event':'afterCreate','condition':_0x00a2('0x8'),'callback':afterCreate},{'channel':'Fax','model':'FaxInteraction','event':_0x00a2('0xd'),'condition':_0x00a2('0x9'),'callback':afterUpdate},{'channel':_0x00a2('0x13'),'model':_0x00a2('0x14'),'event':_0x00a2('0x7'),'condition':_0x00a2('0xb'),'callback':afterCreateMessage},{'channel':'Mail','model':'MailInteraction','event':_0x00a2('0x7'),'condition':_0x00a2('0x8'),'callback':afterCreate},{'channel':_0x00a2('0x15'),'model':_0x00a2('0x16'),'event':_0x00a2('0xd'),'condition':_0x00a2('0x9'),'callback':afterUpdate},{'channel':_0x00a2('0x15'),'model':_0x00a2('0x17'),'event':_0x00a2('0x7'),'condition':_0x00a2('0xb'),'callback':afterCreateMessage},{'channel':_0x00a2('0x18'),'model':_0x00a2('0x19'),'event':'afterCreate','condition':_0x00a2('0x8'),'callback':afterCreate},{'channel':'Openchannel','model':_0x00a2('0x19'),'event':_0x00a2('0xd'),'condition':_0x00a2('0x9'),'callback':afterUpdate},{'channel':'Openchannel','model':'OpenchannelMessage','event':_0x00a2('0x7'),'condition':'newmessage','callback':afterCreateMessage}];function request(_0x43dae1){return client[_0x00a2('0x1a')]('EventManager',_0x43dae1)[_0x00a2('0x1b')](function(_0x2ed4db){logger[_0x00a2('0x1c')](_0x00a2('0x1d'),_0x00a2('0x1e'),_0x2ed4db);if(_0x2ed4db[_0x00a2('0x1f')]){if(_0x2ed4db[_0x00a2('0x1f')][_0x00a2('0x20')]===0x1f4){logger[_0x00a2('0x1f')]('Trigger,\x20%s',_0x00a2('0x1e'),_0x2ed4db[_0x00a2('0x1f')]);}}})[_0x00a2('0x21')](function(_0xdbdca4){logger[_0x00a2('0x1f')](_0x00a2('0x1d'),_0x00a2('0x1e'),_0xdbdca4);});}function afterCreateMessage(_0x2e4655,_0x1bfcb0){return function(_0x23ac51,_0x974673){_0x23ac51=_0x23ac51[_0x00a2('0x22')]({'plain':!![]});_0x23ac51[_0x00a2('0x23')]=_0x2e4655;_0x23ac51[_0x00a2('0x24')]=_0x23ac51['direction'];if(_0x23ac51[_0x00a2('0x25')]){return db[_0x00a2('0x26')][_0x00a2('0x27')]({'where':{'id':_0x23ac51['UserId']},'attributes':['id',_0x00a2('0x28')],'raw':!![]})[_0x00a2('0x1b')](function(_0x5c68fc){_0x23ac51['interface']=util[_0x00a2('0x29')](_0x00a2('0x2a'),_0x5c68fc['name']);_0x23ac51[_0x00a2('0x23')]=_0x2e4655;return request({'event':_0x00a2('0x2b'),'message':_0x23ac51});})['catch'](function(_0x40f78a){console[_0x00a2('0x1f')](_0x40f78a);});}else{return request({'event':'outgoingmessage','message':_0x23ac51});}};}function afterCreate(_0x34da7e,_0x2d1886){return function(_0x2a30ad,_0x282768){_0x2a30ad=_0x2a30ad[_0x00a2('0x22')]({'plain':!![]});_0x2a30ad[_0x00a2('0x23')]=_0x34da7e;_0x2a30ad['event']=_0x00a2('0x2c');return request({'event':_0x2d1886,'message':_0x2a30ad});};}function afterUpdate(_0x585f6b,_0xfbfb36){return function(_0x42cf6d,_0x52bc55){if(_0x42cf6d[_0x00a2('0x2d')]('closed')&&_0x42cf6d[_0x00a2('0x2e')]){_0x42cf6d=_0x42cf6d[_0x00a2('0x22')]({'plain':!![]});_0x42cf6d[_0x00a2('0x23')]=_0x585f6b;_0x42cf6d[_0x00a2('0x24')]='closed';if(_0x42cf6d[_0x00a2('0x25')]){return db[_0x00a2('0x26')][_0x00a2('0x27')]({'where':{'id':_0x42cf6d['UserId']},'attributes':['id',_0x00a2('0x28')],'raw':!![]})['then'](function(_0x2075dd){_0x42cf6d[_0x00a2('0x2f')]=util[_0x00a2('0x29')](_0x00a2('0x2a'),_0x2075dd['name']);return request({'event':_0xfbfb36,'message':_0x42cf6d});})[_0x00a2('0x21')](function(_0x4e9ae9){console[_0x00a2('0x1f')](_0x4e9ae9);});}else{return request({'event':_0xfbfb36,'message':_0x42cf6d});}}};}exports[_0x00a2('0x30')]=function(){for(var _0x3db3f5=0x0;_0x3db3f5<triggers[_0x00a2('0x31')];_0x3db3f5+=0x1){if(db[_0x00a2('0x32')](triggers[_0x3db3f5][_0x00a2('0x33')])){db[triggers[_0x3db3f5]['model']]['hook'](triggers[_0x3db3f5][_0x00a2('0x24')],triggers[_0x3db3f5][_0x00a2('0x34')](triggers[_0x3db3f5][_0x00a2('0x23')][_0x00a2('0x35')](),triggers[_0x3db3f5][_0x00a2('0x36')]));}}};