8126af00193b94ce6b6b9f0fd8321e3bcb700efa
[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 _0x18e0=['model','hook','toLowerCase','../../mysqldb','../logger','triggers','client','Chat','newinteraction','ChatInteraction','ChatMessage','newmessage','Sms','SmsInteraction','afterCreate','afterUpdate','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','closedinteraction','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','then','info','Trigger,\x20%s','error','code','catch','get','channel','event','direction','User','find','name','interface','format','incomingmessage','outgoingmessage','opened','closed','UserId','SIP/%s','length','hasOwnProperty'];(function(_0x3c6553,_0x9490df){var _0x206aa6=function(_0x2bad0d){while(--_0x2bad0d){_0x3c6553['push'](_0x3c6553['shift']());}};_0x206aa6(++_0x9490df);}(_0x18e0,0xa2));var _0x018e=function(_0x599f41,_0x4db732){_0x599f41=_0x599f41-0x0;var _0x2e4d58=_0x18e0[_0x599f41];return _0x2e4d58;};'use strict';var util=require('util');var db=require(_0x018e('0x0'))['db'];var jayson=require('jayson/promise');var logger=require(_0x018e('0x1'))(_0x018e('0x2'));var client=jayson[_0x018e('0x3')]['http']({'port':0x232a});var triggers=[{'channel':_0x018e('0x4'),'model':'ChatInteraction','event':'afterCreate','condition':_0x018e('0x5'),'callback':afterCreate},{'channel':_0x018e('0x4'),'model':_0x018e('0x6'),'event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0x018e('0x4'),'model':_0x018e('0x7'),'event':'afterCreate','condition':_0x018e('0x8'),'callback':afterCreateMessage},{'channel':_0x018e('0x9'),'model':_0x018e('0xa'),'event':_0x018e('0xb'),'condition':_0x018e('0x5'),'callback':afterCreate},{'channel':_0x018e('0x9'),'model':'SmsInteraction','event':_0x018e('0xc'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Sms','model':'SmsMessage','event':_0x018e('0xb'),'condition':_0x018e('0x8'),'callback':afterCreateMessage},{'channel':_0x018e('0xd'),'model':_0x018e('0xe'),'event':_0x018e('0xb'),'condition':_0x018e('0x5'),'callback':afterCreate},{'channel':_0x018e('0xd'),'model':_0x018e('0xe'),'event':_0x018e('0xc'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x018e('0xd'),'model':_0x018e('0xf'),'event':_0x018e('0xb'),'condition':_0x018e('0x8'),'callback':afterCreateMessage},{'channel':_0x018e('0x10'),'model':'FaxInteraction','event':_0x018e('0xb'),'condition':_0x018e('0x5'),'callback':afterCreate},{'channel':_0x018e('0x10'),'model':_0x018e('0x11'),'event':'afterUpdate','condition':_0x018e('0x12'),'callback':afterUpdate},{'channel':_0x018e('0x10'),'model':'FaxMessage','event':_0x018e('0xb'),'condition':_0x018e('0x8'),'callback':afterCreateMessage},{'channel':_0x018e('0x13'),'model':_0x018e('0x14'),'event':_0x018e('0xb'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x018e('0x13'),'model':_0x018e('0x14'),'event':_0x018e('0xc'),'condition':_0x018e('0x12'),'callback':afterUpdate},{'channel':_0x018e('0x13'),'model':_0x018e('0x15'),'event':_0x018e('0xb'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0x018e('0x16'),'model':_0x018e('0x17'),'event':_0x018e('0xb'),'condition':_0x018e('0x5'),'callback':afterCreate},{'channel':_0x018e('0x16'),'model':'OpenchannelInteraction','event':'afterUpdate','condition':_0x018e('0x12'),'callback':afterUpdate},{'channel':_0x018e('0x16'),'model':_0x018e('0x18'),'event':_0x018e('0xb'),'condition':_0x018e('0x8'),'callback':afterCreateMessage}];function request(_0x198b0b){return client[_0x018e('0x19')](_0x018e('0x1a'),_0x198b0b)[_0x018e('0x1b')](function(_0x1d0baa){logger[_0x018e('0x1c')](_0x018e('0x1d'),'EventManager',_0x1d0baa);if(_0x1d0baa[_0x018e('0x1e')]){if(_0x1d0baa[_0x018e('0x1e')][_0x018e('0x1f')]===0x1f4){logger[_0x018e('0x1e')](_0x018e('0x1d'),_0x018e('0x1a'),_0x1d0baa[_0x018e('0x1e')]);}}})[_0x018e('0x20')](function(_0x3252f9){logger[_0x018e('0x1e')]('Trigger,\x20%s',_0x018e('0x1a'),_0x3252f9);});}function afterCreateMessage(_0x1a4726,_0x4af339){return function(_0xac43bc,_0x2ebdfa){_0xac43bc=_0xac43bc[_0x018e('0x21')]({'plain':!![]});_0xac43bc[_0x018e('0x22')]=_0x1a4726;_0xac43bc[_0x018e('0x23')]=_0xac43bc[_0x018e('0x24')];if(_0xac43bc['UserId']){return db[_0x018e('0x25')][_0x018e('0x26')]({'where':{'id':_0xac43bc['UserId']},'attributes':['id',_0x018e('0x27')],'raw':!![]})[_0x018e('0x1b')](function(_0x58a1e){_0xac43bc[_0x018e('0x28')]=util[_0x018e('0x29')]('SIP/%s',_0x58a1e[_0x018e('0x27')]);_0xac43bc[_0x018e('0x22')]=_0x1a4726;return request({'event':_0x018e('0x2a'),'message':_0xac43bc});})['catch'](function(_0x1bfb86){console['error'](_0x1bfb86);});}else{return request({'event':_0x018e('0x2b'),'message':_0xac43bc});}};}function afterCreate(_0x17398e,_0x5d47a7){return function(_0x5140a6,_0x2fae80){_0x5140a6=_0x5140a6[_0x018e('0x21')]({'plain':!![]});_0x5140a6[_0x018e('0x22')]=_0x17398e;_0x5140a6[_0x018e('0x23')]=_0x018e('0x2c');return request({'event':_0x5d47a7,'message':_0x5140a6});};}function afterUpdate(_0x4a5cca,_0x1a6d86){return function(_0x39d210,_0x450ba5){if(_0x39d210['changed']('closed')&&_0x39d210[_0x018e('0x2d')]){_0x39d210=_0x39d210[_0x018e('0x21')]({'plain':!![]});_0x39d210[_0x018e('0x22')]=_0x4a5cca;_0x39d210[_0x018e('0x23')]=_0x018e('0x2d');if(_0x39d210[_0x018e('0x2e')]){return db['User'][_0x018e('0x26')]({'where':{'id':_0x39d210[_0x018e('0x2e')]},'attributes':['id','name'],'raw':!![]})['then'](function(_0x5c34c9){_0x39d210[_0x018e('0x28')]=util[_0x018e('0x29')](_0x018e('0x2f'),_0x5c34c9[_0x018e('0x27')]);return request({'event':_0x1a6d86,'message':_0x39d210});})[_0x018e('0x20')](function(_0x58867c){console[_0x018e('0x1e')](_0x58867c);});}else{return request({'event':_0x1a6d86,'message':_0x39d210});}}};}exports['default']=function(){for(var _0xcaf318=0x0;_0xcaf318<triggers[_0x018e('0x30')];_0xcaf318+=0x1){if(db[_0x018e('0x31')](triggers[_0xcaf318][_0x018e('0x32')])){db[triggers[_0xcaf318]['model']][_0x018e('0x33')](triggers[_0xcaf318][_0x018e('0x23')],triggers[_0xcaf318]['callback'](triggers[_0xcaf318]['channel'][_0x018e('0x34')](),triggers[_0xcaf318]['condition']));}}};