Built motion from commit 14588770.|2.5.38
[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 _0x2a58=['internal','default','hasOwnProperty','model','hook','callback','condition','util','../../mysqldb','jayson/promise','triggers','http','Chat','ChatInteraction','newinteraction','closedinteraction','ChatMessage','afterCreate','newmessage','Sms','SmsInteraction','afterUpdate','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','FaxInteraction','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','Trigger,\x20%s','EventManager','error','code','catch','get','channel','motionChannel','event','direction','resolve','then','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','query','Sequelize','QueryTypes','SELECT','contact','UserId','format','name','agent','incomingmessage','AfterCreateMessage','opened','sequelize','interface','AfterCreate','changed','closed','substatus','SIP/%s','AfterUpdate','User','find','fullname'];(function(_0x24df97,_0x1cf883){var _0x1739eb=function(_0x3d14d6){while(--_0x3d14d6){_0x24df97['push'](_0x24df97['shift']());}};_0x1739eb(++_0x1cf883);}(_0x2a58,0x1b7));var _0x82a5=function(_0x4ce904,_0x19b4a5){_0x4ce904=_0x4ce904-0x0;var _0x34d3ac=_0x2a58[_0x4ce904];return _0x34d3ac;};'use strict';var util=require(_0x82a5('0x0'));var db=require(_0x82a5('0x1'))['db'];var jayson=require(_0x82a5('0x2'));var logger=require('../logger')(_0x82a5('0x3'));var client=jayson['client'][_0x82a5('0x4')]({'port':0x232a});var triggers=[{'channel':_0x82a5('0x5'),'model':_0x82a5('0x6'),'event':'afterCreate','condition':_0x82a5('0x7'),'callback':afterCreate},{'channel':_0x82a5('0x5'),'model':'ChatInteraction','event':'afterUpdate','condition':_0x82a5('0x8'),'callback':afterUpdate},{'channel':'Chat','model':_0x82a5('0x9'),'event':_0x82a5('0xa'),'condition':_0x82a5('0xb'),'callback':afterCreateMessage},{'channel':_0x82a5('0xc'),'model':_0x82a5('0xd'),'event':_0x82a5('0xa'),'condition':_0x82a5('0x7'),'callback':afterCreate},{'channel':'Sms','model':_0x82a5('0xd'),'event':_0x82a5('0xe'),'condition':_0x82a5('0x8'),'callback':afterUpdate},{'channel':_0x82a5('0xc'),'model':_0x82a5('0xf'),'event':_0x82a5('0xa'),'condition':_0x82a5('0xb'),'callback':afterCreateMessage},{'channel':_0x82a5('0x10'),'model':_0x82a5('0x11'),'event':'afterCreate','condition':_0x82a5('0x7'),'callback':afterCreate},{'channel':_0x82a5('0x10'),'model':_0x82a5('0x11'),'event':_0x82a5('0xe'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x82a5('0x10'),'model':_0x82a5('0x12'),'event':_0x82a5('0xa'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Fax','model':'FaxInteraction','event':_0x82a5('0xa'),'condition':'newinteraction','callback':afterCreate},{'channel':'Fax','model':_0x82a5('0x13'),'event':_0x82a5('0xe'),'condition':_0x82a5('0x8'),'callback':afterUpdate},{'channel':'Fax','model':'FaxMessage','event':_0x82a5('0xa'),'condition':_0x82a5('0xb'),'callback':afterCreateMessage},{'channel':_0x82a5('0x14'),'model':'MailInteraction','event':_0x82a5('0xa'),'condition':_0x82a5('0x7'),'callback':afterCreate},{'channel':_0x82a5('0x14'),'model':_0x82a5('0x15'),'event':_0x82a5('0xe'),'condition':_0x82a5('0x8'),'callback':afterUpdate},{'channel':_0x82a5('0x14'),'model':_0x82a5('0x16'),'event':_0x82a5('0xa'),'condition':_0x82a5('0xb'),'callback':afterCreateMessage},{'channel':_0x82a5('0x17'),'model':_0x82a5('0x18'),'event':_0x82a5('0xa'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x82a5('0x17'),'model':_0x82a5('0x18'),'event':_0x82a5('0xe'),'condition':_0x82a5('0x8'),'callback':afterUpdate},{'channel':_0x82a5('0x17'),'model':_0x82a5('0x19'),'event':_0x82a5('0xa'),'condition':_0x82a5('0xb'),'callback':afterCreateMessage}];function request(_0x3ff29e){return client[_0x82a5('0x1a')]('EventManager',_0x3ff29e)['then'](function(_0x5ba6d4){logger['info'](_0x82a5('0x1b'),_0x82a5('0x1c'),_0x5ba6d4);if(_0x5ba6d4[_0x82a5('0x1d')]){if(_0x5ba6d4['error'][_0x82a5('0x1e')]===0x1f4){logger[_0x82a5('0x1d')](_0x82a5('0x1b'),_0x82a5('0x1c'),_0x5ba6d4['error']);}}})[_0x82a5('0x1f')](function(_0x409c35){logger[_0x82a5('0x1d')](_0x82a5('0x1b'),_0x82a5('0x1c'),_0x409c35);});}function afterCreateMessage(_0xd5ba01){return function(_0x16aacc){_0x16aacc=_0x16aacc[_0x82a5('0x20')]({'plain':!![]});_0x16aacc[_0x82a5('0x21')]=_0xd5ba01;_0x16aacc[_0x82a5('0x22')]=_0xd5ba01;_0x16aacc[_0x82a5('0x23')]=_0x16aacc[_0x82a5('0x24')];Promise[_0x82a5('0x25')]()[_0x82a5('0x26')](function(){if(typeof _0x16aacc[_0x82a5('0x27')]===_0x82a5('0x28'))return null;var _0x3039b3=_0x82a5('0x29')+_0x16aacc[_0x82a5('0x27')];return db['sequelize'][_0x82a5('0x2a')](_0x3039b3,{'type':db[_0x82a5('0x2b')][_0x82a5('0x2c')][_0x82a5('0x2d')],'raw':!![]});})[_0x82a5('0x26')](function(_0x6872ff){if(_0x6872ff){_0x16aacc[_0x82a5('0x2e')]=_0x6872ff[0x0];}if(typeof _0x16aacc['UserId']==='undefined')return;return getAgent(_0x16aacc[_0x82a5('0x2f')]);})[_0x82a5('0x26')](function(_0x547ca6){if(_0x547ca6){_0x16aacc['interface']=util[_0x82a5('0x30')]('SIP/%s',_0x547ca6[_0x82a5('0x31')]);_0x16aacc[_0x82a5('0x32')]=_0x547ca6;_0x16aacc[_0x82a5('0x21')]=_0xd5ba01;return request({'event':_0x82a5('0x33'),'message':_0x16aacc});}else{return request({'event':'outgoingmessage','message':_0x16aacc});}})[_0x82a5('0x1f')](function(_0x5eb3b3){logger[_0x82a5('0x1d')](_0x82a5('0x1b'),_0x82a5('0x34'),_0x5eb3b3);});};}function afterCreate(_0x13b1c1,_0x9d89c8){return function(_0x2d6049){_0x2d6049=_0x2d6049['get']({'plain':!![]});_0x2d6049['channel']=_0x13b1c1;_0x2d6049['motionChannel']=_0x13b1c1;_0x2d6049[_0x82a5('0x23')]=_0x82a5('0x35');Promise['resolve']()[_0x82a5('0x26')](function(){var _0x821026=_0x82a5('0x29')+_0x2d6049[_0x82a5('0x27')];return db[_0x82a5('0x36')][_0x82a5('0x2a')](_0x821026,{'type':db[_0x82a5('0x2b')][_0x82a5('0x2c')][_0x82a5('0x2d')],'raw':!![]});})[_0x82a5('0x26')](function(_0x480118){if(_0x480118){_0x2d6049['contact']=_0x480118[0x0];}if(typeof _0x2d6049['UserId']==='undefined')return;return getAgent(_0x2d6049[_0x82a5('0x2f')]);})['then'](function(_0x3670fa){if(_0x3670fa){_0x2d6049[_0x82a5('0x37')]=util[_0x82a5('0x30')]('SIP/%s',_0x3670fa[_0x82a5('0x31')]);_0x2d6049[_0x82a5('0x32')]=_0x3670fa;}return request({'event':_0x9d89c8,'message':_0x2d6049});})[_0x82a5('0x1f')](function(_0x23f0f7){logger[_0x82a5('0x1d')]('Trigger,\x20%s',_0x82a5('0x38'),_0x23f0f7);});};}function afterUpdate(_0x3ca4fd){return function(_0x380fd7){var _0x2c4220=_0x380fd7[_0x82a5('0x39')](_0x82a5('0x3a'))&&_0x380fd7[_0x82a5('0x3a')];var _0x16c6bc=_0x380fd7[_0x82a5('0x39')]('substatus');if(_0x2c4220||_0x16c6bc){var _0x2d6374=_0x2c4220?_0x82a5('0x8'):_0x82a5('0x3b');var _0x23578b=_0x380fd7[_0x82a5('0x20')]({'plain':!![]});_0x23578b[_0x82a5('0x21')]=_0x3ca4fd;_0x23578b[_0x82a5('0x22')]=_0x3ca4fd;_0x23578b['event']=_0x2c4220?_0x82a5('0x3a'):'substatus';var _0x37c645=_0x82a5('0x29')+_0x23578b['ContactId'];return db['sequelize']['query'](_0x37c645,{'type':db['Sequelize']['QueryTypes'][_0x82a5('0x2d')],'raw':!![]})[_0x82a5('0x26')](function(_0x2b05d4){if(_0x2b05d4){_0x23578b[_0x82a5('0x2e')]=_0x2b05d4[0x0];}if(typeof _0x23578b['UserId']===_0x82a5('0x28'))return;return getAgent(_0x23578b[_0x82a5('0x2f')]);})[_0x82a5('0x26')](function(_0x2a3cf7){if(_0x2a3cf7){_0x23578b['interface']=util[_0x82a5('0x30')](_0x82a5('0x3c'),_0x2a3cf7[_0x82a5('0x31')]);_0x23578b['agent']=_0x2a3cf7;}return request({'event':_0x2d6374,'message':_0x23578b});})[_0x82a5('0x1f')](function(_0x473f0a){logger[_0x82a5('0x1d')]('Trigger,\x20%s',_0x82a5('0x3d'),_0x473f0a);});}};}function getAgent(_0x37d9a8){return db[_0x82a5('0x3e')][_0x82a5('0x3f')]({'where':{'id':_0x37d9a8},'attributes':['id',_0x82a5('0x31'),_0x82a5('0x40'),'email',_0x82a5('0x41')],'raw':!![]})[_0x82a5('0x26')](function(_0x11bcc2){return _0x11bcc2;});}exports[_0x82a5('0x42')]=function(){for(var _0xe1cd2d=0x0;_0xe1cd2d<triggers['length'];_0xe1cd2d+=0x1){if(db[_0x82a5('0x43')](triggers[_0xe1cd2d][_0x82a5('0x44')])){db[triggers[_0xe1cd2d]['model']][_0x82a5('0x45')](triggers[_0xe1cd2d][_0x82a5('0x23')],triggers[_0xe1cd2d][_0x82a5('0x46')](triggers[_0xe1cd2d][_0x82a5('0x21')]['toLowerCase'](),triggers[_0xe1cd2d][_0x82a5('0x47')]));}}};